Matlab refuse de calculer une limite

Bonjour,

J'ai une fonction $f$ de la variable $x$ ainsi que de trois paramètres $a$, $b$ et $c$. Je voudrais calculer la limite de cette fonction quand $x$ tend vers $0$, pour différentes valeurs des paramètres. Du coup, pour $a$, $b$ et $c$ fixés, je tape:
limit(f(x, a, b, c), x, 0, 'right'))

Le souci c'est que pour certaines valeurs des paramètres, Matlab refuse de calculer la limite. Pire: c'est le cas même à un endroit où la fonction est définie. Concrètement:

je définis ma fonction symbolique:
syms f(x, a, b, c)
    f(x,a, b, c) = ((x./(2*(1+a.*tanh(x*b).*tanh(x*c)))).*
    (tanh(x*b)+tanh(x*c) + x.^2.*(tanh(x*b)+a.*tanh(x*c)) - ((tanh(x*b)+tanh(x*c) + 
    x.^2.*(tanh(x*b)+a.*tanh(x*c))).^2 - 4.*tanh(x*b).*tanh(x*c).*
    (1-a).*(1+a.*tanh(x*b).*tanh(x*c)).*(1+x.^2)).^0.5)).^0.5;

mais c'est la dérivée (non définie pour $x=0$) qui m'intéresse:
g = diff(f,x);

bon exemple:
double(limit(g(x, 0.3, 5, 5), x, 0, ‘right’)
    
ans = 1.5038

mauvais exemple:
g(0.1, 0.3, 5, 10)
    
ans = 1.4914


mais
double(limit(g(x, 0.3, 5, 10), x, 0.1, ‘right’) 

ans = limit(((tanh(5*x) + tanh(10*x) - …

Merci pour votre aide.

Réponses

  • Bonsoir,

    Chez moi, avec Matlab R2019b, après avoir réparé apostrophes et parenthèses, ta dernière expression donne $1.498219853270591$.

    Cordialement,

    Rescassol
  • Ah! Peut-être que mettre Matlab à jour règlera le problème...

    Merci beaucoup en tout cas!
  • Effectivement, ça a marché. Merci bien Rescassol.

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