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

%输入变量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 中查找有关 元胞数组 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!