数值分析课程实验报告-二分法和牛顿迭代法

《数值分析》课程实验报告

用二分法和牛顿迭代法求方程的根

算法名称 用二分法和牛顿迭代法求方程的根

学科专业 机械工程

作者姓名 xxxxxx

作者学号 xxxxxx

作者班级 xxxxxxxx

xx大学

二〇一五年十二月

《数值分析》课程实验报告

《数值分析》课程实验报告

实验名称 用二分法和牛顿迭代法求方程的根 成绩 一、问题背景 在科学研究与工程计算中,常遇到方程(组)求根问题。若干个世纪以来,工程师和数学家花了大量时用于探索求解方程(组),研究各种各样的方程求解方法。对于方程f(x)=0,当f(x)为线性函数时,称f(x)=0为线性方程;当f(x)为非线性函数时,称式f(x)=0为非线性方程。对于线性方程(组)的求解,理论与数值求法的成果丰富;对于非线性方程的求解,由于f(x)的多样性,尚无一般的解析解法。当f(x)为非线性函数时,若f(x)=0无解析解,但如果对任意的精度要求,设计迭代方程,数值计算出方程的近似解,则可以认为求根的计算问题已经解决,至少能够满足实际要求。 二、数学模型 1.使用二分法求方程x^3+x-1=0在[0,1]内的近似根(误差<10^-5)。 2.使用牛顿迭代求方程x^3+x-1=0在[0,1]内的近似根,设置迭代格式为 x?x?1xn?1?xn?n2n3xn?1 三、算法描述 1、二分法:二分法是最简单的求根方法,它是利用连续函数的零点定理,将汗根区间逐次减半缩小,取区间的中点构造收敛点列{xk}来逼近根x。 2、牛顿迭代法:牛顿迭代法是一种逐次逼近的方法,其步骤是首先给定一个粗糙的初始值,然后用一个迭代公式反复修正这个值,知道满足要求为止。 四、主要代码 (1)二分法程序代码: function y=erfen1(m,n,er) syms x xk a=m;b=n;k=0; ff=x^3+x-1; while b-a>er xk=(a+b)/2; fx=subs(ff,x,xk); fa=subs(ff,x,a); k=k+1; if fx==0 y(k)=xk; break; elseif fa*fx<0 b=xk; else 3

《数值分析》课程实验报告

a=xk; end y(k)=xk; end plot(y,'.-'); grid on (2)牛顿迭代法程序: function x=newton(xx,n) x=zeros(1,n+1); x(1)=xx; for i=1:n x(i+1)=x(i)-(x(i)^3+x(i)-1)/(3*x(i)^2+1); end 五、实验结果及分析 (1)二分法: 在命令窗口下执行: ??ab?erfen1(0,1,1e?5);??vpa(ab,8)实验结果如下: 可以得到迭代区间中点数列分布及图像,数值如下: ans = [ 0.5, 0.75, 0.625, 0.6875, 0.65625, 0.671875, 0.6796875, 0.68359375, 0.68164062, 0.68261719, 0.68212891, 0.68237305, 0.68225098, 0.68231201, 0.68234253, 0.68232727, 0.6823349] 依据题目要求的精度,则需做十七次,由实验数据知x=0.6823349即为所求的根。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4