实验二 非线性方程的数值解法
1.1 实验内容和要求
在科学研究和工程技术中大量的实际问题是非线性的,求非线性方程()0f x =满足一定精确度的近似根是工程计算与科学研究中诸多领域经常需要解决的问题。
实验目的:进一步理解掌握非线性方程求根的简单迭代法、埃特金Aitken 加速法、牛顿迭代法的思想和构造。
实验内容: 求方程2320x x x e -+-=的实根。
要求:
(1)设计一种简单迭代法,要使迭代序列收敛,然后再用埃特金Aitken 加速迭代,计算到-8110k k x x --<为止。
(2)用牛顿迭代法,同样计算到-8110k k x x --<
(3)输出迭代初值、迭代次数k 及各次迭代值,并比较算法的优劣。
1.2 算法描述
普通迭代法计算步骤:
(1)给定初始近似值
0x ,eps 为精确度。
(2)用迭代公式x =x 2+2−e x 3进行迭代,直到-8110k k x x --<为止。
埃特金Aitken 加速迭代法计算步骤:
(1)将()0f x =化成同解方程()x x ϕ=
()k k y x ϕ= ,()k k z y ϕ=
21()2k k k k k k k y x x x z y x +-=--+=22k k k k k k
x z y z y x --+ (2)计算到-8110k k x x --<为止。
牛顿法计算步骤:
给定初始近似值0x ,1ε为根的容许误差,2ε为()f x 的容许误差,N 为迭代次数的容许值。
计算00(),()f x f x '
(1)如果0()0f x '=或者迭代次数大于N ,则算法失败,结束;否则执行(2)
(2)按公式0100()()
f x x x f x =-'迭代一次,得到新的近似值1x ,计算11(),()f x f x ' (3)如果101x x ε-<或者12()f x ε<,则迭代终止,以1x 作为所求的根,结
束;否则执行(4)
(4)以111(,(),())x f x f x '代替000(,(),())x f x f x ',转步骤(1)继续迭代。
1.3程序代码清单
1.4 实验结果
下图是方程2320x x x e -+-=用埃特金Aitken 加速迭代和牛顿Newton 迭代法计算到-8110k k x x --<的根。
输出迭代初值、迭代次数k 及各次迭代值。
图2-1 方程1结果
表2-1 子函数
1.5 实验结果分析
对实验结果做分析,对实验做总结;
比如,在实验二中可在相同初始值、相同精度下,对比各迭代法的迭代次数。
也可去了解MATLAB提供的求方程根的函数,比较你的函数与MATLAB函数计算效果与效率。