用二分法解非线性方程的脚本程序。

%输入变量a,b,假定f(a)*f(b)<0;pre_interval和pre_f为x和f(x)的精度要求
%二分法解F(x)=exp(-x)-x
function [rt,f_rt]=BiSectionExp(a,b,pre_interval,pre_f)
gap=b-a;
mid=(a+b)/2;
while gap<=pre_interval||abs(f(mid))<=pre_f
if gap<=pre_interval||abs(f(mid))<=pre_f
rt=mid;
f_rt=f(mid);
else if f(a)*f(mid)<=0
b=mid;
else a=mid;
end
end
end
end
function F=f(x)
F=exp(-x)-x
end
求大家帮忙指出错误还有改正方法!
谢谢啦!!!

 採用された回答

tafih
tafih 2022 年 11 月 23 日

0 投票

%输入变量a,b,假定f(a)*f(b)<0;pre_interval和pre_f为x和f(x)的精度要求
%二分法解F(x)=exp(-x)-x
function [rt,f_rt]=BiSectionExp(a,b,pre_interval,pre_f)
gap=b-a;
mid=(a+b)/2;
while gap>pre_interval||abs(f(mid))>pre_f
gap=b-a;
mid=(a+b)/2;
rt=mid;
f_rt=f(mid);
if f(a)*f(mid)<=0
b=mid;
else
a=mid;
end
end
end
function F=f(x)
F=exp(-x)-x;
end
结果是:
ans =
0.5664

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange元胞数组 についてさらに検索

タグ

質問済み:

2022 年 11 月 23 日

回答済み:

2022 年 11 月 23 日

Community Treasure Hunt

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

Start Hunting!