ode45 two equations

1 Ansicht (letzte 30 Tage)
Ibrahim Taha
Ibrahim Taha am 15 Dez. 2019
Kommentiert: Star Strider am 15 Dez. 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 =.

Akzeptierte Antwort

Star Strider
Star Strider am 15 Dez. 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 Kommentare
Ibrahim Taha
Ibrahim Taha am 15 Dez. 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 am 15 Dez. 2019
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by