欢迎来到天天文库
浏览记录
ID:45824233
大小:67.76 KB
页数:6页
时间:2019-11-18
《数值分析实验报告——方程求根》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《数值分析》实验报告班级信科学院课程名称1501学号150803114数学科学学院数值分析姓名梁恩昊专业成绩日期2017.10.3信息与计算科学实验一方程求根一、实验目的:掌握二分法、Newton法、不动点迭代法、弦截法求方程的根的各种计算方法、并实施程序调试和运行,学习应用这些算法于实际问题。二、实验内容:二分法、Newton法、不动点迭代法、弦截法求方程的根、程序的调试和运行,给出实例的计算结果。观察初值对收敛性的影响。三、实验步骤:①、二分法:定义:对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零
2、点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。实现方法:首先我们设一方程400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求其在区间[0.1,1]上的根,误差限为e=10^-4。PS:本方法应用的软件为matlab。disp('二分法')a=0.1;b=1;tol=0.0001;n0=100;fa=400*(a.^4)-300*(a.^3)+200*(a.^2)-10*a-1;fori=1:n0p=(a+b)/2;fp=400*(p.^4)-300*(p.^3)+200*(p.^2)-10
3、*p-1;iffp==0
4、
5、(abs((b-a)/2)0a=p;elseb=p;end;end;ifi==n0&&~(fp==0
6、
7、(abs((b-a)/2)8、函数对应的点,做切线,得到新的横坐标值,重复上述步骤,多次迭代,直到收敛到需要的精度。实现方法:我们与二分法一样,先设一方程400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求其在区间[0.1,1]上的根。PS:本方法应用的软件为matlab。symsx;diff(400*(x.^4)-300*(x.^3)+200*(x.^2)-10*x-1)%求导方程函数文件:functionNewton=fun(a)Newton=400*(a.^4)-300*(a.^3)+200*(a.^2)-10*a-1;endfunctionNewton2=9、dfun(b)Newton2=1600*b^3-900*b^2+400*b-10;%fun函数的导数end主程序:x0=1;while1x1=x0-fun(x0)/dfun(x0);ifabs(x1-x0)<1e-810、11、abs(fun(x1))<1e-10break;endx0=x1;enddisp('用牛顿法求得的方程的根为:x=')disp(x1)程序调试:运行结果:用牛顿法求得的方程的根为:x=0.1108③、不动点迭代法:采用不动点迭代法计算非线性方程x3+4x2-10=0,在区间[1,2]上的一个根。PS:本方法应用的软件为matlab。不动点迭代法程序12、:函数文件:function[y,n]=BDD(x,eps)ifnargin==1eps=1.0e-6;elseifnargin<1errorreturnendx1=gg(x);n=1;while(norm(x1-x)>=1e-6)&&(n<=10000)x=x1;x1=gg(x);n=n+1;endy=x;M函数:functionf=gg(x)f(1)=sqrt(2.5-(x^3)/4);结果如下:>>BDD(1)n=21ans=1.3652④、弦截法:定义:弦截法是求非线性方程近似根的一种线性近似方法。它是以与曲线弧AB对应的弦AB与x轴的交点横坐标作为曲线弧13、AB与x轴的交点横坐标的近似值μ来求出方程的近似解。该方法一般通过计算机编程来实现。弦截法的原理是以直代曲即用弦(直线)代替曲线求方程的近似解,也就是利用对应的弦与轴的交点横坐标来作为曲线弧与轴的交点横坐标的近似值。实现方法:我们与二分法一样,先设一方程其在区间[0.1,1]上的根。PS:本方法应用的软件为matlab。400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求函数文件:function[p1,err,k,y]=secant(f,p0,p1,delta,max1)%f是非线性函数%p0,p1是初始值%delta是给定允许14、误差%ma
8、函数对应的点,做切线,得到新的横坐标值,重复上述步骤,多次迭代,直到收敛到需要的精度。实现方法:我们与二分法一样,先设一方程400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求其在区间[0.1,1]上的根。PS:本方法应用的软件为matlab。symsx;diff(400*(x.^4)-300*(x.^3)+200*(x.^2)-10*x-1)%求导方程函数文件:functionNewton=fun(a)Newton=400*(a.^4)-300*(a.^3)+200*(a.^2)-10*a-1;endfunctionNewton2=
9、dfun(b)Newton2=1600*b^3-900*b^2+400*b-10;%fun函数的导数end主程序:x0=1;while1x1=x0-fun(x0)/dfun(x0);ifabs(x1-x0)<1e-8
10、
11、abs(fun(x1))<1e-10break;endx0=x1;enddisp('用牛顿法求得的方程的根为:x=')disp(x1)程序调试:运行结果:用牛顿法求得的方程的根为:x=0.1108③、不动点迭代法:采用不动点迭代法计算非线性方程x3+4x2-10=0,在区间[1,2]上的一个根。PS:本方法应用的软件为matlab。不动点迭代法程序
12、:函数文件:function[y,n]=BDD(x,eps)ifnargin==1eps=1.0e-6;elseifnargin<1errorreturnendx1=gg(x);n=1;while(norm(x1-x)>=1e-6)&&(n<=10000)x=x1;x1=gg(x);n=n+1;endy=x;M函数:functionf=gg(x)f(1)=sqrt(2.5-(x^3)/4);结果如下:>>BDD(1)n=21ans=1.3652④、弦截法:定义:弦截法是求非线性方程近似根的一种线性近似方法。它是以与曲线弧AB对应的弦AB与x轴的交点横坐标作为曲线弧
13、AB与x轴的交点横坐标的近似值μ来求出方程的近似解。该方法一般通过计算机编程来实现。弦截法的原理是以直代曲即用弦(直线)代替曲线求方程的近似解,也就是利用对应的弦与轴的交点横坐标来作为曲线弧与轴的交点横坐标的近似值。实现方法:我们与二分法一样,先设一方程其在区间[0.1,1]上的根。PS:本方法应用的软件为matlab。400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求函数文件:function[p1,err,k,y]=secant(f,p0,p1,delta,max1)%f是非线性函数%p0,p1是初始值%delta是给定允许
14、误差%ma
此文档下载收益归作者所有