插值与曲线拟合实验报告
matlab插值与曲线拟合实验报告

湖南大学电气与信息工程学院 《数值计算》课程 上机实验报告姓名: 班级: 学号: 日期:指导老师:本次实验题号:第 3 次实验1) 实验目的:1) 用MATLAB 实现拉格朗日插值和分段线性插值。
2) 了解matlab 实现曲线拟合方法的实际应用。
二. 实验内容:1) 插值算法的应用:题目:用拉格朗日插值程序,分段线形插值函数分别研究f (X )的数据表,计算f(0.472) X 0.46 0.47 0.48 0.49 Y0.48465550.49375420.50274980.51166832) 曲线拟合方法的实际应用用电压V=10V 的电池给电容器充电,电容器上t 时刻的电压v(t)=V-(V-V0)e^(-t/T),其中V0是电容器的初始电压,T 是充电常数。
实验测量了一组数据如下,请根据数据表确定V0和T 的大小。
t 0.5 1 2 3 4 5 7 9 V(t) 6.366.487.268.228.668.999.439.63三. 算法介绍或方法基础1.1 拉格朗日插值法对于已给定的点 00(,),...,(,)k k x y x y 和待估计的点的横坐标x ,如上述理论,将其值代入1100,011()()()()():......()()()()kj j i k j i i j j i j j j j j j kx x x x x x x x x x l x x x x x x x x x x x -+=≠-+-----==-----∏计算出插值基函数的值,然后根据公式:():()ki i j L x y l x ==∑计算出纵坐标的估计值,由此完成对该点的插值过程,其中k 为该点插值的阶数。
1.2 线性分段插值利用已给定的点 00(,),...,(,)k k x y x y 对插值区间分为1k -段,将每段的端点(,)i i x y 与 11(,)i i x y ++作为数据点利用公式100010()()()()()f x f x p x f x x x x x -=+--在所构成的区间进行线性插值。
插值与拟合试验

实验:插值与拟合实验目的1.掌握用MATLAB计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点的数目,对三种插值的结果进行初步的分析。
2.掌握用MATLAB作线性最小二乘的方法。
3.通过实例学习如何用插值方法与拟合方法解决实际问题,注意二者的联系和区别。
实验内容选择一些函数,在n个节点上(n不要太大,如5~11)用拉格朗日、分段线性、三次样条三种插值方法,计算m个插值点的函数值(m要适中,如50~100)。
通过数值和图形输出,将三种插值结果与精确值进行比较。
适当增加n,再作比较,由此作初步分析。
y=exp(-x2),-2≤x≤2.取n=5,m=80用MATLAB计算插值数据比较如下:y是精确值,y1是分段线性值,y2是三次样条法插值,y3是拉格朗日插值由于对称性,只给出x>0的值程序:function y=lagr(x0,y0,x)%函数输入:n个节点以数组x0,y0输入,m个插值点以数组x输入?%函数输出:输出数组y为m个插值?n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j)); endends=p*y0(k)+s;endy(i)=s;end结果:x0=-2:0.5:2;y0=exp(-1*x0.^2);x=-2:0.05:2y=exp(-1*x.^2);y1=lagr(x0,y0,x);y2=interp1(x0,y0,x);y3=spline(x0,y0,x);[x;y;y1;y2;y3]'plot(x,y,'k--',x,y1,'r'),xlabel('x')ylabel('y/y1')title('拉格朗日插值(n=9,m=21)'),legend('原函数曲线','拉格朗日插值曲线'), pause,plot(x,y,'k--',x,y2,'r'),xlabel('x')ylabel('y/y2')title('分段线性插值(n=9,m=21)'),legend('原函数曲线','分段线性插值曲线'), pause,plot(x,y,'k--',x,y3,'r'),xlabel('x')ylabel('y/y1')title('三次样条插值(n=9,m=21)'),legend('原函数曲线','三次样条插值曲线'), x =Columns 1 through 9-2.0000 -1.9500 -1.9000 -1.8500 -1.8000 -1.7500 -1.7000 -1.6500 -1.6000Columns 10 through 18-1.5500 -1.5000 -1.4500 -1.4000 -1.3500 -1.3000 -1.2500 -1.2000 -1.1500Columns 19 through 27-1.1000 -1.0500 -1.0000 -0.9500 -0.9000 -0.8500 -0.8000 -0.7500 -0.7000Columns 28 through 36-0.6500 -0.6000 -0.5500 -0.5000 -0.4500 -0.4000 -0.3500 -0.3000 -0.2500Columns 37 through 45-0.2000 -0.1500 -0.1000 -0.0500 0 0.0500 0.1000 0.1500 0.2000Columns 46 through 540.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500Columns 55 through 630.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 1.0500 1.1000Columns 64 through 721.1500 1.2000 1.2500 1.3000 1.3500 1.4000 1.4500 1.5000 1.5500Columns 73 through 811.6000 1.6500 1.7000 1.7500 1.8000 1.8500 1.9000 1.95002.0000ans =-2.0000 0.0183 0.0183 0.0183 0.0183 -1.9500 0.0223 0.0048 0.0270 0.0207 -1.9000 0.0271 0.0011 0.0357 0.0243 -1.8500 0.0326 0.0044 0.0444 0.0292 -1.8000 0.0392 0.0127 0.0531 0.0355 -1.7500 0.0468 0.0243 0.0619 0.0433 -1.7000 0.0556 0.0381 0.0706 0.0525 -1.6500 0.0657 0.0535 0.0793 0.0633 -1.6000 0.0773 0.0700 0.0880 0.0757 -1.5500 0.0905 0.0873 0.0967 0.0897 -1.5000 0.1054 0.1054 0.1054 0.1054 -1.4500 0.1222 0.1244 0.1316 0.1229 -1.4000 0.1409 0.1446 0.1579 0.1421 -1.3500 0.1616 0.1660 0.1841 0.1633 -1.3000 0.1845 0.1889 0.2104 0.1863 -1.2500 0.2096 0.2136 0.2366 0.2114 -1.2000 0.2369 0.2402 0.2629 0.2384 -1.1500 0.2665 0.2689 0.2891 0.2675-1.1000 0.2982 0.2998 0.3154 0.2988 -1.0500 0.3320 0.3328 0.3416 0.3322 -1.0000 0.3679 0.3679 0.3679 0.3679 -0.9500 0.4056 0.4050 0.4090 0.4058 -0.9000 0.4449 0.4439 0.4501 0.4455 -0.8500 0.4855 0.4844 0.4912 0.4867 -0.8000 0.5273 0.5261 0.5322 0.5288 -0.7500 0.5698 0.5687 0.5733 0.5716 -0.7000 0.6126 0.6117 0.6144 0.6145 -0.6500 0.6554 0.6547 0.6555 0.6571 -0.6000 0.6977 0.6972 0.6966 0.6989 -0.5500 0.7390 0.7388 0.7377 0.7397 -0.5000 0.7788 0.7788 0.7788 0.7788 -0.4500 0.8167 0.8168 0.8009 0.8159 -0.4000 0.8521 0.8524 0.8230 0.8507 -0.3500 0.8847 0.8850 0.8452 0.8827 -0.3000 0.9139 0.9142 0.8673 0.9117 -0.2500 0.9394 0.9397 0.8894 0.9372 -0.2000 0.9608 0.9610 0.9115 0.9588 -0.1500 0.9778 0.9779 0.9336 0.9763 -0.1000 0.9900 0.9901 0.9558 0.9892 -0.0500 0.9975 0.9975 0.9779 0.99720 1.0000 1.0000 1.0000 1.0000 0.0500 0.9975 0.9975 0.9779 0.9972 0.1000 0.9900 0.9901 0.9558 0.9892 0.1500 0.9778 0.9779 0.9336 0.9763 0.2000 0.9608 0.9610 0.9115 0.9588 0.2500 0.9394 0.9397 0.8894 0.9372 0.3000 0.9139 0.9142 0.8673 0.9117 0.3500 0.8847 0.8850 0.8452 0.8827 0.4000 0.8521 0.8524 0.8230 0.8507 0.4500 0.8167 0.8168 0.8009 0.8159 0.5000 0.7788 0.7788 0.7788 0.7788 0.5500 0.7390 0.7388 0.7377 0.7397 0.6000 0.6977 0.6972 0.6966 0.6989 0.6500 0.6554 0.6547 0.6555 0.6571 0.7000 0.6126 0.6117 0.6144 0.6145 0.7500 0.5698 0.5687 0.5733 0.5716 0.8000 0.5273 0.5261 0.5322 0.5288 0.8500 0.4855 0.4844 0.4912 0.4867 0.9000 0.4449 0.4439 0.4501 0.44550.9500 0.4056 0.4050 0.4090 0.40581.0000 0.3679 0.3679 0.3679 0.3679 1.0500 0.3320 0.3328 0.3416 0.33221.1000 0.2982 0.2998 0.3154 0.2988 1.1500 0.2665 0.2689 0.2891 0.2675 1.2000 0.2369 0.2402 0.2629 0.2384 1.2500 0.2096 0.2136 0.2366 0.2114 1.3000 0.1845 0.1889 0.2104 0.1863 1.3500 0.1616 0.1660 0.1841 0.1633 1.4000 0.1409 0.1446 0.1579 0.1421 1.4500 0.1222 0.1244 0.1316 0.1229 1.5000 0.1054 0.1054 0.1054 0.1054 1.5500 0.0905 0.0873 0.0967 0.0897 1.6000 0.0773 0.0700 0.0880 0.0757 1.6500 0.0657 0.0535 0.0793 0.0633 1.7000 0.0556 0.0381 0.0706 0.0525 1.7500 0.0468 0.0243 0.0619 0.0433 1.8000 0.0392 0.0127 0.0531 0.0355 1.8500 0.0326 0.0044 0.0444 0.0292 1.9000 0.0271 0.0011 0.0357 0.02431.9500 0.0223 0.0048 0.0270 0.02072.0000 0.0183 0.0183 0.0183 0.0183上图是根据插值数据作出的曲线。
实验报告书-曲线拟合与插值

东南大学《数学实验》报告学号09008123 姓名郭晨成绩实验内容:曲线拟合与插值一实验目的三次样条插值函数的求解及应用二预备知识(1)熟悉正规方程、差分表、插商表的概念(2)熟悉“\”、polyfit、polyval、interp1、spline、cscvn等Matlab 命令三实验内容与要求已知某平原地区的一条公路经过如下坐标点,请用不同的插值方法绘出这条公路(不考虑公路的宽度)。
对于表中给出的数据,编程计算三次样条插值函数估计的公路长度。
X(m) 0 30 50 70 80 90 120 148 170 180Y(m) 80 64 47 42 48 66 80 120 121 138X(m) 202 212 230 248 268 271 280 290 300 312Y(m) 160 182 200 208 212 210 200 196 188 186X(m) 320 340 360 372 382 390 416 430 478 440Y(m) 200 184 188 200 202 240 246 280 296 308X(m) 420 380 360 340 320 314 280 240 200Y(m) 334 328 334 346 356 360 392 390 400思路:由于道路曲折,出现了一个x值对应2个y值的情况,,所以将道路分为2个函数进行拟合。
Matlab命令clear% 全部采样点X=[0,30,50,70,80,90,120,148,170,180,202,212,230,248,268,271,280,290,300,312,320,340,360,372,382,390,416,430,478,440,420,380,360,340,320,314,280,240,200];Y=[80,64,47,42,48,66,80,120,121,138,160,182,200,208,212,210,200,196,188,186,200,184,188, 200,202,240,246,280,296,308,334,328,334,346,356,360,392,390,400];% 第一段n1=29;X1=[0,30,50,70,80,90,120,148,170,180,202,212,230,248,268,271,280,290,300,312,320,340,36 0,372,382,390,416,430,478];Y1=[80,64,47,42,48,66,80,120,121,138,160,182,200,208,212,210,200,196,188,186,200,184,18 8,200,202,240,246,280,296];Z1=0:1:478;m1=length(Z1);gdao1=[-8/15,1/3];lmd1(1)=1;mu1(n1)=1;for i=1:n1-1h1(i)=X1(i+1)-X1(i);endd1(1)=6*((Y1(2)-Y1(1))/h1(1)-gdao1(1))/h1(1);d1(n1)=6*(gdao1(2)-(Y1(n1)-Y1(n1-1))/h1(n1-1))/h1(n1-1);for i=2:n1-1lmd1(i)=h1(i)/(h1(i-1)+h1(i));mu1(i)=1- lmd1(i);d1(i)=6*((Y1(i+1)-Y1(i))/h1(i)-(Y1(i)-Y1(i-1))/h1(i-1))/(h1(i-1)+h1(i));endA1(1,1)=2;A1(1,2)=1;A1(n1,n1-1)=1;A1(n1,n1)=2;for i=2:n1-1A1(i,i-1)=mu1(i);A1(i,i)=2;A1(i,i+1)=lmd1(i);endM1=inv(A1)*d1';for k=1:m1for i=1:n1-1if Z1(k)>=X1(i)&Z1(k)<=X1(i+1)S1(k)=M1(i)*(X1(i+1)-Z1(k))^3/(6*h1(i))+M1(i+1)*(Z1(k)-X1(i))^3/(6*h1(i))+(Y1(i)-M1(i)*h 1(i)^2/6)*(X1(i+1)-Z1(k))/h1(i)+(Y1(i+1)-M1(i+1)*h1(i)^2/6)*(Z1(k)-X1(i))/h1(i);breakendendend% 第二段n2=11;X2=[200,240,280,314,320,340,360,380,420,440,478];Y2=[400,390,392,360,356,346,334,328,334,308,296];Z2=200:1:478;m2=length(Z2);gdao2=[-1/4,-6/19];lmd2(1)=1;mu2(n2)=1;for i=1:n2-1h2(i)=X2(i+1)-X2(i);endd2(1)=6*((Y2(2)-Y2(1))/h2(1)-gdao2(1))/h2(1);d2(n2)=6*(gdao2(2)-(Y2(n2)-Y2(n2-1))/h2(n2-1))/h2(n2-1);for i=2:n2-1lmd2(i)=h2(i)/(h2(i-1)+h2(i));mu2(i)=1- lmd2(i);d2(i)=6*((Y2(i+1)-Y2(i))/h2(i)-(Y2(i)-Y2(i-1))/h2(i-1))/(h2(i-1)+h2(i));endA2(1,1)=2;A2(1,2)=1;A2(n2,n2-1)=1;A2(n2,n2)=2;for i=2:n2-1A2(i,i-1)=mu2(i);A2(i,i)=2;A2(i,i+1)=lmd2(i);endM2=inv(A2)*d2';for k=1:m2for i=1:n2-1if Z2(k)>=X2(i)&Z2(k)<=X2(i+1)S2(k)=M2(i)*(X2(i+1)-Z2(k))^3/(6*h2(i))+M2(i+1)*(Z2(k)-X2(i))^3/(6*h2(i))+(Y2(i)-M2(i)*h 2(i)^2/6)*(X2(i+1)-Z2(k))/h2(i)+(Y2(i+1)-M2(i+1)*h2(i)^2/6)*(Z2(k)-X2(i))/h2(i);breakendendendplot(Z1,S1,Z2,S2,X,Y,'o') % 绘图% 估算公路长度L=0;for t=1:477L=L+((Z1(t)-Z1(t+1))^2+(S1(t)-S1(t+1))^2)^0.5;endfor t=1:277L=L+((Z2(t)-Z2(t+1))^2+(S2(t)-S2(t+1))^2)^0.5 End结果输出:L = 1.0163e+003插值图像。
数值分析实验报告--插值与拟合及其并行算法

《数值分析》实验报告实验五、插值与拟合及其并行算法一.实验目的:1.学会拉格朗日插值, 分段线性插值或三次样条插值以及曲 线拟合等数值分析问题,通过 MATLAB 编程解决这些数 值分析问题,并且加深对此次实验内容的理解。
2.加强编程能力和编程技巧,练习从数值分析角度看问题, 同时用 MATLAB 编写代码。
二.实验要求:学会在计算机上实现拉格朗日插值,分段线性插值或三次 样条插值以及曲线拟合等数值分析问题,分析几种插值方法的异 同。
三.实验内容:分别用下列题目完成①:拉格朗日插值及其误 差分析 ②:三次样条 ③: 曲线拟合及其误差分析,实验要求。
四.实验题目: (1)已知 sin 30 D = 0.5 , sin 45D = 0.707 1 ,sin 60 D = 0.866 0 ,用拉格朗日插值及其误差估计的MATLAB主程序求 sin 20D 的近似值,并估计其误差。
(2)观测得出函数 y=f(x)在若干点处的值为 f(0)=0, f(2)=16, f(4)=36, f(6)=54, f(10)=82 和 f'(0)=8, f'(10)=7, 试求 f(x)的三次样条函数,并计算 f(3)和 f(8)的近似值. ( 3 ) t=[2.1 7.9 10.1 13 14.5 15.3];r=[13.5 36.9 45.7 求出 r 与 t 之间的关系, 及三 57.3 62.78 74.9];根据给出数据, 种误差,并作出拟合曲线。
五.实验原理:(1)拉格朗日插值公式:P5 ( x) = ∑ y i l i ( x)i =05li ( x) =( x − x 0 ) " ( x − xi −1 )( x − xi +1 ) " ( x − x n ) ( xi − x0 ) " ( xi − xi −1 )( xi − xi +1 ) " ( xi − x n )(2)三次样条插值公式:Sn(x)={Si(x)=a i x +b i x +c i x+d i , x ∈ [x i −1 ,x i ] ,i=1,2,….,n}32(3)曲线拟合: 最小二乘法并不只限于多项式,也可以用于任何具体给出的函数 形式。
插值数值实验报告(3篇)

第1篇一、实验目的1. 理解并掌握插值法的基本原理和常用方法。
2. 学习使用拉格朗日插值法、牛顿插值法等数值插值方法进行函数逼近。
3. 分析不同插值方法的优缺点,并比较其精度和效率。
4. 通过实验加深对数值分析理论的理解和应用。
二、实验原理插值法是一种通过已知数据点来构造近似函数的方法。
它广泛应用于科学计算、工程设计和数据分析等领域。
常用的插值方法包括拉格朗日插值法、牛顿插值法、样条插值法等。
1. 拉格朗日插值法拉格朗日插值法是一种基于多项式的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等。
2. 牛顿插值法牛顿插值法是一种基于插值多项式的差商的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等,并且满足一定的差商条件。
三、实验内容1. 拉格朗日插值法(1)给定一组数据点,如:$$\begin{align}x_0 &= 0, & y_0 &= 1, \\x_1 &= 1, & y_1 &= 4, \\x_2 &= 2, & y_2 &= 9, \\x_3 &= 3, & y_3 &= 16.\end{align}$$(2)根据拉格朗日插值公式,构造插值多项式:$$P(x) = \frac{(x-x_1)(x-x_2)(x-x_3)}{(x_0-x_1)(x_0-x_2)(x_0-x_3)}y_0 + \frac{(x-x_0)(x-x_2)(x-x_3)}{(x_1-x_0)(x_1-x_2)(x_1-x_3)}y_1 + \frac{(x-x_0)(x-x_1)(x-x_3)}{(x_2-x_0)(x_2-x_1)(x_2-x_3)}y_2 + \frac{(x-x_0)(x-x_1)(x-x_2)}{(x_3-x_0)(x_3-x_1)(x_3-x_2)}y_3.$$(3)计算插值多项式在不同点的函数值,并与实际值进行比较。
插值与拟合实验报告

学生实验报告了解插值与拟合的基本原理和方法;掌握用MATLAB计算插值与作最小二乘多项式拟合和曲线拟合的方法;通过范例展现求解实际问题的初步建模过程;通过动手作实验学习如何用插值与拟合方法解决实际问题,提高探索和解决问题的能力。
这对于学生深入理解数学概念,掌握数学的思维方法,熟悉处理大量的工程计算问题的方法具有十分重要的意义。
二、实验仪器、设备或软件:电脑,MATLAB软件三、实验内容1.编写插值方法的函数M文件;2.用MATLAB中的函数作函数的拟合图形;3.针对实际问题,试建立数学模型,并求解。
四、实验步骤1.开启软件平台——MATLAB,开启MATLAB编辑窗口;2.根据各种数值解法步骤编写M文件;3.保存文件并运行;4.观察运行结果(数值或图形);5.写出实验报告,并浅谈学习心得体会。
五、实验要求与任务根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论→心得体会)。
1.天文学家在1914年8月的7次观测中,测得地球与金星之间距离(单位:米),并取得常用对数值,与日期的一组历史数据如下表:由此推断何时金星与地球的距离(米)的对数值为9.93518?解:输入命令days=[18 20 22 24 26 28 30];distancelogs=[9.96177 9.95436 9.94681 9.93910 9.93122 9.92319 9.91499]; t1=interp1(distancelogs,days,9.93518) %线性插值t2=interp1(distancelogs,days,9.93518,'nearest') %最近邻点插值t3=interp1(distancelogs,days,9.93518,'spline') %三次样条插值t4=interp1(distancelogs,days,9.93518,'cubic') %三次插值计算结果:t1 =24.9949t2 =24t3 =25.0000t4 =25.0000综上所得,可推断25日金星与地球的距离(米)的对数值为9.93518。
插值法和拟合实验报告

插值法和拟合实验报告一、实验目的1.通过实验了解插值法和拟合法在数值计算中的应用;2.掌握拉格朗日插值法、牛顿插值法和分段线性插值法的原理和使用方法;3.学会使用最小二乘法进行数据拟合。
二、实验仪器和材料1.一台计算机;2. Matlab或其他适合的计算软件。
三、实验原理1.插值法插值法是一种在给定的数据点之间“插值”的方法,即根据已知的数据点,求一些点的函数值。
常用的插值法有拉格朗日插值法、牛顿插值法和分段线性插值法。
-拉格朗日插值法:通过一个n次多项式,将给定的n+1个数据点连起来,构造出一个插值函数。
-牛顿插值法:通过递推公式,将给定的n+1个数据点连起来,构造出一个插值函数。
-分段线性插值法:通过将给定的n+1个数据点的连线延长,将整个区间分为多个小区间,在每个小区间上进行线性插值,构造出一个插值函数。
2.拟合法拟合法是一种通过一个函数,逼近已知的数据点的方法。
常用的拟合法有最小二乘法。
-最小二乘法:通过最小化实际观测值与拟合函数的差距,找到最优的参数,使得拟合函数与数据点尽可能接近。
四、实验步骤1.插值法的实验步骤:-根据实验提供的数据点,利用拉格朗日插值法、牛顿插值法、分段线性插值法,分别求出要插值的点的函数值;-比较三种插值法的插值结果,评价其精度和适用性。
2.拟合法的实验步骤:-根据实验提供的数据点,利用最小二乘法,拟合出一个合适的函数;-比较拟合函数与实际数据点的差距,评价拟合效果。
五、实验结果与分析1.插值法的结果分析:-比较三种插值法的插值结果,评价其精度和适用性。
根据实验数据和插值函数的图形,可以判断插值函数是否能较好地逼近实际的曲线。
-比较不同插值方法的计算时间和计算复杂度,评价其使用的效率和适用范围。
2.拟合法的结果分析:-比较拟合函数与实际数据点的差距,评价拟合效果。
可以使用均方根误差(RMSE)等指标来进行评价。
-根据实际数据点和拟合函数的图形,可以判断拟合函数是否能较好地描述实际的数据趋势。
插值法和拟合实验报告(数值计算)

插值法和拟合实验报告一、实验目的1.通过进行不同类型的插值,比较各种插值的效果,明确各种插值的优越性;2.通过比较不同次数的多项式拟合效果,了解多项式拟合的原理;3.利用matlab 编程,学会matlab 命令;4.掌握拉格朗日插值法;5.掌握多项式拟合的特点和方法。
二、实验题目1.、插值法实验将区间[-5,5]10等分,对下列函数分别计算插值节点kx 的值,进行不同类型的插值,作出插值函数的图形并与)(x f y =的图形进行比较:;11)(2x x f += ;arctan )(x x f = .1)(42x x x f +=(1) 做拉格朗日插值; (2) 做分段线性插值; (3) 做三次样条插值.2、拟合实验给定数据点如下表所示:分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数),(i i y x 和拟合函数的图形。
三、实验原理1.、插值法实验∏∑∏∏∏∑∑≠==≠=≠=≠=+-==--==-===-=-=----==++==ji j ji i i i i ni i n nji j jnji j ji i nji j jn i i i ni i n nn o i ni i n x x x x x y x l x L x x c ni x x c x x x cx x x x x x x x c y x l x L y x l y x l y x l x L ,00,0,0,0110000)(l )()()(1,1,0,1)()(l )()())(()()()()()()()(,故,得再由,设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.0148,-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);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软件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值计算方法插值与拟合实验报告摘要:通过实验介绍插值方法中常见的拉格朗日插值,线性分段插值和牛顿前插公式,分析计算各种方法的插值余项。
在曲线拟合方面使用两种不同类型的曲线来拟合同一组数据,并计算残差向量范数,比较不同曲线拟合的效果,在此例上给出优劣的判断。
关键词:拉格朗日插值;线性分段插值;牛顿前插公式;曲线拟合引言在工程和科学计算中经常碰到只知道离散的数据测量点而需要匹配其变量之间的数学函数表达式的情况,这就需要插值和拟合的数值方法来解决这些问题。
插值法是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点,也是离散函数逼近的重要方法,利用它可通过函数在有限点处的取值状况,估算出函数在其他点处的近似值。
曲线拟合则是用连续曲线近似地刻画或比拟平面上离散点所表示的坐标之间的函数关系,在各个方面也有着愈加广泛的应用。
1 算法介绍1.1 拉格朗日插值法 1.1.1 算法理论对某个多项式函数,已知有给定的k +1个取值点:00(,),...,(,)k k x y x y其中i x 对应着自变量的位置,而i y 对应着函数在这个位置的取值。
假设任意两个不同的x j 都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为:():()ki i j L x y l x ==∑其中每个()j l x 为拉格朗日基本多项式(或称插值基函数),其表达式为:1100,011()()()()():......()()()()kj j i k j i i j j ij j j j j j k x x x x x x x x x x l x x x x x x x x x x x -+=≠-+-----==-----∏拉格朗日基本多项式 ()j l x 的特点是在 j x 上取值为1,在其它的点 ,i x ij ≠上取值为0。
对于给定的 1k +个点:00(,),...,(,)k k x y x y ,拉格朗日插值法的思路是找到一个在一点j x 取值为1,而在其他点取值都是0的多项式()j l x 。
这样,多项式()i i y l x 在点j x 取值为j y ,而在其他点取值都是0。
而多项式():()ki i j L x y l x ==∑就可以满足():()00...0ki i i i j L x y l x y y ===++...+++=∑在其它点取值为0的多项式容易找到,例如:011()...()()...()j j k x x x x x x x x -+----它在点j x 取值为:011()...()()...()jj j j j j k x x x x x x x x -+----。
由于已经假定ix 两两互不相同,因此上面的取值不等于0。
于是,将多项式除以这个取值,就得到一个满足“在j x 取值为1,而在其他点取值都是0的多项式”:1100,011()()()()():......()()()()kj j i k j i i j j ij j j j j j k x x x x x x x x x x l x x x x x x x x x x x -+=≠-+-----==-----∏ 这就是拉格朗日基本多项式。
拉格朗日插值法的公式结构整齐紧凑,在理论分析中十分方便,然而在计算中,当插值点增加或减少一个时,所对应的基本多项式就需要全部重新计算,于是整个公式都会变化,非常繁琐。
此外,当插值点比较多的时候,拉格朗日插值多项式的次数可能会很高,因此具有数值不稳定的特点,也就是说尽管在已知的几个点取到给定的数值,但在附近却会和“实际上”的值之间有很大的偏差。
这类现象也被称为龙格现象,解决的办法是分段用较低次数的插值多项式。
1.2.2 算法描述对于已给定的点 00(,),...,(,)k k x y x y 和待估计的点的横坐标x ,如上述理论,将其值代入1100,011()()()()():......()()()()kj j i k j i i j j i j j j j j j kx x x x x x x x x x l x x x x x x x x x x x -+=≠-+-----==-----∏计算出插值基函数的值,然后根据公式:():()ki i j L x y l x ==∑计算出纵坐标的估计值,由此完成对该点的插值过程,其中k 为该点插值的阶数。
1.2 线性分段插值 1.2.1 算法理论首先介绍线型插值,假设我们已知坐标 00(,)x y 与 11(,)x y 要得到 01(,)x y 区间内某一位置 x 在直线上的值。
根据图中所示,我们得到由于 x 值已知,所以可以从公式得到 y 的值已知y 求x 的过程与以上过程相同,只是x 与y 要进行交换。
线性插值经常用于已知函数 f 在两点的值要近似获得其它点数值的方法,这种近似方法的误差定义为:()()T R f x p x =-其中 p 表示上面定义的线性插值多项式100010()()()()()f x f x p x f x x x x x -=+--根据罗尔定理,我们可以证明:如果 f 有二阶连续导数,那么误差范围是2"10()||max |()|8T x x R f x -≤ 01x x x ≤≤正如所看到的,函数上两点之间的近似随着所近似的函数的二阶导数的增大而逐渐变差。
从直观上来看也是这样:函数的曲率越大,简单线性插值近似的误差也越大。
而分段线型插值就是把需要插值的区间依已给定的点 00(,),...,(,)k k x y x y 分为k-1段,每段利用其端点进行线型插值。
1.2.2 算法描述利用已给定的点 00(,),...,(,)k k x y x y 对插值区间分为1k -段,将每段的端点(,)i i x y 与11(,)i i x y ++作为数据点利用公式100010()()()()()f x f x p x f x x x x x -=+--在所构成的区间进行线性插值。
1.3 牛顿插值法 1.3.1 算法理论注意在下面的讲述中着重介绍差商的概念,设:010201011()()()()...()()...()n n n N x c c x x c x x x x c x x x x x x -=+-+--++---问题是如何根据插值条件(),0,1,...,n i i N x y i n ==来计算待定系数 01,,...n c c c由 000()()n N x y f x == 知,000()c y f x ==。
由 111()()n N x y f x ==01101()c c x x y =-=因而,10101011010()()[,]y y f x f x c f x x x x x x --===--其中,01[,]f x x 称为函数 ()f x 在01,x x 点的一阶差商。
由 222()()n N x y f x == 知:0110220212()()()c c x x c x x x x y +-+--=因而10212110120120122021[,][,][,,]y y y y x x x x f x x f x x c f x x x x x x x ------===--其中,012[,,]f x x x 称为函数()f x 在012,,x x x 点的二阶差商。
实际上,它是一阶差商的差商。
一般地,如果已知一阶差商11[,],[,]i i i i f x x f x x -+,那么就可以计算二阶差商111111[,][,][,,]i i i i i i i i i f x x f x x f x x x x x +--++--=-类似于上述过程不断地推导下去,可得12011010[,,...][,,...,][,,...,]n n n n n f x x x f x x x c f x x x x x --==-其中,01[,,...,]n f x x x 称为函数f (x )在相应点处的n 阶差商。
这些结果说明,要保证上面构造多项式的方法具有期望的优点,就必须要有一个好的计算系数 01,,...,n x x x 的方法。
按上述方式构造插值多项式的方法叫做牛顿插值法。
根据插值多项式的惟一性知,其截断误差与拉格朗日插值法相同,即:(1)110121()()()(1)!()()()...()n n n n n R x f x n x x x x x x x x ξππ+++=+=----但也可以表示成差商形式。
这是因为以011,,...,n x x x + 为节点的多项式10111()()[,,...,]()n n n n N x N x f x x x x π+++=+从而111101111()()()[,,...,]()n n n n n n n n f x N x N x f x x x x π+++++++==+于是 ()n N x 的截断误差可表为011[,,...,,]()n n n R f x x x x x π+=顺便指出,因为牛顿插值多项式具有性质:101()()[,,...,]()n n n n N x N x f x x x x π-=+所以,类似于逐次线性插值法,也可以把上述和式中的第二项01[,,...,]()n n f x x x x π看成是估计 1()n N x - 的一种实用误差估计式。
与差商概念密切联系的另一个概念是差分,它是指在等距节点上函数值的 差。
所谓等距节点,是指对给定的常数h (称为步长),节点0,(0,1,...,)i x x ih i n =+=称1()()i i i f x f x f +-=∆为 i x 处的一阶向前差分;称1()()i i i f x f x f --=∇为 i x 处的一阶向后差分。
一阶差分的差分称为二阶差分,即 21i i i f f f +∆-∆=∆ 称为i x 处的二阶向前差分。
一般地,m 阶向前和向后差分可定义如下:111m m m i i i f f f --+∆=∆-∆111m m m i i i f f f --+∇=∇-∇2,3,4...m =差商与差分之间存在关系:001()()[,,...,]!!n n n n n nf x f x f x x x n h n h∆∇== 其中ξ 是介于 01,,...,n x x x 之间的某个数。
将此式代入()n N x , 即可得到牛顿前插公式。
000(1)10()()()(1)...()!()()(1)...(),(,)(1)!k nn n k n n n n f x P x P x th t t t n k f R x h t t t n x x n ξξ=++∆=+=--=--∈+∑ 1.3.2 算法描述利用已给定的点 00(,),...,(,)k k x y x y 和待估计的点的横坐标,代入牛顿前插公式,先计算差分,然后算出该点纵坐标的估计值。