# Finding root of nonlinear functions

3 views (last 30 days)
University Glasgow on 8 Sep 2022
Commented: Sam Chak on 8 Sep 2022
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

Torsten on 8 Sep 2022
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
Sam Chak on 8 Sep 2022
đź‘Ť, Yes, follow this method to find all real roots.

Sam Chak on 8 Sep 2022
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
University Glasgow on 8 Sep 2022
Thank you

### Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

R2022a

### Community Treasure Hunt

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

Start Hunting!