Bonjour à tous !
J'essaye de résoudre un système de 4 équations à 4 inconnues non linéaire à l'aide de fsolve de Matlab, mais j'obtiens toujours une erreur.
J'ai pourtant suivi l'aide en ligne de Matlab, et j'ai cherché un peu partout la syntaxe exacte.
C'est assez urgent donc si vous avez la solution merci beaucoup !!
J'ai tout d'abord créé un fichier myfun.m comprenant mon système de 4 équations (cpc1, Tc1,etc. sont des constantes définies dans mon prog principal) :
1 2 3 4 5
| function F = myfun(x)
F = [cpc1*(Tc1-x(1)) - cpf1*(x(2) - x(3));
C*(x(2) - x(3)) - E*(Tc1 - x(2) - x(1) + x(3))/(log((Tc1 - x(2))/(x(1) - x(3))));
A*(x(1) - x(3))-B*(x(4) - Tje);
B*(x(4) - Tje) - D*(x(1) - x(4) - x(3) + Tje)/(log((x(1) - x(4))/(x(3) - Tje)))]; |
Et ensuite j'essaye de résoudre ça à la fin de mon programme principal :
1 2 3 4
|
x0 = [100; 100; 100; 100]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options) % Call solver |
Mais j'ai le message d'erreur suivant :
??? Input argument "cpc1" is undefined.
Error in ==> myfun at 2
F = [cpc1*(Tc1-x(1)) - cpf1*(x(2) - x(3));
Error in ==> fsolve at 254
fuser = feval(funfcn{3},x,varargin{:});
Error in ==> monprog at 44
[x,fval] = fsolve(@myfun,x0,options) % Call solver
Caused by:
Failure in initial user-supplied objective function evaluation. FSOLVE cannot
continue.
Il ne semble pas reconnaître les constantes que j'ai pourtant calculées dans mon programme principal....
Merci d'avance !
Partager