Page 1 of 1
Needing practical info on Math
Posted: Wed May 20, 2009 6:57 am
by ~
I have tried to find a resource of information that explains the order in which math should be learned for that knowledge to be functional, practical and applicable. I don't know how much would pure algebra, geometry, pre-calculus/calculus (I don't know what those are) would cover that or what other things to learn for also somehow understanding the dependencies on each other of them. The wiki section doesn't seem to have something about it, and all one can seem to find are unsorted books mainly about very advanced topics.
Like if you pick the "Graphics Gems" books and don't understand even a bit of what they contain but an absolute void in the concepts.
What I'm talking about specifically is, what should be the order of topics and math knowledge to learn, from very basic to (very) advanced, for being able to understand math formulas like those used in Bresenham, Bezier, squares/areas, circles, visual algorithms like fire and 3D (basic X-Y-Z dot plotting), and of course vital things such as the math used in MP3 (huffman decoding, 9 point inverse discrete cosine transform, MDTC...) and other simpler but necessary tasks like .ZIP/.PNG compression, among many many others.
So I need to know:
- what to learn
- in which order
- where could possibly be found, some titles?
...since it seems unclear even what is needed to be learned for getting to be able to handle that huge portion of computing stuff that relies purely on math.
Some hints, books or other stuff that can be obtained from the web or a real library/bookstore?
Re: Needing practical info on Math
Posted: Wed May 20, 2009 7:15 am
by Masterkiller
"Math" is wide conception. You must define a target. What do you want to achieve? And then you will know what to learn.
Since you are posting in a "OS Development" forum and you mention "3D basics" and "MP3", I suppose you want to learn computer math. You should start with binary and hex counting systems, logical operations, boolean algebra and so on. This covers the very begining of computer programmer's math (sadly most of the programmers start with C++ and miss that part). I do not know any book, but now you know what to search, use google. Since this things are quite simple, there are a lot of material on wikipedia. Good Luck!
Re: Needing practical info on Math
Posted: Wed May 20, 2009 7:48 am
by Combuster
Should still not be in OS development. Moved.
Computer math != signal processing != linear algebra.
The first one is some basic stuff of binary math, groups, and primarily, logic.
Signal processing is that what you use for MP3 stuff. You'd need to learn about frequencies, frequency domains, psychoacoustics, and the whole lot of sample transforms. Each of which is a relatively big topic.
Linear algebra is the basis of computer graphics. You'll need to learn about vectors, the differences in locations and directions, dotproducts & cross products, matrices, scaling, rotations, implicit surfaces, explicit surfaces, affine transformations, translations, projections, matrix inverse, and barycentric coordinates to start with 2D and 3D graphics. You can tackle parametric systems, linear interpolation, box filters, hermites, cubic interpolation, beziers, B-splines and cardinal splines somewhere half way through that list.
And trust me, it is really hard to figure all this out on your own with the available internet resources. Ask a math teacher.
Re: Needing practical info on Math
Posted: Wed May 20, 2009 7:53 am
by ~
At this point, as a regular programmer I know the fundamental stuff like bitwise and logical operations, everything that has to do with routinary C and ASM-style operations.
But there are several "links" missing between these "baby steps" and slightly higher topics like Bresenham. I can have the code from Wikipedia, can translate it to assembler, but I don't fully understand what the formulas mean and I really need to, because even the books about computer math use formulas in a written form that I don't understand.
That's why I am needing a list of topics, their mere name and possibly the order to learn them, for being able to see clearly the map of things.
I don't think that something like
Huffman decoding (Huffman trees) is a simple thing that can be learned without knowing specifically the math principles it uses (its names, logarithms? calculus? trigonometry? what about them?), specially if one doesn't know the syntax of math symbols.
That is the kind of things that I need to know , as it has occurred that whenever I look for them in Google or anywhere, I end up with a huge bunch of big books about advanced topics for which I don't have the required prior knowledge to understand.
Could it be possible to provide maybe a drafty and rather brief index of what to be learned progressively? Note that I'm NOT helpless and am doing my own search, as you can see I know there is code and can
blindly implement it as a novice "user" of it, but it is going nowhere from the point of view of a "decent" learning.
Being able to include it eventually in the wiki would certainly be a terrific help for a lot of people, even I would be glad to help in what I can if there is information of what to learn if it's properly stated/explained/written down.
Re: Needing practical info on Math
Posted: Wed May 20, 2009 7:59 am
by Combuster
The linear algebra list is pretty much in chronological order...
edit: for bresenham and other discretisation topics, try chapters 35-40 of michael abrash graphics programming black book.
Re: Needing practical info on Math
Posted: Wed May 20, 2009 12:05 pm
by DeletedAccount
Hi,
One book which i read and is quite good is
http://www.amazon.com/Advanced-Engineer ... 0471154962
Another book which is quite good is Higher Engineering Mathematics by B S Grewal , but I am not sure whether it is available outside India . Generally books by Indian Mathematician's are easier to understand and have more challenging problems . Calculus books by Shanti Narayan are also good
.
And trust me, it is really hard to figure all this out on your own with the available internet resources. Ask a math teacher.
That's not really correct , for mathematics you need practice , constant and regular practice.( An hour a day will suffice ) . Never go to a teacher for help , do that only if it's absolutely necessary , never trust the textbook , develop your own proof's and compare with the solution given in the book. That is the real joy of mathematics , never let the teacher or book take that away from you
. Get yourself a good book and start practicing that's all .
Depending on teacher for everything is a bad idea ( at least in Math )
Regards
Shrek
Re: Needing practical info on Math
Posted: Wed May 20, 2009 1:24 pm
by purage
Basic Math, Pre-Algebra, Algebra, Pre-Calculus, Calculus, Linear Math, Discrete Math, Statistics. Study the Elements to keep sharp. And then learn what Combuster said and do what Shrek said.
Re: Needing practical info on Math
Posted: Wed May 20, 2009 4:24 pm
by Combuster
Get yourself a good book and start practicing that's all
That was exactly my point. You don't have that information off the internet.
I once made an attempt at reed-solomon encoding in order to implement code for a CD's error correction scheme. And I spent quite a few hours on that and I still don't get how it is supposed to work. Because there was no document that explained how it worked, let alone giving an example of the process.
And the one bit of sourcecode with more than copyright in the comments I found was useless as it didn't operate as expected.
Re: Needing practical info on Math
Posted: Wed May 20, 2009 9:09 pm
by bewing
As a published mathematician, I think I can freely say that the entire cosmos of important and necessary functional algorithms is more than one human mind can understand in a lifetime. So you will eventually either need to depend on cookbooks sometimes, or team up with someone who can study half of it, while you study the other half.
As far as huffman goes, I do understand that one, and it is quite simple. (When I can make some time, I'll put it in the wiki.) And you didn't mention wavelets, or exponential moving averages, or FFTs, or ....