搜索
您的当前位置:首页正文

Newton迭代法数值分析实验报告

来源:哗拓教育


数值分析实验报告

姓名 实验项目 学号 日期 指导教师 Newton迭代法 一、上机实验的问题和要求(需求分析): 目的与要求: 掌握求解非线性方程实根的Newton切线法的编程运算 实验内容 1、用Newton切线法求xe在0.5附近的根 32、用Newton切线法求方程xx10在1.5附近的一个根. (选做) x3、用Newton切线法计算k3,k4时,方程(x2)k(x23)0在1.3附近的根(2)以及2.5附近的根(3),比较计算两根时的迭代次数,并与理论结论作比较. 二、程序设计的基本思想,原理和算法描述: 运行环境:matlab 算法描述: 1 . 输入初值,以及newton迭代形式 2 .采用while循环实现反复迭代。 3 . 以误差选为1.0E-5,即10为终止循环的条件。 4 . 输出 :最后一个z即为收敛值; K的值即为迭代次数 三、主要程序代码或命令: xxe1、用Newton切线法求在0.5附近的根 5主要代码: clear; x=0.5; y=x-exp(-x); z=x-y/(1+exp(-x)); k=1; while abs(z-x)>=1.0e-8 k=k+1; x=z; y=x-exp(-x); z=x-y/(1+exp(-x)); end k 如图所示 结果为下图 32、用Newton切线法求方程xx10在1.5附近的一个根. 主要代码: clear; x=1.5; y=x^3-x-1; z=x-y/(3*x^2-1); k=1; while abs(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,k4时,方程(x2)k(x23)0在1.3附近的根(2)以及2.5附近的根(3) 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; while abs(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; while abs(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法是局部收敛的,与理论一致

因篇幅问题不能全部显示,请点此查看更多更全内容

Top