Bonjour a tous,
j'ai un probleme avec la fonction fsolve, malgré l'aide et mes recherches sur interne je n'ai pas trouvé la solution donc j'ai besoin de vous...

je suis sur que vous allez trouver tres vite mon probleme car je ne suis pas doué...

voila j'ai codé ca et il me met tjr une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 z=0.5;
    result= fsolve(Tension_permanente(vyt5_linear(z),vyt20_linear(z),vyt40_linear(z),i(2),Temp,tfloat,age)+(-e(2)+r*(ucalcul*(1/u(2)))),z);

ucalcul = P/N => r*(P/N)*(1/u)
je veux juste que fsolve me donne la valeur pour laquelle mon equation U-E+r*ucalcul*(1/u)=0

mais j'obtiens cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
??? Error using ==> lsqfcnchk at 111
FUN must be a function, a valid string expression,
or an inline function object.
 
Error in ==> fsolve at 182
    funfcn = lsqfcnchk(FUN,'fsolve',length(varargin),funValCheck,gradflag);
 
Error in ==> batterie_cadmium_nickel at 292
    result=
    fsolve(Tension_permanente(vyt5_linear(z),vyt20_linear(z),vyt40_linear(z),i(2),Temp,tfloat,age)+(-e(2)+r*(ucalcul*(1/u(2)))),z);
en cherchant sur internet j'ai trouvé ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 z0=0.5;
F=@(z)(Tension_permanente(vyt5_linear(z),vyt20_linear(z),vyt40_linear(z),i(2),Temp,tfloat,age)+(-e(2)+r*(ucalcul*(1/u(2)))));
 
    result= fsolve(F,z0)
mais le résultat n'est pas le bon je devrais trouver 0.973 et il me met 3.374 la différence est enorme ...


je ne sais vraiment pas comment m'en sortir aider moi svp !

j'ai l'impression que matlab va chercher une valeur égale à 0 trop loin (environ a 10^-4) ...

merci