Runge-Kutta avec un paramétre variable
bonjour,
je veux résoudre un systèmes des équations par la méthode numérique Runge Kutta. la méthode fonctionne bien lorsque je fixe le paramètre w, mais j'aime avoir des résultats pour différent valeurs de w.
code de Runge Kutta:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| clear;clc;clf;
dt=0.5;T=10;
h=dt;
x1=0;
x2=0;
i=1;
for t=0:h:T
f1=h*f(t,x1,x2); g1=h*g(t,x1,x2);
f2=h*f((t+h/2),(x1+f1/2),(x2+g1/2));g2=h*g((t+h/2),(x1+f1/2),(x2+g1/2));
f3=h*f((t+h/2),(x1+f2/2),(x2+g2/2));g3=h*g((t+h/2),(x1+f2/2),(x2+g2/2));
f4=h*f((t+h),(x1+f3),(x2+g3)); g4=h*g((t+h),(x1+f3),(x2+g3));
x1=x1+((f1+f4)+2*(f2+f3))/6.0;
x2=x2+((g1+g4)+2*(g2+g3))/6.0;
X(i)=x1;
Y(i)=x2;
i=i+1;
end
t=[0:h:T];
plot(t,X,'-p',t,Y,'-*');
grid on;
xlabel('time(s)');
legend('displacement(m)','velocity(m/s)',2) |
f et g sont des fonctions
Code:
1 2 3 4 5 6 7
| function v1=f(t,x1,x2)
v1=x2;
%%%%%%%%%%%%
function v2=g(tx1,x2)
k=1; m=1; c=0;
F=100*cos(w*t);
v2=(F-k*x1-c*x2)/m; |
merci d'avance