误差放大了5n倍,算法稳定性很不好; 第二种算法:(从20——>1)
*
en In In
111*11*1*
en 1 In 1 In ( In ) (In In) en 1 In
55n55n55
11e0 e1 ... ()nen
55
误差在逐步缩小,算法趋近稳定,收敛。
x
2. 求方程e 10x 2 0的近似根,要求xk 1 xk 5 10
4
,并比较计算量。
(1) 在[0,1]上用二分法;
function [t i]=erfenfa00(a,b)
f=@(x)( exp(x)+10*x-2) t(1)=(a+b)./2; done=0; i=1; while ~done
if f(a)*f(t(i))<0 b=t(i);t(i+1)=(a+b)/2; elseif f(b)*f(t(i))<0
a=t(i);t(i+1)=(b+a)/2; end
if abs(t(i+1)-t(i))<5*10^(-4) done=1; end
i=i+1; end
(2) 取初值x0 0,并用迭代xk 1
2 ex ;
10
function x=diedai(x0) %x0初值 x=x0;
for i=1:10000
y=(2-exp(x))./10;x=y;y=(2-exp(x))./10; if abs(x-y)<5*10^(-4) disp('迭代次数'); 2*i break; end end
(3) 加速迭代的结果(艾特肯Aitken加速方法);
function [y m]=aitken(a)