ODE: How can I trace changing of all parts of equation during solving
1 回表示 (過去 30 日間)
古いコメントを表示
Hello! I'll be grateful if someone could help me. So the question is:
I have an ODE that is been solved correctly.
function [out] = chua(t,in,alpha, beta, A, C, u1st)
x = in(1);
y = in(2);
z = in(3);
xdot = -alpha*((3*A*u1st^2+C+1)*x-y) ...
-3*A*alpha*u1st*x^2...
-A*alpha*x^3;
ydot = x - y + z;
zdot = -beta*y;
out = [xdot ydot zdot]';
The call is:
t = [0 2400];
y = [0.004 0 0];
alpha = 15.6;
beta = 28;
A = 0.002;
C = -1.3;
u1st = 0.5;
[t,y] = ode45(@(t, y) chuaModIris(t, y, alpha, beta, A, C, u1st), t, y );
plot3(y(:,1),y(:,2),y(:,3))
But on each step of integration I need to get extra data - parts of the first equation:
SquarePart = -3*A*alpha*u1st*x^2;
and
CubicPart = -A*alpha*x^3;
Actually, I've already done it in Simulink, but I haven't any idea how to implement it in m-file.
0 件のコメント
採用された回答
darova
2020 年 1 月 22 日
What about this?
[t,y] = ode45(@(t, y) chuaModIris(t, y, alpha, beta, A, C, u1st), t, y );
plot3(y(:,1),y(:,2),y(:,3))
SquarePart = -3*A*alpha*u1st*y(:,1).^2;
CubicPart = -A*alpha*y(:,1).^3;
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!