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 :
en cherchant sur internet j'ai trouvé ca :
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);
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 ...
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)
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
Partager