Finding root of nonlinear functions

2 ビュー (過去 30 日間)
University Glasgow
University Glasgow 2022 年 9 月 8 日
コメント済み: Sam Chak 2022 年 9 月 8 日
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
Torsten 2022 年 9 月 8 日
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 件のコメント
Sam Chak
Sam Chak 2022 年 9 月 8 日
👍, Yes, follow this method to find all real roots.

サインインしてコメントする。

その他の回答 (1 件)

Sam Chak
Sam Chak 2022 年 9 月 8 日
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
  1 件のコメント
University Glasgow
University Glasgow 2022 年 9 月 8 日
Thank you

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSurrogate Optimization についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by