作业帮 > 综合 > 作业

利用matlab 编程 1.求用方程求根的二分法求方程x3-x-1=0在区间[1,1.5]内的一个实根,要求误差小于0.

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/15 10:29:39
利用matlab 编程 1.求用方程求根的二分法求方程x3-x-1=0在区间[1,1.5]内的一个实根,要求误差小于0.005.2.
利用matlab 编程 1.求用方程求根的二分法求方程x3-x-1=0在区间[1,1.5]内的一个实根,要求误差小于0.
/>这是源代码:
在matlab中保存为:bisection.m
function rtn=bisection(fx,xa,xb,n,delta)
% Bisection Method
% The first parameter fx is a external function with respect to viable x.
% xa is the left point of the initial interval
% xb is the right point of the initial interval
% n is the number of iterations.
x=xa;fa=eval(fx);
x=xb;fb=eval(fx);
disp(' [ n xa xb xc fc ]');
for i=1:n
xc=(xa+xb)/2;x=xc;fc=eval(fx);
X=[i,xa,xb,xc,fc];
disp(X),
if fc*fa<0
xb=xc;
else xa=xc;
end
if (xb-xa)<delta,break,end
end
>>f='x^3-x-1';
>>bisection(f,1,1.5,20,10^(-3))
[ n xa xb xc fc ]
1.0000 1.0000 1.5000 1.2500 -0.2969
2.0000 1.2500 1.5000 1.3750 0.2246
3.0000 1.2500 1.3750 1.3125 -0.0515
4.0000 1.3125 1.3750 1.3438 0.0826
5.0000 1.3125 1.3438 1.3281 0.0146
6.0000 1.3125 1.3281 1.3203 -0.0187
7.0000 1.3203 1.3281 1.3242 -0.0021
8.0000 1.3242 1.3281 1.3262 0.0062
9.0000 1.3242 1.3262 1.3252 0.0020
从结果可以看出,
这个解为:1.3262