Bonjour !
Je tente de résoudre un simple système d'équations différentielles ODE, mais j'obtiens un vecteur de solution NaN et je n'arrive pas à trouver pourquoi..
Voici mon fichier principal test.m :
Et le fichier equation_test.m contenat mes équations différentielles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Remplissage du vecteur de valeurs initiales y0: y0=zeros(5,1); y0(1) = 0; y0(2) = 0; y0(3)= 33.3; y0(4)= 8.307; y0(5) = 0; %Plage de temps de simulation tspan=[0,10000]; %Appel du solveur d'équations différentielles (ODE) [T,Y] = ode15s(@equation_test, tspan, y0); %J'ai aussi essayé ode45, ode23s and ode114.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Merci de votre aide, elle est très appréciée !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function dydt=equation_test(t,y) dydt=zeros(5,1); k1=0.003;k_1=0.06; k2=0.01;k_2=0.1; k3=1;k_3=0.01; Vmax4=450;Km4=50; v1=k1*y(3)*y(4)-k_1*y(1); v2=k2*y(1)*y(1)-k_2*y(2); v3=k3*y(2)-k_3*y(5); v4=Vmax4*(y(5)/(Km4*y(5))); %Le problème est probablement ici puisque 0/0 = NaN mais comment je %peut résoudre le problème si la valeur initiale doit être y(5) = 0 pour la première itération ? dydt(1)=v1-(2*v2); dydt(2)=v2+v3-v4; dydt(3)=-v1; dydt(4)=-v1; dydt(5)=-v1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Partager