フィルターのクリア

How can I graph a "system" of ODEs?

1 回表示 (過去 30 日間)
Michael
Michael 2012 年 7 月 5 日
I am trying to model a shape that is defined with multiple differential equations. For reference, the variables are x and y (from the normal Cartesian plane) and then S (arc length) and theta (angle of the arc length with the horizontal).
The equations are:
dtheta/dS = -sin(theta)/x + y - 2H (a constant)
dx/dS = cos(theta)
dy/dS = sin(theta)
I'm just wondering if MatLab has an easy way to do this. If not, how could I set up a modified Euler's Method to solve this?
  2 件のコメント
Star Strider
Star Strider 2012 年 7 月 5 日
If you haven’t already, see:
to start with.
Michael
Michael 2012 年 8 月 8 日
Seen it. Didn't really help me. I've used ode45 on a 2nd order ODE, but have never used these with systems.

サインインしてコメントする。

採用された回答

Star Strider
Star Strider 2012 年 8 月 8 日
編集済み: Star Strider 2012 年 8 月 8 日
Is this what you want to do?
% dThXYdS(1) = theta(S), dThXYdS(2) = x(S), dThXYdS(3) = y(S)
H = 10;
dThXYdS = @(t,XYTh) [-sin(XThXY(1))/ThXY(2) + ThXY(3) - 2*H; cos(ThXY(1)); sin(XYTh(1))];
x0 = [0.1; 0.1; 0];
Tspan = [0:0.01:2]';
[T ThXY] = ode45(dThXYdS, Tspan, x0);
figure(8)
plot3(ThXY(:,1), ThXY(:,2), ThXY(:,3))
xlabel('X(S)')
ylabel('Y(S)')
zlabel('\Theta(S)')
grid
I have no idea what you intend for H or the rest, but this seems to work. I named the variable ThXY to denote the vector as [Theta(S); X(S); Y(S)].

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by