solve vs. fsolve
古いコメントを表示
I am trying to solve non linear equations with solve or fsolve.
But I found difficulties in using them.
for example,
i would like to solve the equation below.
a^2 = 4
then, i can get the answer with the script below.
syms a;
eqn1 = a^2 == 4;
[a1] = solve(eqn1);
then, it gives me a = -2, 2
but when I used fsolve, it gives me only one value according to initial point.
this is the script.
fun = @test;
x0 = [1];
[a2] = fsolve(fun,x0)
function F = test(x)
F(1) = -x(1)^2 + 4;
end
if I set x0 as [-1], then it gives me another value but still only one value.
How can I get the all values with fsolve?
採用された回答
その他の回答 (1 件)
Walter Roberson
2020 年 5 月 27 日
0 投票
Sometimes plotting and finding intervals by eye is not productive.
In the general case, theory says that it is impossible to construct a function that will find all the zeros of every arbitrary function.
In practice, sometimes you can do good enough (your function might be well-enough behaved)
https://www.mathworks.com/matlabcentral/fileexchange/50223-bairstow-s-method-of-finding-all-roots-of-a-polynomial (for the case where you are dealing with a polynomial)
カテゴリ
ヘルプ センター および File Exchange で Systems of Nonlinear Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!