Differential Equation Help

Started by
7 comments, last by John Schultz 18 years ago
Hi, I am reading the David Baraff paper on Differential Equation Basics (pdf at http://www.cs.cmu.edu/afs/cs/user/baraff/www/pbm/pbm.html), and am following it fine up to the point of section 2.1. The paragraph that begins 'To understand how we go about improving on Euler's method...' has a formula with some symbols I am unfamiliar with. The '.' above the x I understand now is the derivative, and I think that the '..' above the x is the derivative of the derivative (ie, acceleration), please correct me if I am wrong here though. The symbols that I am confused by are the '!' after the denominator, and also the strange backwards '6' symbol on last shown expression. Also, where does the 'n' come from? Also, is the 'n' used on the last expression denominator the same as the 'n' used as the power? I would like to understand what is going on here, as I am trying to learn some more mathematics to empower my understanding 3d and physics for game development. Thanks!
Advertisement
x-dot (if you were to say it aloud) is the first derivative, and x-double-dot is the second derivative. So velocity and acceleration, if x is position.

The '!' is factorial, and the backwards '6' means a partial derivative. Don't take this the wrong way, but if you don't even know what these symbols are then you shouldn't be trying to learn differential equations just yet :) Start with something like linear algebra, which is a lot more applicable to many areas of game development. What you're reading is more for physical simulation, which while also important is a lot more advanced.
! is the factorial symbol. The "backwards 6" is read as "d" or "delta" and is part of the notation for a partial derivative. If you really want to understand this stuff, you will be well-served by investing in a textbook on derivatives such as this one.
Thanks guys. I have been learning linear algebra and have applied it a lot in my game engine so far. The basic engine is complete with rendering and animation, so I am now moving onto physics simulation, which is why I need to learn this. Sounds like I need to get some grounding in basic calculus at this point then, or is there something else I should learn before?

Thanks again.
Well, you know what a derivative is, at least the basics. That's good enough for simple physics stuff, but if you're tring to make your own dynamics solvers (and I don't suggest you do) you'll need more of a grounding in calculus than that.
You hit the nail on the head. I am trying to write a physics solver. I find the best way to learn something is to have a practical project to work on, and I have learned a lot so far on vector and matrix math etc. doing the rendering work. You would not suggest it? Could I ask why? I am keen to learn every facet of game programming and have a special interest in physics and AI. Would you not suggest it even as an educational exercise?

Regards
Many areas of game development--rasterization, pathfinding, that sort of thing--are useful to do as a learning exercise because they have ramifications in so many areas of game development. Physics solvers, however, are a much more insular area. Writing a physics solver will give you great experience in writing physics solvers, and will probably not be useful to you otherwise. Engines like ODE, Newton, and Havok are simple to drop into an engine and use, so few people actually roll their own for production games. So if you have other stuff to concentrate on as well, I'd concentrate on the other stuff.
Sounds like good advice. So you don't think I will hit too much of this kind of math outside of physics? Even if I plan of dealing with things such as neural networks?

Thanks
Quote:Original post by Raeldor
Sounds like good advice. So you don't think I will hit too much of this kind of math outside of physics? Even if I plan of dealing with things such as neural networks?


If you have limited time or patience, definitely use an existing physics engine. However, learning how to make particles, rigid body boxes/objects (basic motion, not stacking nor constraints), and simple Verlet cloth move around and interact will help you in any area of game development where realistic, natural motion is required (it should be possible to learn how to implement and use the aforementioned items in a fairly short amount of time; they are also reasonable easy to implement, lots of papers+demo code available).

WRT neural networks: for something like a back-propagation neural net, it's pretty trival to implement and train (math is just an activation function and multiply-accumulates (one or more 'hidden' layers, typically n-way connections), rinse, repeat, etc.). For typical game logic, I think you'll find basic conditional logic/state-machines (simple 'expert systems') will get you plenty far, plenty fast (I would save neural nets, genetic algorithms, fuzzy logic, and fancier expert systems until way later).

This topic is closed to new replies.

Advertisement