您的位置:首页 > 编程语言 > MATLAB

计算方法中方程的近似解法中二分法matlab实现

2008-03-12 21:07 731 查看
计算方法

方程的近似解法

二分法

fun.m中代码如下:

function fun(a,b,e)
%f是自定义的函数
%a为隔根区间左端点,b为隔根区间右端点,e为绝对误差限
if nargin==2
e=1.0e-6;
elseif nargin<2
input('变量输入错误!');
return;
end
if a>=b
input('隔根区间输入错误!');
return;
end
a1=a;
b1=b;
c1=(a1+b1)/2;
n=0; %迭代计数器,初值为0
while (b-a)/(2^(n)) >= 1/2*e
c1
if f(c1)==0
c1
elseif f(a1)*f(c1)>0
a1=c1;
c1=(a1+b1)/2;
n=n+1;
elseif f(b1)*f(c1)>0
b1=c1;
c1=(a1+b1)/2;
n=n+1;
end
end
n

f.m文件为自己需要编写的函数

例:用二分法求方程 x^3+4x^2-10=0在区间[1,2]内的根,要求绝对误差不超过1/2*10^(-2)

则f.m文件代码如下:

function y=f(x)
y=x^3+4*x^2-10;

运行及结果:

fun(1,2,10^(-2))

c1 =

1.5000

y =

1.4812

y =

1.2599

y =

1.4812

c1 =

1.7500

y =

1.5956

y =

1.4812

y =

1.5956

c1 =

1.8750

y =

1.6529

y =

1.5956

y =

1.6529

c1 =

1.9375

y =

1.6814

y =

1.6529

y =

1.6814

c1 =

1.9688

y =

1.6957

y =

1.6814

y =

1.6957

c1 =

1.9844

y =

1.7028

y =

1.6957

y =

1.7028

c1 =

1.9922

y =

1.7064

y =

1.7028

y =

1.7064

c1 =

1.9961

y =

1.7082

y =

1.7064

y =

1.7082

n =

8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: