Bisection method, Numerical analysis
1 回表示 (過去 30 日間)
古いコメントを表示
y=@(x) ((x+1)^2)*(exp(x^2-2)-1);
a=0; b=1;
m=(a+b)/2;
while abs(y(m))<0.01
disp(m)
if y(a)*y(m)<0
b=m;
elseif y(b)*y(m)<0
a=m;
end
end
~~~~~
i want to find m<0.01?
what am i doing wrong?
0 件のコメント
採用された回答
Matt J
2020 年 11 月 6 日
編集済み: Matt J
2020 年 11 月 6 日
a=0; b=1;
m=(a+b)/2;
while abs(y(m))>0.01
if y(a)*y(m)<0
b=m;
elseif y(b)*y(m)<0
a=m;
end
m=(a+b)/2;
[m,abs(y(m))]
end
Aside from that, however, your function does not have a root in the interval [0,1], as can be seen from the following:
fplot( @(x) ((x+1)^2)*(exp(x^2-2)-1) ,[0,1]);
その他の回答 (0 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!