Writing ODE equations for ode45 to solve;

2 views (last 30 days)
Hi there!
I have a basic question to ask here, regarding writing the first-order equations for ode45 to solve.
Let's say I am solving Newton's 2nd law equations of motion F = ma.
In my function file, the left-hand-side of each equation will be:
  1. vx (velocity of x-component)
  2. vx (velocity of y-component)
  3. omega (angular velocity)
  4. ax (acceleration of x)
  5. ay (acceleration of y)
  6. omegadot (angular acceleration)
For equations 4, 5, 6, I need to use Newton's law ma = F.
Should I write ma = F as is, or do I need to isolate ax, ay, and omegadot, by dividing both sides by the mass m and the moment of inertia I, respectively? My LHS m*a is pretty lengthy, after using the product rule, chain rule, etc., so I wonder if I can just keep it as is, ma = F.
I then create an anonymous function that calls the above function, and this anonymous function is passed into ode45.
Updafe: I just tinkered with this a bit, and it does seem that I can write ma = F as is, but I have to use the double == sign, to equate values from each side, and that the single = sign is for assigning a value to a variable name. Please let me know if you have other thoughts to share.
Thanks!

Accepted Answer

Torsten
Torsten on 30 Oct 2024
Moved: Torsten on 30 Oct 2024
The form of the equations that can be solved by ode45 is M*y'(t) = f(t,y). So you can decide whether you choose M to be the identity matrix (that is: whether you isolate ax, ay and omegadot) or not.
  6 Comments
Noob
Noob on 30 Oct 2024
Hi Torsten / Walter,
I just tried writing ma = F as is, within my function file, but Matlab tells me it's not valid Matlab syntax.
Torsten
Torsten on 30 Oct 2024
Edited: Torsten on 30 Oct 2024
Numerical assignments only use the single "=" sign. I don't know what you try to do in your function file.
If you want to set something like
a11*y1' + a12*y2' + a13+y3' = f1
you will have to set the elements a11, a12 and a13 in the mass matrix M and the expression for f1 in your function of the right-hand side.

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!