Azzera filtri
Azzera filtri

ode45 two equations

1 visualizzazione (ultimi 30 giorni)
Ibrahim Taha
Ibrahim Taha il 15 Dic 2019
Commentato: Star Strider il 15 Dic 2019
Hi there!
I've got a question regarding ode45. There's this question where I've got a system of two equations, one describing y'=sin(xy) and the other x'=cos(x+y). I've got values for x(0) and y(0), which I decide. My issue is how I'm supposed to use ode45 to solve the equations. I'm supposed to draw a graph with the help of ode45. I have never seen a system of equations, where there is both x and x', y and y' on both sides of =.

Risposta accettata

Star Strider
Star Strider il 15 Dic 2019
The ODE functions are defined with the derivative on the left-hand-side of the equal sign, and the expression on the right, so first define ‘x’ as ‘z(1)’ and ‘y’ as ‘z(2)’ (or any variable you want), then:
dzdt(1) = cos(z(1) + z(2)); % x'=cos(x+y)
dzdt(2) = cos(z(1) * z(2)); % y'=sin(xy)
That works for a function file, however this system can also be defined easily as an anonymous function:
dzdt = @(t,z) [cos(z(1) + z(2)); cos(z(1) * z(2))];
That will get you started.
I leave the rest to you.
If you have problems getting your complete code to run, post back here with the code you have written, and describing the problems.
  2 Commenti
Ibrahim Taha
Ibrahim Taha il 15 Dic 2019
Hi there!
Thank you so much for the help. The second method you suggested, calling an anonymous function instead of a function file was more efficient. I think I've figured it all out now. It seemed that I was confused about calling x=z(1) and y=z(2), but I understand it now.
Star Strider
Star Strider il 15 Dic 2019
As always, my pleasure!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by