
实验报告一 Newton迭代法求解非线性方程实验.docx
8页实验报告一 Newton迭代法求解非线性方程实验一、实验内容在公元1225年,比萨的数学家Leonardo(乂称Fibonacci)宣布方程 兀3+2兀2+ 10兀-200 = 0的一个根为1.368808107,当前颇为轰动,但没有人知 道他是用什么办法得到的.基于这个简单苗景,希望我们能够利用Newton法, 来真切地体会这一结果•并取初值心=1.000000000或心= 1.500000000.二、实验算法第一步:非线性方程f(x) = 0取迭代函数为饷=x_甲•取恰当初值兀0,确定跟的容许误差,九)的容许误差以及最大迭代的 次数N.第二步:用变量k作为所进行的步数,即:for(k = \\k < N\k + +)并给定勺的值{//计算迭代函数:Xk = — JI丁(X J)〃对|忑-X打和进行与容许误差比较:氐-耳_]|〈 或者血)|〈“,则跳出 循环体,否则继续循环.直至满足容许谋差条件或者达到最大步数跳出循环}.第三步:跳出循环,输出方程的近似根:X,.三、 变量说明N代表进行的最大步数,k是代表当前进行的步数・c,d分别代表 |兀-的真值和|/(.vJ| < 77的真值;a[N]代表X [N]・p和q分別代表 九衣()和/; , , m, n分别代表跟的容许误差和|九)|的容许误差,訂0]代表初值.四、 实验原理和流程图实验原理解非线性方程f(x) = 0 , Newton法是利用九)的近似取代,认 为近似方程的根即为原方程的根,即 在一定条件下, 几)的北)伽展开(在兀=兀0处),九)=几)+心)(兀-“•)+……并取前两项即fa产心)+ /(“)(兀-忑)并将其记为弘)(近似方程), 显然g⑴=0的根为所以有fz即可以通过给定初值进行迭代,于是有:兀0即为牛顿迭代公式.流程图五、源程序代码#include 这样我们可以把线性方程组Ax二b写成Ax = (LU)x = L(Ux)=b正如:XXX …X …XX「1 ■X 1X X ••• XX … XA =• • •X• • • • • •X …• • •X• • •• • •• • •X x ••- 1x :X=:LU即为Doolittle分解•这种分解源于Gauss消元法,为求出矩阵L和U,根据阵 乘法规则有U2j■厶Xt/j =(]仏2,厶3・・叫(1),1,0,・・・,)勺=aij0可求得矩阵L, U.令Ux = y则原线性方程组Ax = b,化为两个简单的三角方程组:Ux = y (1)Ly =b (2)于是可首先 求解(2)求得向量y,然后求解(1),从而求解线性方程组Ax=b 的冃的.五、源程序代码#include












