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!