ODE: How can I trace changing of all parts of equation during solving
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
darova
le 22 Jan 2020
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;
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Ordinary Differential Equations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!