Bonjour, je suis étudiant en Math Info et je rencontre un problème sur la dernière question d'un exercice ( ça fait plusieurs jours déjà que j'y planche mais sans résultats...). La version de Matlab que j'utilise est :MATLAB 9.0.0.341360 (R2016a)
Voici l'exercice :
1) Créer un fichier représentant ce problème:
Voici mon code :2) Résoudre les deux cas suivant avec MATLAB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function yp= V(t,y) global a yp=zeros(2,1); yp(1) = y(2); yp(2) = a*(1-y(1)^2)*y(2)-y(1);
i) pour a=1, utiliser ode45 sur un intervalle de temps entre 0 et 20
Voici mon code :ii)pour a=1000, utiliser ode23s sur un intervalle de temps entre 0 et 6000
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 global a a=1 [t,y] = ode45('V',[0 20],[1 1]) plot(y(:,1),y(:,2))
Voici mon code :3)Tracer en 3 dimensions différentes courbes représentant x en fonction de ces deux codes MATLAB, en faisant varier le paramètre a ( t en abscisse et a en ordonnée allant de 1 à 1000).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 global a a=1000 [t,y] = ode23s('V',[0 6000],[1 1]) plot(y(:,1),y(:,2))
Cette question me pose problème. Je sais que x correspond à y(:,1) dans mon code matlab et que t est de même dimension que y(:,1). A chaque valeur a en associe un vecteur y(:,1) et un vecteur t . Donc y(:,1) et t dépendent de a. Du coup je vois pas du tout comment représenter cela en 3D. Je pensais stocker toutes les valeurs de y(:,1) et t en faisant varier a entre 1 et 1000 dans une matrice mais après je sais pas comment représenter cela. Je voulais faire un plot3 mais il faut que tout les paramètres soit de même dimension ce qui n'est pas le cas de a. Je vois pas du tout comment faire.
J'espère avoir été clair et que quelqu'un pourra me venir en aide.
Merci d'avance !
Partager