《2022年非线性方程组迭代法[参 .pdf》由会员分享,可在线阅读,更多相关《2022年非线性方程组迭代法[参 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 实验二非线性方程的数值解法1.1 实验内容和要求在科学研究和工程技术中大量的实际问题是非线性的,求非线性方程( )0f x满足一定精确度的近似根是工程计算与科学研究中诸多领域经常需要解决的问题。实验目的 :进一步理解掌握非线性方程求根的简单迭代法、埃特金Aitken加速法、牛顿迭代法的思想和构造。实验内容 : 求方程2320 xxxe的实根。要求:(1)设计一种简单迭代法,要使迭代序列收敛,然后再用埃特金Aitken加速迭代,计算到-8110kkxx为止。(2)用牛顿迭代法,同样计算到-8110kkxx(3)输出迭代初值、迭代次数k及各次迭代值,并比较算法的优劣。1.2 算法描述普通迭代法
2、 计算步骤:(1)给定初始近似值0 x,eps 为精确度。(2)用迭代公式进行迭代,直到-8110kkxx为止。埃特金 Aitken 加速迭代法 计算步骤 :(1)将( )0f x化成同解方程( )xx()kkyx,()kkzy21()2kkkkkkkyxxxzyx=22kkkkkkx zyzyx(2)计算到-8110kkxx为止。牛顿法 计算步骤:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 2 给定初始近似值0 x ,1为
3、根的容许误差,2为( )f x 的容许误差, N为迭代次数的容许值。计算00(),()f xfx(1) 如果0()0fx或者迭代次数大于N, 则算法失败,结束;否则执行(2)(2) 按公式0100()()f xxxfx迭代一次,得到新的近似值1x, 计算11(),()f xfx(3)如果101xx或者12()f x,则迭代终止,以1x作为所求的根,结束;否则执行( 4)(4)以111(,(),()xf xfx代替000(,(),()xf xfx,转步骤( 1)继续迭代。1.3 程序代码清单#include #include #include double x1000 = 0;/迭代初值doub
4、le e, eqs;/精度double xx1000; / 迭代公式double ffi(double w) return (w*w + 2 - exp(w) / 3; / 普通迭代void fun() int i; printf(迭代初值为: %lfn, x0); for (i = 1; i+) xi = (xi * xi + 2 - exp(xi ) / 3; e = fabs(xi - xi - 1); if (e eqs) break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
5、 - 第 2 页,共 5 页 - - - - - - - - - 3 printf(所求方程满足精度的根为:%lf ,迭代次数为:%dn, xi, i); / 埃特金迭代void Aitken() int i; printf(迭代初值为: %lfn, x0); for (i = 1; i+) xxi = ffi(xi - 1); xxi + 1 = ffi(xxi); xi = 1.0*(xi - 1 * xxi + 1 - xxi * xxi) / (xi - 1 - 2 * xxi + xxi + 1); /埃特金迭代公式e = fabs(xi - xi - 1); printf(第%d
6、次迭代方程的值为:%lfn, i, xi); if (e 1e-8); printf(总迭代次数 :%d, cnt); printf(最终的近似根为 :%lfn, x); int main() x0 = 1.0; eqs = 1e-8; printf(普通迭代方法: n); fun(); printf(nn埃特金 Aitken 加速迭代 :n); Aitken(); printf(nn牛顿 Newton迭代法 :n); Newton(); system(pause); return 0; 1.4 实验结果下图是方程2320 xxxe用埃特金 Aitken 加速迭代和牛顿 Newton迭代法计算
7、到-8110kkxx的根。输出迭代初值、迭代次数k及各次迭代值。图 2-1 方程 1结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 5 表 2-1 子函数double ffi(double w) 调用迭代公式void fun() 普通迭代void Aitken() 埃特金迭代double fun1(double x) 调用迭代公式1 double fun2(double x) 调用迭代公式2 void Newton() 牛顿迭代1.5 实验结果分析对实验结果做分析,对实验做总结;比如, 在实验二中可在相同初始值、 相同精度下,对比各迭代法的迭代次数。也可去了解 MATLAB 提供的求方程根的函数, 比较你的函数与 MATLAB 函数计算效果与效率。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -