J'essaie de modéliser l'équation y "+ 4y = 0, avec les conditions initiales y (0) = 1 et y '(0) = 0, dans Matlab. L'extrait de code ci-dessous montre une approximation de travail de la position en fonction du temps pour l'ODE ci-dessus:Résoudre des ODE de deuxième ordre dans Matlab
clear
syms y(t)
%Differential Equation Conversion
P = odeToVectorField(diff(y, 2) == -4*y);
M = matlabFunction(P,'vars',{'t','Y'});
%Position Approximation
pos_solution = ode45(M,[0 20],[1 0]);
x = linspace(0,20,1000);
y = deval(pos_solution,x,1);
%Plot of Position as a function of time
figure(3)
plot(x,y,'b');
Je suis en train de prendre ces données produit et trouver la vitesse du système en fonction du temps, mais ont aucune idée comment
« l'approximation de forme d'onde pour la vitesse du système » ... Je ne sais pas ce que cela est ni ce 'y' représente. – TroyHaskin
'y = deval (pos_solution, x, 1);' renvoie l'intégrale de y ', c'est-à-dire y (ou position si 'y' représente cela). Si vous voulez y '(vitesse si y représente la position, l'intégrale de y' '), alors utilisez 'y = deval (pos_solution, x, 2);' selon la documentation. Ou utilisez juste 'y = deval (pos_solution, x);' pour retourner les deux ensemble. – horchler
Merci beaucoup @horchler! Je ne comprenais pas vraiment de quoi parlait la documentation avec 'deval (XINT, SOL, IDX)'. Cela efface pour moi! Très appréciée. –