matlab二分法求方程x^3-x-1=0
(2010-05-21 14:28:16)
标签:
matlab线性方程二分法课件杂谈 |
分类: Matlab |
这是源代码:
在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_r(fx);
x=xb;fb=eval_r(fx);
disp('
[
n
xa
xb
xc
fc ]');
for i=1:n
xc=(xa+xb)/2;x=xc;fc=eval_r(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
在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_r(fx);
x=xb;fb=eval_r(fx);
disp('
for i=1:n
end
>>f='x^3-x-1';
>>bisection(f,1,1.5,20,10^(-3))
[
从结果可以看出,
这个解为:1.3262
前一篇:涟漪效果
后一篇:matlab中用牛顿法求方程的根