ode45 two equations

1 次查看(过去 30 天)
Ibrahim Taha
Ibrahim Taha 2019-12-15
评论: Star Strider 2019-12-15
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 =.

采纳的回答

Star Strider
Star Strider 2019-12-15
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 个评论
Ibrahim Taha
Ibrahim Taha 2019-12-15
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 2019-12-15
As always, my pleasure!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by