07 信本
谭金林
200702054029
实验十一 二分法和牛顿迭代法求解方程
实验目的:
1. 编程实现二分法和牛顿迭代法
2. 比较二分法和牛顿迭代法的优劣
实验步骤:
1.编程实现二分法求解方程
2.编程实现牛顿迭代法
实验程序:
以 1+x-exp(x)=0 为例。
1. 二分法
clear;
f=inline('1+x-exp(x)');
format long
a=0;b=2;ya=f(a);k=0;
A=[];
while b-a>eps
x=(a+b)/2;
y0=f(x);
if ya==0
ya=eps;
end
if ya*y0<0
else
b=x ;
A=[A b];
a=x;
ya=y0;
A=[A a];
end
k=k+1;
end
disp('求解次数为:');k
plot(1:k,A)
>> Er
求解次数为:
k = 53
2. 牛顿法
clear;
format long
k=0; x=2; xprev=1;
A=[];
while abs(x-xprev)>eps
xprev=x;
x=x-(exp(x)-x-1)/(exp(x)-1)
k=k+1;
A=[A x];
end
disp('求解次数为:');k
plot(1:k,A,'r-')
>> Newton
求解次数为:
k =
32
实验分析:
通过实验可知:以误差为 eps 为准,在二分法下,程序迭代了 52 次后和第 53 次的结果
一致,即程序迭代了 52 次达到要求的试验误差;在牛顿迭代法下,程序迭代了 31 次后和第
32 次的结果一致,即程序迭代了 31 次达到要求的试验误差;
二者比较明显可以看出牛顿迭代法的求解效率要远远优于二分法