简单迭代法与加速方法实验教材.doc
文本预览下载声明
数值分析实验报告
姓名学号 日期2014-3-22实验项目简单迭代法与加速方法指导教师一、上机实验的问题和要求(需求分析):
目的与要求:
1、掌握求解非线性方程实根的简单迭代法的编程运算
2、会分析迭代步数,设计容许误差
实验内容:
1、方程可以等价化成以下三种形式:
(i)
(ii)
(iii)
针对三种等价形式给出三种不同的简单迭代格式并使用每种格式计算方程在区间上的解,初值选为1.5,容许误差选为1.0E-5,即;
分析每种格式的收敛性;
分析收敛格式的迭代步数与计算时间.
2、结合上述问题中(ii)相应的迭代格式,利用Stenffenson迭代法求原方程的解。初值选为1.5,容许误差选为1.0E-5,分析迭代步数与计算时间,并与上述简单迭代法作比较.
程序设计的基本思想,原理和算法描述:
算法的描述:
1 . 输入初值,以及各种迭代形式
2 .采用for循环实现反复迭代。
3 . 以误差选为1.0E-5,即为终止循环的条件。
4 . 输出 :最后一个y即为收敛值;
y的输出次数,即为收敛次数
三、主要程序代码或命令:
1.
(1)
x=1.5;
y=(10/x-4*x)^(1/2);
while abs(y-x)=1.0e-5
x=y;
y=(10/x-4*x)^1/2
end
y
(2)
x=1.5;
y=(10/(4+x))^(1/2)
while abs(y-x)=1.0e-5
x=y;
y=(10/(4+x))^(1/2)
end
(3)
x=1.5;
y=x-(x^3+4*x^2-10)/(3*x^2+8*x)
while abs(y-x)=1.0e-5
x=y;
y=x-(x^3+4*x^2-10)/(3*x^2+8*x)
end
2.
(1)
x1=1.5;
y=(10/x1-4*x1)^(1/2);
z=y-(10/y-4*y)^(1/2);
x2=x1-(y-x1)^2/(z-2*y+x1)
while abs(x2-x1)=1.0e-5
x1=x2;
y=(10/x1-4*x1)^(1/2);
z=y-(10/y-4*y)^(1/2);
x2=x1-(y-x1)^2/(z-2*y+x1)
end
(2)
x1=1.5;
y=(10/(4+x1))^(1/2);
z=(10/(4+y))^(1/2);
x2=x1-(y-x1)^2/(z-2*y+x1)
while abs(x2-x1)=1.0e-5
x1=x2;
y=(10/(4+x1))^(1/2);
z=(10/(4+y))^(1/2);
x2=x1-(y-x1)^2/(z-2*y+x1)
end
(3)
x1=1.5;
y=x1-(x1^3+4*x1^2-10)/(3*x1^2+8*x1);
z=y-(y^3+4*y^2-10)/(3*y^2+8*y);
x2=x1-(y-x1)^2/(z-2*y+x1)
while abs(x2-x1)=1.0e-5
x1=x2;
y=x1-(x1^3+4*x1^2-10)/(3*x1^2+8*x1);
z=y-(y^3+4*y^2-10)/(3*y^2+8*y);
x2=x1-(y-x1)^2/(z-2*y+x1)
end
四、调试和运行程序过程中产生的问题及采取的措施:
1的输入结果不在区间上,出现错误,经检查,不是程序出现问题;
运行输出结果及分析:
(1) 的结果如图???示,
得出结论该迭代不收敛。
(2)的结果如下图
分析: 迭代次数即y的输出次数n = 6收敛于p = 1.365230575673434。
(3)
分析:形式( 迭代次数n = 4并且收敛于p = 1.36523001341410。故第三种形式收敛速度更快,时间代价也更少。
利用Stenffenson迭代法求原方程的解时形式
(i) 通过编程迭代发现其收敛,n = 4,收敛于p = 1.365230013196788。
形式(ii) 迭代次数n = 3,p =1.365230013414097。
形式(iii) 迭代次数n =3,p =1.36523001341410
分析Stenffenson迭代法求原方程的解时能加速收敛速度,也可能使得发散的迭代公式,经以上加速得到较好的收敛性。
显示全部