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'ai toujours une erreur.
J'ai pourtant suivi l'aide en ligne de Matlab.
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) :
Code :
- 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 :
Code :
- 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 :
Citation :
??? 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 !