Bonjour,
J'ai deux équations différentielles que j'ai résolu en utilisant la fonction dsolve.
Pour vérifier si les équations étaient justes, j'ai essayé de faire un graphique pour visualiser les solutions, mais cela ne donne qu'une droite horizontale sur 0.
Si je change les valeurs de c1 pour d'autres valeurs que 0, le graphique ne s'affiche plus et Matlab m'indique les erreurs suivantes:
Error using sym/min (line 86)
Input arguments must be convertible to floating-point numbers.
Error in fplot (line 116)
ymin = min(y(J)); ymax = max(y(J)); %%% je n'ai pas bien compris cette erreur, je n'ai pas de ligne 116.
Error in dsolve10032016 (line 29)
fplot(fSol,[0,50]) %%j'ai essayé de mettre des bornes plus larges mais sans succès
Je n'arrive pas à trouver la cause de ce problème. Auriez-vous une idée?
Script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
syms f(t) g(t) Vper Vcen Kper Kcen CLplacen
eqn1=diff(f)==(2.5025*(g/Kper-(1-0.98)*(f/((1-0.925)*Kcen)))-CLplacen*(f/((1-0.925)*Kcen)))/Vcen;
eqn2=diff(g)==(2.5025*((1-0.98)*(f/((1-0.925)*Kcen))-(g/Kper)))/Vper;
S=dsolve(eqn1,eqn2)
fSol(t) = S.f
gSol(t) = S.g
%ou
%[fSol(t) gSol(t)] = dsolve(eqn1, eqn2)
c1 = f(0) == 0; %%% erreur quand je mets une autre valeur que 0
c2 = g(0) == 0;
[fSol(t) gSol(t)] = dsolve(eqn1, eqn2, c1, c2)
fplot(fSol,[0,50])
hold on
fplot(gSol,[0,50])
grid on
legend('fSol','gSol','Location','best') |
Partager