Newton迭代法数值分析实验报告.docx
《Newton迭代法数值分析实验报告.docx》由会员分享,可在线阅读,更多相关《Newton迭代法数值分析实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
Newton迭代法数值分析实验报告
数值分析实验报告
姓名
学号
日期
实验项目
Newton迭代法
指导教师
一、上机实验的问题和要求(需求分析):
目的与要求:
掌握求解非线性方程实根的Newton切线法的编程运算
实验内容
1、用Newton切线法求
在0.5附近的根
2、用Newton切线法求方程
在
附近的一个根.(选做)
3、用Newton切线法计算
,
时,方程
在
附近的根(
)以及
附近的根(
),比较计算两根时的迭代次数,并与理论结论作比较.
二、程序设计的基本思想,原理和算法描述:
运行环境:
matlab
算法描述:
1.输入初值,以及newton迭代形式
2.采用while循环实现反复迭代。
3.以误差选为1.0E-5,即
为终止循环的条件。
4.输出:
最后一个z即为收敛值;
K的值即为迭代次数
三、主要程序代码或命令:
1、用Newton切线法求
在0.5附近的根
主要代码:
clear;
x=0.5;
y=x-exp(-x);
z=x-y/(1+exp(-x));
k=1;
whileabs(z-x)>=1.0e-8
k=k+1;
x=z;
y=x-exp(-x);
z=x-y/(1+exp(-x));
end
k
如图所示
结果为下图
2、用Newton切线法求方程
在
附近的一个根.
主要代码:
clear;
x=1.5;
y=x^3-x-1;
z=x-y/(3*x^2-1);
k=1;
whileabs(z-x)>=1.0e-8
k=k+1;
x=z;
y=x^3-x-1;
z=x-y/(3*x^2-1);
end
k
z
如图所示
结果为下图
3、用Newton切线法计算
,
时,方程
在
附近的根(
)以及
附近的根(
)
K=3时在1.3附近的根主要代码:
clear;
x=1.3;
y=(x-sqrt
(2))^3*(x^2-3);
m=3*(x^2-3)*(x-2^(1/2))^2+2*x*(x-2^(1/2))^3;
z=x-y/m;
k=1;
whileabs(z-x)>=1.0e-8
k=k+1;
x=z;
y=(x-sqrt
(2))^3*(x^2-3);
m=3*(x^2-3)*(x-2^(1/2))^2+2*x*(x-2^(1/2))^3;
z=x-y/m;
end
k
结果为下图
K=4时在1.3附近的根主要代码
结果为下图
K=4时在2.5附近的根主要代码
clear;
x=2.5;
y=(x-sqrt
(2))^4*(x^2-3);
m=4*(x^2-3)*(x-2^(1/2))^3+2*x*(x-2^(1/2))^4;
z=x-y/m;
k=1;
whileabs(z-x)>=1.0e-5
k=k+1;
x=z;
y=(x-sqrt
(2))^4*(x^2-3);
m=4*(x^2-3)*(x-2^(1/2))^3+2*x*(x-2^(1/2))^4;
z=x-y/m;
end
k
z
结果为下图
K=3时在2.5附近的根主要代码
结果为下图
四、调试和运行程序过程中产生的问题及采取的措施:
1、编译时,想用diff求出y的一阶导数,但出现错误,必须把x变成syms形式,编译过程出现错误,就采取把y的一阶导数先算出来,带入newton迭代公式中,程序有待改进
五、运行输出结果及分析:
运行结果见第三项,
结果分析
比较1.3与2.5的迭代次数,当k=3和k=5对单根x=2.5的迭代次数没有影响,但是对与重根x=1.3来说,k=3时迭代次数为22,k=4时迭代次数为29,可见重数k越大,收敛越慢,因为重根处newton法是局部收敛的,与理论一致