Matlab: zéros d'une fonction

Bonjour,
j'ai un petit problème sous Matlab, j'ai besoin vous aide svp,
a=0.1;
d=0.5;
N=20;
x=[1:1:20]
for i=1:N
   K2(i)=(a*x(i))/(b+d*x(i));
end
k2=sum(K2);
f=@(b) log(a) -log(x(i))-psi(b+1)+k2;
Je suis en train de chercher le zéro de la fonction f par le commande fzero, mais ça ne marche pas, j'ai obtenu ça

Error using fzero (line 309)
Function value at starting guess must be finite and real.

Réponses

  • Bonne nuit,

    C'est quoi "d" ?

    Cordialement,

    Rescassol
  • excuse moi, je modifier le code, b le variable de la fonction f, a,d et N sont des donnés.
  • Bonjour,

    Ton code passe chez moi (Matlab 2019 a), puis $fzero(f,0)$ me donne $-0.4711$, mais comme tu ne donnes pas ton $x_0$, je ne peux pas vérifier plus avant.

    Cordialement,

    Rescassol
  • je travaille avec matlab 2014b, j’exécute >> fzero(y2,0) et j'obtient

    Error using fzero (line 309)
    Function value at starting guess must be finite and real.
  • Bonjour,

    1) Tu n'as pas défini $y_2$.
    2) Pourquoi utiliser un vieux Matlab obsolète ?

    Cordialement,

    Rescassol
  • y2=f dan mon code et les versions Matlab 2018 et 2019 sont très chères a notre pays on ne peut pas l'acheter
  • Bonjour,

    $119€$ pour la 2019b, ce n'est pas excessif.
    De toutes façons, je n'ai plus la $2014b$, et ne peut donc pas t'aider dessus.

    Cordialement

    Rescassol
  • Il y a Octave qui est gratuit et qui fait la même chose que Matlab.
  • Bonjour,

    Octave ne fait qu'un sous ensemble de ce que fait Matlab, pas le calcul formel par exemple.
    Mais peut-être cela suffit il pour Laribi.

    Cordalement,

    Rescassol
Connectez-vous ou Inscrivez-vous pour répondre.