《数值计算方法》实验课程教学研究(五邑大学校级教改项目)_第1页
《数值计算方法》实验课程教学研究(五邑大学校级教改项目)_第2页
《数值计算方法》实验课程教学研究(五邑大学校级教改项目)_第3页
《数值计算方法》实验课程教学研究(五邑大学校级教改项目)_第4页
《数值计算方法》实验课程教学研究(五邑大学校级教改项目)_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要 数值计算方法是继理论方法和实验方法之后的科学研究的第三种基本手段。数值计算方法课程的研究对象主要来自微积分,线性代数,常微分方程等许多领域中,它的主要内容包括:求解线性方程组的直接法和迭代法、插值法和最小二乘拟合、数值微分和数值积分、常微分方程数值解法、非线性方程的迭代解法和矩阵特征值问题的计算等。本项目利用Matlab科学计算软件, 编写出数值计算课程的实验教材和电子教案。关键词:数值计算;Matlab;插值法;最小二乘拟合;线性方程组;直接法;迭代法;矩阵特征值问题;数值积分;数值微分Absract Numerical calculation is the third basic m

2、eans of scientific research following up with the theoretical methods and experimental methods. The research objection of numerical calculation arises from mathematics problems such as differential and integral calculus, linear algebra, ordinary differential equations and so on. The main contents of

3、 this subject are as follows: the direct approach and iterative approach of system of linear equations, interpolation and least square problems, numerical differentiation and integration, numerical ordinary differential equations, and algebraic eigenvalue problems. Using Matlab scientific computatio

4、n software, this project presents experimental teaching materials and electronic lesson plans.Key words: numerical calculation, Matlab, interpolation and least squares problems,direct approach, iterative approach, system of linear equations, matrix eigenvalues problems,numerical differentiation, num

5、erical integration目录摘要IABSTRACTII目录第一章 绪论1第二章 数值计算方法实验课程的特点22.1 实验目的及要求22.2 实验方式及要求22.3 实验主要仪器设备2 第三章 数值计算方法课程实验33.1 线性方程组迭代法实验33.2 线性方程组直接实验103.3 插值法和拟合法实验193.4 数值积分实验253.5 求解常微分方程初值问题的各种方法比较实验303.6 非线性方程组求根实验363.7 矩阵特征值计算实验41第四章 数值计算方法的发展前景454.1 数值计算方法的萌芽454.2 现代计算数学的建立464.3 计算数学的蓬勃发展474.4 计算数学的发展

6、前景48结论50参考文献51致谢52第1章 绪论当今科学研究三大基本手段为理论方法、实验方法和科学计算。 数值计算是科学计算的关键环节, 是数学中关于计算的一门学问, 它主要研究适合于计算机上使用的计算方法及其误差分析和收敛性、稳定性问题。数值计算方法内容丰富,这些数值方法已被广泛应用于自然科学、生命科学、经济科学和社会科学等诸多领域。在20世纪70年代,大多数高等学校还仅在数学系的计算数学专业和计算机系开设数值计算方法这门课程,但是,随着计算机技术的蓬勃发展和广泛应用,现在该课程几乎已成为所有理工科学生的必修课程。数值计算方法课程现在已经成为高等学校理工科专业的一门重要的基础课程, 它有着通

7、常的教学课程所具有自身严密的科学体系,同时又是一门实践性和应用性很强的课程。通过本课程的学习,学生既可以掌握数值计算的基本理论和基本方法,也能提高应用数学与计算机解决实际问题的能力, 特别是培养学生初步具备科学与工程计算方面的能力。“数值计算方法”实验课程作为“数值计算方法”课程的必要实践环节,主要目的是让学生在学习了理论教学中关于典型数学问题的数值求解方法后,能够构造求解相应问题数值解的算法,并编程上机实现算法,在上机过程中加强对算法的理解,并应用算法解决实际问题,另外通过编程练习提高学生的程序设计能力。“数值计算方法”实验课程采用计算机软件MATLAB 来进行开发与计算,主要是因为MATL

8、AB软件作为一个功能强大的科学计算平台, 能有力实现科学计算、符号计算和图形处理等多种功能。几乎能满足所有的计算需求, 是最普遍的科学计算工具之一。同时它具有编程简单,操作方便等优点。是目前国际公认的准确、可靠的科学计算标准软件。目前国内很多高校在数值计算方法精品课程建设中, 从方便学生通过MATLAB软件来学习计算方法的需要出发, 在利用MATLAB编写数值算法程序方面和图形可视化程序的软件等方面都作出了许多卓有成效的工作。 第二章 数值计算方法实验课程的特点 2.1 实验目的及要求本实验课程的教学目标是通过实验培养学生将相关数值求解问题设计成数值算法的能力、培养学生利用Matlab设计和编

9、写程序的能力、引导学生对实验结果进行观察分析,培养学生对特殊结果的观察、分析和归纳,类推猜想出一般结果的能力。 2.2 实验方式及要求目前许多教材或教学辅导教材将该课程的实验分为8个实验,每次实验都要求学生根据相应的实验要求设计算法、上机用Matlab编程实现算法并撰写实验报告。具体为项目序号实验项目名称内容提要实验学时仪器套数每套人数实验要求1、必做2、选做实验属性1、 基础2、 综合3、 设计4 、研究1学习使用Matlab,掌握Matlab的软件环境熟悉Matlab的软件环境,掌握矩阵的输入、运算等操作,并能运用Matlab进行简单绘图,计算机。2若干1必做基础2使用Matlab进行简单

10、编程运用Matlab进行简单编程,计算机2若干1必做基础3线性方程组求解的直接方法编程求解特定问题的数值解并在计算机上验证、计算机2若干1必做基础4线性方程组求解的迭代方法编程求解特定问题的数值解并在计算机上验证、计算机2若干1必做基础5函数的数值逼近插值编程求解特定问题的数值解并在计算机上验证、计算机4若干1必做设计6数值积分编程求解特定问题的数值解并在计算机上验证、计算机2若干1必做基础7常微分方程初值问题初步编程求解特定问题的数值解并在计算机上验证、计算机2若干1必做基础8非线性方程的数值解法编程求解特定问题的数值解并在计算机上验证、计算机2若干1必做基础 2.3 实验主要仪器设备微机,

11、Wndows xp, Matlab 7.0第3章 数值计算方法课程实验 3.1 线性方程组迭代法实验一、 实验目的 1掌握用迭代法求解线性方程组的基本思想和计算步骤;2能熟练地写出Jacobi迭代法的迭代格式的分量形式,并能比较它们各自的特点及误差估计;3.理解迭代法的基本原理及特点,并掌握Jacobi迭代Gauss-Seidel迭代和SOR迭代格式的分量形式、矩阵形式及其各自的特点;4.掌握Jacobi迭代Gauss-Seidel迭代和SOR迭代算法的MATLAB程序实现方法,及了解松弛因子对SOR迭代的影响;5.用SOR迭代法求解线性方程组时,超松弛因子的取值大小会对方程组的解造成影响,目

12、的就是能够探索超松弛因子怎样对解造成影响,通过这个实验我们可以了解的大致取值范围。二、 实验题目1、迭代法的收敛速度用迭代法分别对n=20,n=200解方程组Ax=b,其中(1)选取不同的初值x0和不同的右端向量b,给定迭代误差,用两种迭代法计算,观测得到的迭代向量并分析计算结果给出结论;(2)取定初值x0和右端向量b,给定迭代误差,将A的主对角元成倍放大,其余元素不变,用Jacobi迭代法计算多次,比较收敛速度,分析计算结果并给出结论。2、SOR迭代法松弛因子的选取(1)给定迭代误差,选取不同的超松弛因子,从1.00到2.00,观察不同的松弛因子对解得影响。然后利用雅可比迭代求的的解与它们比

13、较; (2)给定迭代误差,选取不同的低松弛因子,从1.00到2.00,观察不同的松弛因子对解得影响。然后利用雅可比迭代求的的解与它们比较。三、 实验原理1、迭代法的收敛速度运用了Jacobi迭代,Gauss-Seidel迭代1)Jacobi迭代算法:1. 取初始点x(0),精度要求,最大迭代次数N,置k:=0;2. 由,计算出x(k+1);3. 若,则停算,输出x(k+1)作为方程组的近似解;4. 若k=N,则停算,输出迭代失败信息;否则置k:=k+1,转步2。2)Gauss-Seidel迭代算法:1.输入矩阵A,右端向量b,初始点x(0),精度要求,最大迭代次数N,置k:=0;2.计算3.若

14、,则停算,输出x作为方程组的近似解;4. 若k=N,则停算,输出迭代失败信息;否则置x(0):=x,k:=k+1,转步骤2。2、SOR迭代法松弛因子的选取(1)逐次超松弛迭代法是Gauss-Seidel迭代法的加速。Gauss-Seidel迭代格式为:X(k+1)=D-1*L*x(k+1)+D-1*U*x(k)+ D-1*b(2)SOR迭代格式为X(k+1)=(I-w D-1*L)-1*(1-w)I+w D-1*U*x(k)+w(I-w D-1*L)-1* D-1*b其中,w叫做松弛因子,当w1时叫超松弛,当1w0时叫低松弛。W=1是Gauss-Seidel迭代法;(3)SOR迭代法的算法:输

15、入矩阵A,向量b,初始点x(0),精确度,最大迭代次数N,松弛因子的选取;进行迭代;判断迭代的情况。四、 实验内容1、迭代法的收敛速度1.1实验步骤:(1)打开matlab软件,新建一个M文件,编写程序(如下),运行程序,记录结果;(2)把程序中x0=ones(n,1)改为x0=eye(n,1),运行程序,记录结果;(3)把程序中A(i,i)=m改为A(i,i)=2*m,注释掉x1=majacobi(A,b);x1后面的部分,运行程序,记录结果;(4)仿照(3)再把主对角元成倍放大,运行程序,记录结果。1.2实验程序:clcn=20;A=zeros(n);m=4;for i=1:n A(i,i

16、)=m;endfor i=1:n-1 A(i,i+1)=-1/3; A(i+1,i)=-1/3;endfor i=1:n-2 A(i,i+2)=-1/5; A(i+2,i)=-1/5;endx0=ones(n,1);b=A*x0;x1=majacobi(A,b);x1x2=maseidel(A,b);x2norm(x1-x2)1.3实验设备: matlab软件。2、SOR迭代法松弛因子的选取2.1实验步骤:(1) 数据准备:A=12*eye(200,200);for i=1:199 A(i,i+1)=-2; A(i+1,i)=-2;endfor j=1:198 A(j,j+2)=1; A(j+

17、2,j)=1;endb=5*ones(200,1);(2)给定迭代误差1e-6,取=1.00,1.10,1.20,1.30,1.40,1.50,1.60,1.70,1.80,1.90,1.91,1.92,1.95,1.97,1.98,1.99,2.00,代入x=masor(A,b,),x20=majacobi(A,b)并利用norm(x-x20)分别分析与雅可比迭代求的解的误差; (3) 给定迭代误差1e-6,取=0.02,0.03,0.040.10,0.20,0.30,0.40,0.50,0.60,0.70,0.80,0.90,0.97.0.98,0.99,代入x=masor(A,b,),x

18、20=majacobi(A,b)并利用norm(x-x20)分别分析与雅可比迭代求的解的误差。五、 实验结果1、迭代法的收敛速度(1)对于n=20时:n = 20Columns 1 through 12 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 0 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0

19、-0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0

20、.3333 -0.2000 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 0 0 0 0 0 0 0 0 0 -0.2000 -0.3333 4.0000 0 0 0 0 0 0 0 0 0 0 -0.2000 -0.3333 0 0 0 0 0 0 0 0 0 0 0 -0.2000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

21、0 0 0 0 0 0Columns 13 through 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.2000 0 0 0 0 0 0 0 -0.3333 -0.2000 0 0 0 0 0 0 4.0000 -0.3333 -0.2000 0 0 0 0 0 -0.3333 4.0000 -0.3333 -

22、0.2000 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 -0.2000 0 0 0 0 -0.2000 -0.3333 4.0000 -0.3333 0 0 0 0 0 -0.2000 -0.3333 4.0000k= 11x1 =1.0000 1.0000/有20个1.0000k

23、= 8x2 =1.0000 1.0000/有20个1.0000ans = 3.3039e-007当n=200时:A由于阶数太大省略;k= 11x1=1.0000 1.0000 /有200个1.0000k= 8x2=1.0000 1.0000 /有200个1.0000ans = 1.1368e-006(2)k= 4x1 = 1.0000 1.0000(20阶)k= 4x2 = 1.0000 1.0000(20阶)ans =4.8999e-0082、SOR迭代法松弛因子的选取表1-1 1的情况kNorm(x-x20)1.0089.7346e-0071.10109.6821e-0071.20121.

24、0307e-0061.30161.0200e-0061.40201.1434e-0061.50261.2691e-0061.60361.2272e-0061.70511.4364e-0061.80831.4657e-0061.901771.7205e-0061.911981.7542e-0061.922242.2548e-0061.953211.5060e-0061.974711.8146e-0061.985001.99500表1-2 5000.033863.8618e-0040.042972.8217e-0040.101261.0286e-0040.20644.0889e-0050.3042

25、2.1010e-0050,40301.4555e-0050.50238.1655e-0060.60185.0040e-0060.70143.7920e-0060.80112.3675e-0060.9091.0772e-0060.9789.7786e-0070.9889.7481e-0070.9989.7361e-007六、 实验结果分析1、迭代法的收敛速度的实验结果分析:比较实验结果可知,选取不同的初值x0和不同的右端向量b,所求得的结果也会不同,Jacobi迭代和Seidel迭代的误差也会随之改变,说明初值对实验结果有影响,由迭代误差可知Seidel迭代优于Jacobi迭代。再比较实验结果,

26、由k=6与k=5可知,主对角元越大,Jacobi迭代收敛越快。2、SOR迭代法松弛因子的选取的实验结果分析:(1)由表1-1可以看出,在其它条件不变的情况下,改变的值,会改变解得值,且越接近于1,误差越小,越接近于2,误差越大,而且当的值越大,它的迭代次数越大,就本例而言,当为1.98时,就因迭代次数过大,跳出程序;(2)由表1-2可以看出,在其它条件不变的情况下,改变的值,会改变解得值,且越接近于1,误差越小,越接近于0,误差越大,且迭代次数也越大,就本例而言,当为0.02时,就因迭代次数过大,跳出程序,且不能取值为0;(3)综上(1)(2)所述,的取值范围为02,且越接近1,误差值越小,迭

27、代次数也越小。 3.2 线性方程组直接实验一、 实验目的 1掌握解线性方程组的几种基本常用的直接法,并能比较它们各自的优缺点;2能熟练地对方阵A进行三角分解;3利用LU分解法求解线性方程组,能够体会LU分解法的优点; 4会用追赶法求解三对角方程组,明白用追赶法解三对角方程组的优点。二、 实验题目1、用列主元法求解线性方程组: = 2、分别用列主元法和顺序高斯消去法求解下面的线性方程组,分析对结果的影响: = 3、用追赶法分别对n=10,n=100,n=1000解方程组Ax=b,其中 , . 再用LU分解法解此方程组,并对二者进行比较;4、线性方程组直接实验-LU分解的优点。三、 实验原理1、列

28、主元gauss1.输入系数矩阵A,右端B,置k:=1;2.对k=1, ,n-1进行如下操作:(1)选列主元,确定k(r),使a(r(k)k)的K次导=max | a(ik) 的K次导|,k=ik,交换(A(k),b(k)的第k,b(k)两行;(3)消元:对i,j=k+1, ,n,计算m(ik)=a(il)/a(kk) 的K次导,a(ik) 的K+1次导为0,a(ik) 的K+1次导=a(ij) 的K次导-m(ik)*a(kj) 的K次导,b(i) 的K+1次导=b(i) 的K次导-m(ik)*b(k) 的K次导;c.回代:X(n)=b(n) 的n次导/a(nn) 的n次导,对K=n-1, ,1

29、计算 nX(k)=(b(k) 的K次导 -a(kj) 的K次导*x(j)/a(kk) 的K次导J=k+12、追赶法1.输入对称正定矩阵A和右端向量b;2.cholesky分解:d(1)t(11)=a(11),l(i1)=a(i1)/d(1),i=2, ,n,对K=2, ,n计算: k-1d(k)=a(kk)- t(kj)*l(kj), j=1 k-1t(ik)=a(ik)- t(ij)*l(kj),l(ik)=t(ik)/d(k),i=k+1, ,n; j-13.用向前消去法解下三角方程组Ly=b:y(1)=b(1), k-1对k=2, ,n计算y(k)=b(k)- l(kj)*y(j); j

30、=14.解对角形方程组Dz=y:对K=1, ,n,计算z(k)=y(k)/d(k); T5.用回代法解上三角方程组L x =z:X(n)=z(n),对K=n-1, ,1 计算x(k)=z(k)-l(jk)*x(j). 3、LU分解法 4、顺序高斯消去法设 A, x, b 考察线性方程组 Ax=b . (1) 顺序高斯消去法的消元过程: 对方程组的增广矩阵 作初等行变换如下:第一步, 记, , , . 设 , 对计算 , 第二步, 设, 对计算 , , 如此继续, 第步结束, 得矩阵 (n)然后进行回代, 即可解出: , , .四、 实验内容1、用列主元法求解线性方程组1.1实验步骤:新建一个M

31、文件,编写程序,运行程序,记录结果1.2实验程序:clcA=0.001 2.000 3.000;-2.000 1.072 5.643;-1.000 3.712 4.623b=1.000 3.000 2.000x=magauss2(A,b)1.3实验设备: matlab软件。2、分别用列主元法和顺序高斯消去法求解下面的线性方程组2.1实验步骤:新建一个M文件,编写程序,运行程序,记录结果2.2实验程序:clearclcA=0.3*10(-16) 59.14 3 1;1 2 1 1;11.2 9 5 2;5.291 -6.13 -1 2b=51.97 2 1 46.78x1=magauss2(A,

32、b)x2=magauss(A,b)2.3实验设备: matlab软件。3、用追赶法分别对n=10,n=100,n=1000解方程组Ax=b3.1实验步骤:(1)新建一个M文件,编写程序(如下程序1),运行程序,记录结果。 (2)把程序中的n=10改为n=100, 运行程序,记录结果。 (3)把程序中的n=10改为n=1000, 运行程序,记录结果。 (4)再用LU分解法解此题,新建一个M文件,编写程序(如下程序2),运行程序,记录结果。3.2实验程序:程序(1)clcn=10;a=4*ones(n);b=-1*ones(n);c=-1*ones(n);d=5*ones(n);d(1)=6;x=

33、machase(a,b,c,d)程序(2)clcn=10;A=zeros(n);for i=1:n A(i,i)=4;endfor i=1:n-1 A(i,i+1)=-1;endfor i=1:n-1 A(i+1,i)=-1;endb=5*ones(n,1);b(1)=6;x=malu(A,b)3.3实验设备: matlab软件。4. 线性方程组直接实验-LU分解的优点4.1 实施方案:对于线性方程组Ax=b,分别求当A=A,时,求解x的值。4.2 实验步骤:(1) 数据准备: n=10;A=n*eye(n);for i=1:n for j=i:n A(i,j)=n-j+i; endend b

34、=zeros(n,1);b(n,1)=1;(2)对A=A,进行LU分解,分别调用函数x,l,u=malu(A,b);五、 实验结果1、 用列主元法求解线性方程组A= b= x= 0.0010 2.0000 3.0000 1 -0.4904 -2.0000 1.0720 5.6430 3 -0.0510 -1.0000 3.7120 4.6230 2 0.3675 2、分别用列主元法和顺序高斯消去法求解下面的线性方程组 3、用追赶法分别对n=10,n=100,n=1000解方程组Ax=b(1)X= -1.7458 -4.2542 -7.7291 -14.2877 -21.6287 -40.521

35、9 -50.9928 -116.0950 -92.8760 -376.5040(2)(3)(部分答案截图)(4)4. 线性方程组直接实验-LU分解的优点(1)A的LU分解(2)(a)(b) (c) 六、 实验结果分析分别用列主元法和顺序高斯消去法求解下面的线性方程组结果分析:分析实验结果可知,用列主元可求出结果,而用顺序高斯消去法却没有结果,是由于没有选列主元导致大数吃小数的情况发生,可见用高斯消去法选列主元的重要性。用追赶法分别对n=10,n=100,n=1000解方程组Ax=b结果分析:由实验结果可知,追赶法不需要对零元素计算,迭代次数比较少,且当系数矩阵对角占优是数值稳定,是解三对角方程

36、组的优秀算法,而LU分解法在解三对角方程组时不占优势。 3.3 插值法和拟合法实验一、 实验目的1.通过进行不同类型的插值,比较各种插值的效果,明确各种插值的优越性;2.通过比较不同次数的多项式拟合效果,了解多项式拟合的原理;3.利用matlab编程,学会matlab命令;4.掌握拉格朗日插值法;5.掌握多项式拟合的特点和方法。二、 实验题目1.、插值法实验将区间-5,510等分,对下列函数分别计算插值节点的值,进行不同类型的插值,作出插值函数的图形并与的图形进行比较: (1) 做拉格朗日插值;(2) 做分段线性插值;(3) 做三次样条插值.2、拟合实验给定数据点如下表所示:-1.5-1.0-

37、0.50.00.51.01.5-4.45-0.450.550.05-0.440.544.55分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数和拟合函数的图形。三、 实验原理1.、插值法实验 2、拟合实验四、 实验内容1.、插值法实验1.1实验步骤:打开matlab软件,新建一个名为chazhi.m的M文件,编写程序(见1.2实验程序),运行程序,记录结果。1.2实验程序:x=-5:1:5;xx=-5:0.05:5;y1=1./(1+x.2);L=malagr(x,y1,xx);L1=interp1(x,y1,x,linear); S=maspline(x,y1,0.014

38、8,-0.0148,xx);hold on;plot(x,y1,b*);plot(xx,L,r);plot(x,L1,g);plot(xx,S,k); figurex=-5:1:5;xx=-5:0.05:5;y2=atan(x);L=malagr(x,y2,xx);L1=interp1(x,y2,x,linear); S=maspline(x,y2,0.0385,0.0385,xx);hold on;plot(x,y2,b*);plot(xx,L,r);plot(x,L1,g);plot(xx,S,k); figurex=-5:1:5;xx=-5:0.05:5;y3=x.2./(1+x.4);

39、L=malagr(x,y3,xx);L1=interp1(x,y3,x,linear); S=maspline(x,y3,0.0159,-0.0159,xx);hold on;plot(x,y3,b*);plot(xx,L,r);plot(x,L1,g);plot(xx,S,k);1.3实验设备: matlab软件。2、拟合实验2.1实验步骤:新建一个名为nihe.m的M文件,编写程序(见2.2实验源程序),运行程序,记录结果。2.2实验程序:x=-1.5 -1.0 -0.5 0 0.5 1.0 1.5;y=-4.45 -0.45 0.55 0.05 -0.44 0.54 4.55;a1=ma

40、fit(x,y,3)x1=-1.5:0.05:1.5;y1=a1(4)+a1(3)*x1+a1(2)*x1.2+a1(1)*x1.3;hold onplot(x,y,b*);plot(x1,y1,r);p1=polyval(a1,x);s1=norm(y-p1) figurea2=mafit(x,y,5)x2=-1.5:0.05:1.5;y2=a2(6)+a2(5)*x2+a2(4)*x2.2+a2(3)*x2.3+a2(2)*x2.4+a2(1)*x2.5;hold onplot(x,y,b*);plot(x2,y2,r);p2=polyval(a2,x);s2=norm(y-p2)2.3实

41、验设备: matlab软件。五、 实验结果1.、插值法实验(1)(2)(3)2、拟合实验(1)平方误差:s1 =0.0136(2)平方误差:s2 = 0.0069六、 实验结果分析1.、插值法实验结果分析:(1) 由插值结果曲线图可见,拉格朗日插值在节点附近误差很小,但在两端有振荡现象;分段线性插值具有良好的收敛性,但在节点处不光滑;而三次样条插值在直观上与原函数曲线吻合得最好;(2)分析可知,均匀插值时(拉格朗日插值),会出现多项式插值的Runge现象,当进行非等距节点插值时(分段线性插值、三次样条插值),其近似效果明显要比均匀插值要好,原因是非均匀插值时,在远离原点处的插值节点比较密集,所

42、以其插值近似效果要比均匀插值时的效果要好。2、拟合实验结果分析:可能是原始数据太少的问题,在 拟合结果曲线图看不出三次和五次有什么差别,但由于三次多项式拟合的平方误差大于五次多项式拟合的平方误差,因此五次多项式拟合比三次多项式拟合效果要好。 3.4 数值微积分实验一、 实验目的1.掌握各种复化求积公式,并利用它们求定积分;2.掌握比较一阶导数和二阶导数的数值方法;3.通过用不同复化求积公式计算定积分,并与精确解得比较,明白各个复化求积公式的优缺点。二、 实验题目1、复化求积公式计算定积分用复化梯形公式、复化辛普森公式、龙贝格公式求下列定积分,要求绝对误差为,并将计算结果与精确解进行比较: (1) (2) 2、比较一阶导数和二阶导数的数值方法利用等距节点的函数值和端点的导数值,用不同的方法求下列函数的一阶和二阶导数,分析各种方法的有效性,并用绘图软件绘出函数的图形,观察其特点。三、 实验原理1、复化求积公式计算定积分1.1复化梯形公式 将积分区间a,b分为n等分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论