欢迎来到天天文库
浏览记录
ID:33985407
大小:141.00 KB
页数:6页
时间:2019-03-03
《数值分析实验报告方程求根》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数值分析》实验报告班级信科1501学号姓名梁恩昊日期2017.10.3学院数学科学学院专业信息与计算科学课程名称数值分析成绩实验一方程求根一、实验目的:掌握二分法、Newton法、不动点迭代法、弦截法求方程的根的各种计算方法、并实施程序调试和运行,学习应用这些算法于实际问题。二、实验内容:二分法、Newton法、不动点迭代法、弦截法求方程的根、程序的调试和运行,给出实例的计算结果。观察初值对收敛性的影响。三、实验步骤:①、二分法:定义:对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),
2、通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。实现方法:首先我们设一方程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
3、;fp=400*(p.^4)-300*(p.^3)+200*(p.^2)-10*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、08二分迭代次数为:14①Newton法定义:取定初值x0,找到函数对应的点,然后通过该点作函数切线,交x轴,得到新的横坐标值,然后找函数对应的点,做切线,得到新的横坐标值,重复上述步骤,多次迭代,直到收敛到需要的精度。实现方法:我们与二分法一样,先设一方程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)%求9、导方程函数文件:functionNewton=fun(a)Newton=400*(a.^4)-300*(a.^3)+200*(a.^2)-10*a-1;endfunctionNewton2=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('用牛顿法求得的方程的12、根为:x=')disp(x1)程序调试:运行结果:用牛顿法求得的方程的根为:x=0.1108①、不动点迭代法:采用不动点迭代法计算非线性方程x3+4x2-10=0,在区间[1,2]上的一个根。PS:本方法应用的软件为matlab。不动点迭代法程序:函数文件: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;x13、1=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轴的交点横坐标作为曲线弧AB与x轴的交点横坐标的近似值μ来求出方程的近似解。该方法一般通过计算机编程来实现。弦截法的原理是以直代曲即用弦(直线)代替曲线求方程的近似解,也就是利用对应的弦与轴的交点横坐标来作为曲线弧与轴的交点横坐标的近似14、值。实现方法:我们与二分法一样,先设一方程400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求其在区间[0.1,1]上的根。PS:本方法应用的软件为matlab。函数文件:function[p1,err,k,y]=secant(f,p0,p1,delta,max1)%f是非线性函数%p0,p1是初始值%delta是给定允许误差%max1是迭代次数的上限%p1是所求得的方
8、08二分迭代次数为:14①Newton法定义:取定初值x0,找到函数对应的点,然后通过该点作函数切线,交x轴,得到新的横坐标值,然后找函数对应的点,做切线,得到新的横坐标值,重复上述步骤,多次迭代,直到收敛到需要的精度。实现方法:我们与二分法一样,先设一方程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)%求
9、导方程函数文件:functionNewton=fun(a)Newton=400*(a.^4)-300*(a.^3)+200*(a.^2)-10*a-1;endfunctionNewton2=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('用牛顿法求得的方程的
12、根为:x=')disp(x1)程序调试:运行结果:用牛顿法求得的方程的根为:x=0.1108①、不动点迭代法:采用不动点迭代法计算非线性方程x3+4x2-10=0,在区间[1,2]上的一个根。PS:本方法应用的软件为matlab。不动点迭代法程序:函数文件: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;x
13、1=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轴的交点横坐标作为曲线弧AB与x轴的交点横坐标的近似值μ来求出方程的近似解。该方法一般通过计算机编程来实现。弦截法的原理是以直代曲即用弦(直线)代替曲线求方程的近似解,也就是利用对应的弦与轴的交点横坐标来作为曲线弧与轴的交点横坐标的近似
14、值。实现方法:我们与二分法一样,先设一方程400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求其在区间[0.1,1]上的根。PS:本方法应用的软件为matlab。函数文件:function[p1,err,k,y]=secant(f,p0,p1,delta,max1)%f是非线性函数%p0,p1是初始值%delta是给定允许误差%max1是迭代次数的上限%p1是所求得的方
此文档下载收益归作者所有