Please, how do I find all the roots this function:
y-0.8193318913*tanh(y)+0.2931044702e-2*tanh(y)/(0.7500000000e-3*y^2-0.1622336517e-1) = 0

 Réponse acceptée

f = @(y)(y-0.8193318913*tanh(y)).*(0.7500000000e-3*y.^2-0.1622336517e-1)+0.2931044702e-2*tanh(y);
fun = @(y)f(y)./(0.7500000000e-3*y.^2-0.1622336517e-1);
y = -6:0.01:6;
plot(y,f(y))
x0 = [-5 -4];
s(1) = fzero(f,x0);
x0 = [-1 1];
s(2) = fzero(f,x0);
x0 = [4 5];
s(3) = fzero(f,x0);
s
s = 1×3
-4.5365 0 4.5365
fun(s)
ans = 1×3
1.0e-14 * 0.4951 0 -0.4951

1 commentaire

Sam Chak
Sam Chak le 8 Sep 2022
👍, Yes, follow this method to find all real roots.

Connectez-vous pour commenter.

Plus de réponses (1)

Read about fzero().
The solution may look like this:
fun = @(y) y - 0.8193318913*tanh(y) + (0.2931044702e-2)*tanh(y)./(0.7500000000e-3*y.^2 - 0.1622336517e-1);
y0 = 0; % initial guess
y = fzero(fun, y0)
y = 0

Catégories

En savoir plus sur Parallel Computing dans Centre d'aide et File Exchange

Produits

Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by