文档介绍:数值计算实践数值实验报告院(系、部):数理系姓名:夏赞勋学号:班级:科082指导教师:徐红敏2011年01月14日北京拉格朗日插值法拉格朗日插值法基本原理:通过平面上不同两点可以确定一条直线,这就是拉格朗日线性插值问题,对于不在同一条直线的三个点得到的插值多项式则为抛物线。拉格朗日插值的基多项式(即基函数)为:有了基函数以后就可以直接构造如下多项式:该多项式就是拉格朗日插值法所求得的插值多项式。拉格朗日插值法算法:1、根据所给点的坐标依次写出其差值基函数(用循环可以轻易解决)2、将差值基函数与其对应的点的函数值相乘得:3、将2中各项累加即得差值多项式:拉格朗日插值法程序:functionlagrange(A)%A为一个只有两行的矩阵,第一行为插值点,第二行为插值点对应的函数值[m,n]=size(A);f=1;p=0;%两个用到的变量symsxfori=1:nf=(x-A(1,i))*f;endforj=1:ng(j)=f/(x-A(1,j));%求插值基函数的分母h(j)=subs(g(j),x,A(1,j));%求插值基函数的分子s(j)=g(j)/h(j)*A(2,j);%插值基函数endfork=1:ns(j)=collect(s(j));%合并同类项endfori=1:np=p+s(i);endfprintf('拉格朗日插值法可得多项式:')collect(p)%可用lagrange([1368;46912])调试例:有如下表格中有四个插值点及其对应的函数值,用lagrange插值法写出其三次插值多项式:136846912解:在matlab命令窗口输入:lagrange([1368;46912])可得运行结果:拉格朗日插值法可得多项式:ans=x^3/70-x^2/7+(97*x)/70+96/35牛顿插值法牛顿插值法基本原理:拉格朗日插值多项式的理论在许多方面都有应用,是很不错的一种方法,但就插值问题而言,如果增加一个插值点,原先计算插值的多项式就没有用了,即拉格朗日插值法的继承性很差,牛顿插值法就很好地解决了这个问题,具有很好的继承性。函数的差商定义为:在差商的基础上可得牛顿插值多项式:牛顿插值法算法:1、根据差商的定义求出各阶差商。2、依次写出:。3、分别与相应的差商相乘,然后累加即可得:牛顿插值法程序:functionnewton(A)%A为两行矩阵,第一行为插值点,第二行为对应插值点的函数值[m,n]=size(A);B=zeros(n-1);k=1;fori=1:n-1forj=i+1:nZ(j)=(A(2,j)-A(2,j-1))/(A(1,j)-A(1,j-k));%求i阶差商B(i,j)=Z(j);%记住各阶差商endforj=i+1:nA(2,j)=Z(j);endk=k+1;endf=A(2,1);g=1;symsxfori=1:n-1g=g*(x-A(1,i));f=f+B(i,i+1)*g;%求牛顿插值多项式endfprintf('牛顿插值法可得多项式:')ffprintf('牛顿插值法得到的多项式合并同类项后为:')collect(f)%newton([1368;46912])例:有如下表格中有四个插值点及其对应的函数值,用牛顿插值法写出其三次插值多项式:136846912解:在matlab命令窗口输入:newton([1368;46912])可得如下运行结果:牛顿插值法可得多项式:f=3+x+1/70*(x-1)*(x-3)*(x-6)牛顿插值法得到的多项式合并同类项后为:ans=96/35+1/70*x^3-1/7*x^2+97/70*x通过比较对同一题目的运算可知:拉格朗日插值法与牛顿插值法所得的插值多项式是一致的!最小二乘法最小二乘法基本原理:最小二乘法是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合,这无疑就是我们数值分析所研究的最小二乘法很重要的一块的。设已知某一组观测数据,要求在某特定函数类寻求一个函数作为该组数据的近似函数,使得二者在上的残差,按某种度量标准为最小,这就是拟合问题。要求残差按某种度量标准为最小,即要求由残差构成的残差向量的某种范数为最小,现实生活中,我们用得最多的当然就是2范数了,,最小二乘法提供了一种数学方法,利用这种方法可以对实验数据实现在最小平方误差意义下的最好拟合。在曲线拟合中,函数类可有不同的选取方法,我们数值分析中用的最多的自然是最简单与我们最熟悉的多项式。最小二乘法算法:构造法方程组:具体做法是针对已知的点的坐标,先求再求为所要拟合的多项