文档库 最新最全的文档下载
当前位置:文档库 › 实验题目五:插值与拟合Matlab基础

实验题目五:插值与拟合Matlab基础

实验题目五:插值与拟合Matlab基础

实验五:插值与拟合Matlab 基础

实例1:对下面一组数据作二次多项式拟合:

即要求出二次多项式 中的 ,使得

最小,并作出数据点(*号表示)和拟合曲线。

实例2:气象工作人员在12小时内,每隔1小时对当地气温进行测量,温度依次为5, 8, 9, 13, 22, 27, 31, 30, 22, 25, 26, 23,试分别用线性插值和三次样条插值估计在3.2h 、

6.6h 、

7.8h 、11.5小时的温度值。

实例3:某人在5分钟内饮下1000ML 啤酒后,医务人员相隔一定时间对他体内血液中酒精含量(mg/100ml )进行测量,测量数据如下所示:

试用函数 进行拟合,并求出常数a 、b 和c 。(提示:方便起见,该函数可取对数处理) ()b ct t at e φ=2123()f x a x a x a =++123(,,)A a a a =20[()]i i i f x y =-∑

插值与拟合实验报告

学生实验报告

了解插值与拟合的基本原理和方法;掌握用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.9949 t2 = 24 t3 = 25.0000 t4 =

插值法和拟合实验报告(数值计算)

插值法和拟合实验报告 一、 实验目的 1.通过进行不同类型的插值,比较各种插值的效果,明确各种插值的优越性; 2.通过比较不同次数的多项式拟合效果,了解多项式拟合的原理; 3.利用matlab 编程,学会matlab 命令; 4.掌握拉格朗日插值法; 5.掌握多项式拟合的特点和方法。 二、 实验题目 1.、插值法实验 将区间[-5,5]10等分,对下列函数分别计算插值节点 k x 的值,进行不同类型 的插值,作出插值函数的图形并与)(x f y =的图形进行比较: ;11)(2x x f += ;a r c t a n )(x x f = .1)(42 x x x f += (1) 做拉格朗日插值; (2) 做分段线性插值; (3) 做三次样条插值. 2、拟合实验 给定数据点如下表所示: 分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数 ),(i i y x 和拟合函数的图形。 三、 实验原理 1.、插值法实验

∏∑∏∏∏∑∑≠==≠=≠=≠=+-==--= =-= ==-=-=----==++==j i j j i i i i i n i i n n j i j j n j i j j i i n j i j j n i i i n i i n n n o i n i i n x x x x x y x l x L x x c n i x x c x x x c x 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,01100 00 )(l )()() (1 ,1,0, 1)()(l ) ()())(()()()()()()()(, 故, 得 再由,设 2、拟合实验

matlab中插值拟合与查表

MATLAB中的插值、拟合与查表 插值法是实用的数值方法,是函数逼近的重要方法。在生产和科学实验中,自变量x与因变量y的函数y = f(x)的关系式有时不能直接写出表达式,而只能得到函数在若干个点的函数值或导数值。当要求知道观测点之外的函数值时,需要估计函数值在该点的值。 如何根据观测点的值,构造一个比较简单的函数y=φ(x),使函数在观测点的值等于已知的数值或导数值。用简单函数y=φ(x)在点x处的值来估计未知函数y=f(x)在x点的值。寻找这样的函数φ(x),办法是很多的。φ(x)可以是一个代数多项式,或是三角多项式,也可以是有理分式;φ(x)可以是任意光滑(任意阶导数连续)的函数或是分段函数。函数类的不同,自然地有不同的逼近效果。在许多应用中,通常要用一个解析函数(一、二元函数)来描述观测数据。 根据测量数据的类型: 1.测量值是准确的,没有误差。 2.测量值与真实值有误差。 这时对应地有两种处理观测数据方法: 1.插值或曲线拟合。 2.回归分析(假定数据测量是精确时,一般用插值法,否则用曲线拟合)。 MATLAB中提供了众多的数据处理命令。有插值命令,有拟合命令,有查表命令。 2.2.1 插值命令 命令1 interp1 功能一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。其中函数f(x)由所给数据决定。各个参量之间的关系示意图为图2-14。 格式 yi = interp1(x,Y,xi) %返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y的内插值决定。参量x指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。 yi = interp1(Y,xi) %假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。 yi = interp1(x,Y,xi,method) %用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算;

第四讲 matlab插值、拟合和回归分析

第四讲 插值、拟合与回归分析 在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样本点,要求得到变量之间的函数关系或得到样本点之外的数据。解决此类问题的方法一般有插值、拟合和回归分析等。 设有一组实验数据0011(,),(,),(,)n n x y x y x y ,当原始数据精度较高,要求确定一个简单函数()y x ?=(一般为多项式或分段多项式)通过各数据点,即(),0,,i i y x i n ?== ,称为插值问题。 另一类是拟合问题,当我们已经有了函数关系的类型,而其中参数未知或原始数据有误差时,我们确定的初等函数()y x ?=并不要求经过数据点,而是要求在某种距离度量下总体误差达到最小,即 (),0,,i i i y x i n ?ε=+= ,且20 n i i ε=∑达到最小值。 对同一组实验数据,可以作出各种类型的拟合曲线,但拟合效果有好有坏,需要进行有效性的统计检验,这类问题称为回归分析。 一、插值(interpolation) 常用的插值方法有分段线性插值、分段立方插值、样条插值等。 1、一元插值 yi=interp1(x,y,xi,method) 对给定数据点(x,y),按method 指定的方法求出插值函数在点(或数组)xi 处的函数值yi 。其中method 是字符串表达式,可以是以下形式: 'nearest' ——最邻近点插值

'linear' ——分段线性插值(也是缺省形式) 'spline' ——分段三次样条插值 'cubic' 分段立方插值 例:在一天24小时内,从零点开始每间隔2小时测得环境温度数据分别为(℃): 12,9,9,10,18,24,28,27,25,20,18,15,13 用不同的插值方法估计中午1点(即13点)的温度,并绘出温度变化曲线。 >> x=0:2:24; >> y=[12 9 9 10 18 24 28 27 25 20 18 15 13]; >>y_linear=interp1(x,y,13),y_nearest=interp1(x,y,13,'nearest') >>y_cubic=interp1(x,y,13,'cubic'),y_spline=interp1(x,y,13,'spline') >> y1=interp1(x,y,xx); y2=interp1(x,y,xx,'nearest'); >> y3=interp1(x,y,xx,'cubic');y4=interp1(x,y,xx,'spline'); >> subplot(2,2,1),plot(x,y,'or',xx,y1) >> subplot(2,2,2),plot(x,y,'or',xx,y2) >> subplot(2,2,3),plot(x,y,'or',xx,y3) >> subplot(2,2,4),plot(x,y,'or',xx,y4) 2、二元插值 zi=interp2(X,Y,Z,xi,yi,method) 已知数据点(X,Y,Z),求插值函数在(xi,yi)处的函数值zi,插值方法method同interp1。这里要求X,Y,Z是同维矩阵,且X,Y是

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 1. 理解插值的基本原理,掌握多项式插值的概念、存在唯一性; 2. 编写MA TLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象; 3. 通过比较不同次数的多项式拟合效果,理解多项式拟合的基本原理; 4. 编写MA TLAB 程序实现最小二乘多项式曲线拟合。 二、实验内容 1. 用Lagrange 插值和Newton 插值找经过点(-3, -1), (0, 2), (3, -2), (6, 10)的三次插值公式,并编写MATLAB 程序绘制出三次插值公式的图形。 2. 设 ]5,5[,11 )(2 -∈+= x x x f 如果用等距节点x i = -5 + 10i /n (i = 0, 1, 2, …, n )上的Lagrange 插值多项式L n (x )去逼近它。不妨取n = 5和n = 10,编写MATLAB 程序绘制出L 5(x )和L 10(x )的图像。 (2) 编写MA TLAB 程序绘制出曲线拟合图。 三、实验步骤 1. (1) Lagrange 插值法:在线性空间P n 中找到满足条件: ?? ?≠===j i j i x l ij j i , 0,, 1)(δ 的一组基函数{}n i i x l 0)(=,l i (x )的表达式为 ∏ ≠==--= n i j j j i j i n i x x x x x l ,0),,1,0()( 有了基函数{}n i i x l 0)(=,n 次插值多项式就可表示为 ∑==n i i i n x l y x L 0 )()( (2) Newton 插值法:设x 0, x 1, …, x n 是一组互异的节点,y i = f (x i ) (i = 0, 1, 2, …, n ),f (x )在处的n 阶差商定义为

第五章插值与拟合答案—牟善军

习题5.1: Matlab程序如下: clc,clear x=1:0.5:10; y=x.^3-6*x.^2+5*x-3; y0=y+rand; f1=polyfit(x,y0,1) y1=polyval(f1,x); plot(x,y,'+',x,y1); grid on title('一次拟合曲线'); figure(2); f2=polyfit(x,y0,2) y2=polyval(f2,x); plot(x,y,'+',x,y2); grid on title('二次拟合曲线'); figure(3); f4=polyfit(x,y0,4) y3=polyval(f4,x); plot(x,y,'+',x,y3); grid on title('四次拟合曲线'); figure(4); f6=polyfit(x,y0,6) y4=polyval(f6,x); plot(x,y,'+',x,y4); grid on title('六次拟合曲线'); 计算结果及图如下 f1 = 43.2000 -148.8307 f2 = 10.5000 -72.3000 90.0443

f4 = 0.0000 1.0000 -6.0000 5.0000 -2.3557 f6 = -0.0000 0.0000 -0.0000 1.0000 -6.0000 5.0000 -2.3557 5.2高程数据问题解答如下:matlab程序: clc,clear x0=0:400:5600 y0=0:400:4800 z0=[1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150 1370 1390 1410 1430 1440 1140 1110 1050 950 820 690 540 380 300 210 1380 1410 1430 1450 1470 1320 1280 1200 1080 940 780 620 460 370 350 1420 1430 1450 1480 1500 1550 1510 1430 1300 1200 980 850 750 550 500

【VIP专享】MATLAB插值与拟合的几个函数整理

MATLAB插值与拟合 2015.4.19 19:21 【目录】 1. 线性拟合函数:regress() 2. 多项式曲线拟合函数:polyfit( ) 3. 多项式曲线求值函数:polyval( ) 4. 多项式曲线拟合的评价和置信区间函数:polyconf( ) 5. 稳健回归函数:robustfit( ) §1曲线拟合 实例:温度曲线问题 气象部门观测到一天某些时刻的温度变化数据为: t 0 1 2 3 4 5 6 7 8 9 10 T 13 15 17 14 16 19 26 24 26 27 29 试描绘出温度变化曲线。 曲线拟合就是计算出两组数据之间的一种函数关系,由此可描绘其变化曲线及估计非采集数据对应的变量信息。 曲线拟合有多种方式,下面是一元函数采用最小二乘法对给定数据进行多项式曲线拟合,最后给出拟合的多项式系数。 1. 线性拟合函数:regress() 调用格式:b=regress(y,X) [b,bint,r,rint,stats]= regress(y,X) [b,bint,r,rint,stats]= regress(y,X,alpha) 说明:b=regress(y,X)返回X处y的最小二乘拟合值。该函数求解线性模型:y=Xβ+ε; β是p′1的参数向量;ε是服从标准正态分布的随机干扰的n′1的向量;y为n′1的向量;X为n′p矩阵。bint返回β的95%的置信区间。r中为形状残差,rint中返回每一个残差的95%置信区间。Stats向量包含R2统计量、回归的F值和p值。 例1:设y的值为给定的x的线性函数加服从标准正态分布的随机干扰值得到。即y=10+x+ε;求线性拟合方程系数。 程序:x=[ones(10,1) (1:10)’] y=x*[10;1]+normrnd(0,0.1,10,1)

插值与拟合(使用插值还是拟合)

利用matlab实现插值与拟合实验 张体强1026222 张影 晁亚敏 [摘要]:在测绘学中,无论是图形处理,还是地形图处理等,大多离不开插值与拟合的应用,根据插值与拟合原理,构造出插值和拟合函数,理解其原理,并在matlab平台下,实现一维插值,二维插值运算,实现多项式拟合,非线性拟合等,并在此基础上,联系自己所学专业,分析其生活中特殊例子,提出问题,建立模型,编写程序,以至于深刻理解插值与拟合的作用。 [关键字]: 测绘学插值多项式拟合非线性拟合 [ Abstract]: in surveying and mapping, whether the graphics processing, or topographic map processing and so on, are inseparable from the interpolation and fitting application, according to the interpolation and fitting theory, construct the fitting and interpolation function, understanding its principle, and MATLAB platform, achieve one-dimensional interpolation, two-dimensional interpolation, polynomial fitting, non-linear fitting, and on this basis, to contact their studies, analysis of their living in a special example, put forward the question, modeling, programming, so that a deep understanding of interpolation and fitting function. [ Key words]: Surveying and mapping interpolation polynomial fitting nonlinear

插值与拟合实验报告

一、给定函数y=sinx的函数表如下表,用拉格朗日插值求sin0.57891的近似 值 M文件: function yh=lagrange2(x0,y0,xh) n = length(x0); m = length(xh); yh=zeros(1,m); for k = 1:m for i = 1:n xp = x0([1:i-1 i+1:n]); yp = prod((xh(k)-xp)./(x0(i)-xp)); yh(k) = yh(k) + yp*y0(i); end end 执行:>> x0=[0.4,0.5,0.6,0.7] x0 = 0.4000 0.5000 0.6000 0.7000 >> y0=[0.38942,0.47943,0.56464,0.64422] y0 = 0.3894 0.4794 0.5646 0.6442 >> lagrange2(x0,y0,0.57891) 执行结果: ans = 0.5471

二、 1. 给定sin110.190809,sin120.207912,sin130.224951,o o o ===构造牛顿 插值函数计算'sin1130o 。 M 文件: function fp = newpoly(x,y,p) n = length(x); a(1) = y(1); for k = 1 : n - 1 d(k, 1) = (y(k+1) - y(k))/(x(k+1) - x(k)); end for j = 2 : n - 1 for k = 1 : n - j d(k, j) = (d(k+1, j - 1) - d(k, j - 1))/(x(k+j) - x(k)); end end d for j = 2 : n a(j) = d(1, j-1); end Df(1) = 1; c(1) = a(1); for j = 2 : n Df(j)=(p - x(j-1)) .* Df(j-1); c(j) = a(j) .* Df(j);

计算方法--插值法与拟合实验

实验三 插值法与拟合实验 一、实验目的 1. 通过本实验学会利用程序画出插值函数,并和原图形相比较 2. 通过本实验学会拟合函数图形的画法,并会求平方误差 二、实验题目 1. 插值效果的比较 实验题目:区间[]5,5-10等分,对下列函数分别计算插值节点k x 的值,进行不同类型的插值,作出插值函数的图形并与)(x f y =的图形进行比较: 2 11)(x x f +=; x x f arctan )(=; 4 41)(x x x f += (1) 做拉格朗日插值; (2) 做三次样条插值. 2. 拟合多项式实验 实验题目:给定数据点如下表所示: 分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数),(i i y x 和拟合函数的图形. 三、实验原理 本实验应用了拉格朗日插值程序、三次样条插值程序、多项式拟合程序等实验原理. 四、实验内容 1(1) figure x=-5:0.2:5; y=1./(1+x.^2); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=1./(1+x1.^2); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25);

m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 1(2) x=-5:0.2:5; y=atan(x); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=atan(x1); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25); m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 1(3) x=-5:0.2:5; y=x.^2./(1+x.^4); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=x1.^2./(1+x1.^4); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25); m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 2. x=[-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5]'; y=[-4.45 -0.45 0.55 0.05 -0.44 0.54 4.55]'; plot(x,y,'or'); hold on %三次多项式拟合 p1=mafit(x,y,3);

第4、5讲 插值与拟合 作业参考答案

第四、五讲作业题参考答案 一、填空题 1、拉格朗日插值基函数在节点上的取值是( 0或1 )。 2、当1,1,2x =-,时()034f x =-, ,,则()f x 的二次插值多项式为 ( 2527 633 x x +- )。 3、由下列数据 所确定的唯一插值多项式的次数为( 2次 )。 4、根据插值的定义,函数()x f x e -=在[0,1]上的近似一次多项式1()P x = ( 1(1)1e x --+ ),误差估计为( 18 )。 5、在做曲线拟合时,对于拟合函数x y ax b = +,引入变量变换y =( 1 y ),x =( 1 x )来线性化数据点后,做线性拟合y a bx =+。 6、在做曲线拟合时,对于拟合函数Ax y Ce =,引入变量变换( ln()Y y = )、 X x =和B C e =来线性化数据点后,做线性拟合Y AX B =+。 7、设3()1f x x x =+-,则差商[0,1,2,3]f =( 1 )。 8、在做曲线拟合时,对于拟合函数()A f x Cx =,可使用变量变换(ln Y y =)(ln X x = )和B C e =来线性化数据点后,做线性拟合Y AX B =+。 9、设(1)1,(0)0,(1)1,(2)5,()f f f f f x -====则的三次牛顿插值多项式为 ( 3211 66x x x +-),其误差估计式为( 4()(1)(1)(2),(1,2)24f x x x x ξξ+--∈-) 10、三次样条插值函数()S x 满足:()S x 在区间[,]a b 内二阶连续可导, (),,0,1,2,,,k k k k S x y x y k n ==(已知)且满足()S x 在每一个子区间1[,] k k x x +上是( 三次多项式 )。

(完整版)Matlab学习系列13.数据插值与拟合

13. 数据插值与拟合 实际中,通常需要处理实验或测量得到的离散数据(点)。插值与拟合方法就是要通过离散数据去确定一个近似函数(曲线或曲面),使其与已知数据有较高的拟合精度。 1.如果要求近似函数经过所已知的所有数据点,此时称为插值问 题(不需要函数表达式)。 2.如果不要求近似函数经过所有数据点,而是要求它能较好地反 映数据变化规律,称为数据拟合(必须有函数表达式)。 插值与拟合都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数。区别是:【插值】不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。【拟合】要求得到一个具体的近似函数的表达式。 因此,当数据量不够,但已知已有数据可信,需要补充数据,此时用【插值】。当数据基本够用,需要寻找因果变量之间的数量关系(推断出表达式),进而对未知的情形作预测,此时用【拟合】。

一、数据插值 根据选用不同类型的插值函数,逼近的效果就不同,一般有:(1)拉格朗日插值(lagrange插值) (2)分段线性插值 (3)Hermite (4)三次样条插值 Matlab 插值函数实现: (1)interp1( ) 一维插值 (2)intep2( ) 二维插值 (3)interp3( ) 三维插值 (4)intern( ) n维插值 1.一维插值(自变量是1维数据) 语法:yi = interp1(x0, y0, xi, ‘method’) 其中,x0, y0为原离散数据(x0为自变量,y0为因变量);xi为需要插值的节点,method为插值方法。 注:(1)要求x0是单调的,xi不超过x0的范围; (2)插值方法有‘nearest’——最邻近插值;‘linear’——线性插值;‘spline’——三次样条插值;‘cubic’——三次插值;

实验四 插值法与曲线拟合

计算方法实验报告 专业班级:医学信息工程一班姓名:陈小芳学号:201612203501002 实验成绩: 1.【实验题目】 插值法与曲线拟合 2.【实验目的】 3.【实验内容】 4. 【实验要求】

5. 【源程序(带注释)】 (1)拉格朗日插值 #include #include #include #include #include #define n 4 //插值节点的最大下标 main() { double x1[n+1]={0.4,0.55,0.65,0.8,0.9}; double y1[n+1]={0.4175,0.57815,0.69657,0.88811,1.02652}; double Lagrange(double x1[n+1],double y1[n+1],float t); int m,k;float x,y;float X;double z; printf("\n The number of the interpolation points is m ="); //输入插值点的个数 while(!scanf("%d",&m)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\n The number of the interpolation points is m ="); } for(k=1;k<=m;k++) { printf("\ninput X%d=",k); while(!scanf("%f",&X)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\ninput X%d=",k); } z=Lagrange(x1,y1,X); printf("P(%f)=%f\n",X,z); } getch(); return (0); } double Lagrange(double x[n+1],double y[n+1],float X) { int i,j;

数学实验-实验2 插值与拟合

广州大学学生实验报告 开课学院及实验室: 2014年 月 日 学院 数学与信息科学学院 年级、专业、班 姓名 学号 实验课程名称 数学实验 成绩 实验项目名称 实验2 插值与拟合 指导老师 一、实验目的 1、掌握用MATLAB 计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点的数目,对三种插值结果进行初步分析。 2、掌握用MATLAB 作线性最小二乘拟合的方法。 3、通过实例学习如何用插值方法与拟合方法解决实际问题,注意二者的联系和区别。 二、实验设备 电脑、MATLAB 三、实验要求 1..选择一些函数,在n 个节点上(n )不要太大,如5~11)用拉格朗日,分段线性,三次样条三种插值方法,,计算m 各插值点的函数值(m 要适中,如50~100).通过数值和图形的输出,将三种插值结果与精确值进行比较.适当增加n ,再作比较,由此作初步分析.下列函数供选择参考: a. y=sin x ,0≦x ≦2π; 2.用 1 2 y x =在x=0,1,4,9,16产生5个节点15,...,P P .用不同的节点构造插值公式来计算x=5处的插值(如用 15,...,P P ;14,...,P P ;24,...,P P 等)与精确值比较进行分析。 5.对于实验1中的录像机计数器,自己实测一组数据(或利用给出的数据),确定模型2 t an bn =+中的系数a,b. 6.用电压V=10伏的电池给电容器充电,电容器上t 时刻的电压为 0()()t v t V V V e -τ =--,其中 0V 是电容器的初始 电压,τ是充电常数。试由下面一组t ,V 数据确定0V 和τ. t/s 0.5 1 2 3 4 5 7 9 V/V 6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63 8. 弹簧在力F 的作用下伸长x ,一定范围内服从胡克定律:F 与x 成正比,即F=kx,k 为弹性系数.现在得到下面一组x ,F 数据,并在(x,F )坐标下作图(图13).可以看出,当F大到一定数值(如x=9以后)后,就不服从这个定律了。试由数据拟合直线F=kx,并给出不服从胡克定律时的近似公式(曲线)。 1)要求直线与曲线在x=9处相连接。 2)要求直线与曲线在x=9处光滑连接. 四、实验程序 预备: function y=lagr1(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=s+p*y0(k); end y(i)=s; end 五、实验操作过程 当n=5时 clear; n=5; %在n 个节点上进行插值 m=75; %产生m 个插值点,计算函数在插值点处的精确值,将来进行对比 x=0:4/(m-1):2*pi; y=sin(x); z=0*x; x0=0:4/(n-1):2*pi; y0=sin(x0); y1=lagr1(x0,y0,x); % y1为拉格朗日插值 y2=interp1(x0,y0,x); % y2为分段线性插值 y3=spline(x0,y0,x); % y3为三次样条插值 [x' y' y1' y2' y3'] plot(x,z,'k',x,y,'r:',x,y1,'g-.',x,y2,'b',x,y3,'y--') gtext('Lagr.'), gtext('Pieces. linear'), gtext('Spline'), gtext('y=sin(x)') hold off; %比较插值所得结果与函数在插值点处的精确值 s = ' x y y1 y2 y3' [x' y' y1' y2' y3'] 结果 ans = 0 0 0 0 0 0.0541 0.0540 0.0495 0.0455 0.0611 0.1081 0.1079 0.0999 0.0910 0.1207 0.1622 0.1615 0.1510 0.1365 0.1787 0.2162 0.2145 0.2025 0.1819 0.2350 0.2703 0.2670 0.2541 0.2274 0.2896 0.3243 0.3187 0.3054 0.2729 0.3425 0.3784 0.3694 0.3563 0.3184 0.3936 0.4324 0.4191 0.4066 0.3639 0.4429 0.4865 0.4675 0.4559 0.4094 0.4904 0.5405 0.5146 0.5040 0.4548 0.5359 0.5946 0.5602 0.5508 0.5003 0.5796 0.6486 0.6041 0.5961 0.5458 0.6212 0.7027 0.6463 0.6396 0.5913 0.6609 0.7568 0.6866 0.6812 0.6368 0.6985 0.8108 0.7248 0.7208 0.6823 0.7341 0.8649 0.7610 0.7583 0.7278 0.7675

第五章数据拟合.

第五章 数据拟合 这就是数据拟合成曲线的思想,简称为曲线拟合(fitting a curve)。根据一组二维数据,即平面上的若干点,要求确定一个一元函数y = f (x ),即曲线,使这些点与曲线总体来说尽量接近, 曲线拟合其目的是根据实验获得的数据去建立因变量与自变量之间有效的经验函数关系,为进一步的深入研究提供线索。本章的目的,掌握一些曲线拟合的基本方法,弄清楚曲线拟合与插值方法之间的区别,学会使用MATLAB 软件进行曲线拟合。 §1 最小二乘法 给定平面上的点(x i, y i ),(i = 1,2,…,n ),进行曲线拟合有多种方法,其中最小二乘法是解决曲线拟合最常用的方法。最小二乘法的原理是: 求 ∑∑==-==n i i i n i i y x f x f 1212])([),(δδ使 达到最小 如图1所示,其中δi 为点(x i ,y i )与曲线y=f (x )的距离。曲线拟合的实际含义是寻求一个函数y=f (x ),使f (x )在某种准则下与所有数据点最为接近,即曲线拟合得最好。最小二乘准则就是使所有散点到曲线的距离平方和最小。拟合时选用一定的拟合函数f (x ) 形式,设拟合函数可由一些简单的“基函数”(例如幂函数,三角函数等等) )(),...,(),(10x x x m ???来线性表示: )(...)()()(1100x c x c x c x f m m ???+++= 图1 曲线拟合示意图 现在要确定系数c 0,c 1,…,c m ,使d 达到极小。为此,将f (x )的表达式代入d 中,d 就成为c 0,c 1,…,c m 的函数,求d 的极小,就可令d 对 c i 的偏导数等于零,于是得到m +1个方程组,从中求解出c i 。通常取基函数为1,x ,x 2,x 3,…,x m ,这时拟合函数f (x )为多项式函数。当m =1时,f (x ) = a + bx ,称为一元线性拟合函数,它是曲线拟合最简单的形式。除此之外,常用的一元曲线拟合函数还有双曲线f (x ) = a + b/x ,指数曲线f (x ) = a e bx 等,对于这些曲线,拟合前须作变量代换,转化为线性函数。

matlab 软件拟合与插值运算实验报告

实验6 数据拟合&插值 一.实验目的 学会MATLAB软件中软件拟合与插值运算的方法。 二.实验内容与要求 在生产和科学实验中,自变量x与因变量y=f(x)的关系式有时不能直接写出表达式,而只能得到函数在若干个点的函数值或导数值。当要求知道观测点之外的函数值时,需要估计函数值在该点的值。 要根据观测点的值,构造一个比较简单的函数y=t (x),使函数在观测点的值等于已知的数值或导数值,寻找这样的函数t(x),办法是很多的。 根据测量数据的类型有如下两种处理观测数据的方法。 (1)测量值是准确的,没有误差,一般用插值。 (2)测量值与真实值有误差,一般用曲线拟合。 MATLAB中提供了众多的数据处理命令,有插值命令,拟合命令。 1.曲线拟合 >> x=[0.5,1.0,1.5,2.0,2.5,3.0]; >> y=[1.75,2.45,3.81,4.80,7.00,8.60]; >> p=polyfit (x,y,2); >> x1=0.5:0.05:3.0; >> y1=polyval(p,x1 ); >> plot(x,y,'*r',x1,y1,'-b')

2.一维插值 >> year=[1900,1910,1920,1930,1940,1990,2000,2010]; >> product = [75.995,91.972,105.711,123.203,131.669,249.633,256.344,267.893 ]; >> p2005=interp1(year,product,2005) p2005 = 262.1185 >> y= interp1(year,product,x, 'cubic'); >> plot(year,product,'o',x,y)

插值算法与matlab代码

Matlab中插值函数汇总和使用说明 MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method') 其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量,'method'表示采用的插值方法,MA TLAB提供的插值方法有几种:'method'是最邻近插值,'linear'线性插值;'spline'三次样条插值;'cubic'立方插值.缺省时表示线性插值 注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。 例如:在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为12,9,9,10,18 ,24,28,27,25,20,18,15,13, 推测中午12点(即13点)时的温度. x=0:2:24; y=[12 9 9 10 18 24 28 27 25 20 18 15 13]; a=13; y1=interp1(x,y,a,'spline') 结果为:27.8725 若要得到一天24小时的温度曲线,则: xi=0:1/3600:24; yi=interp1(x,y,xi, 'spline'); plot(x,y,'o' ,xi,yi) 命令1 interp1 功能一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。其中函数f(x)由所给数据决定。 x:原始数据点 Y:原始数据点

xi:插值点 Yi:插值点 格式 (1)yi = interp1(x,Y,xi) 返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y 的内插值决定。参量x 指定数据Y 的点。 若Y 为一矩阵,则按Y 的每列计算。yi 是阶数为length(xi)*size(Y,2)的输出矩阵。 (2)yi = interp1(Y,xi) 假定x=1:N,其中N 为向量Y 的长度,或者为矩阵Y 的行数。 (3)yi = interp1(x,Y,xi,method) 用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算; ’linear’:线性插值(缺省方式),直接完成计算; ’spline’:三次样条函数插值。对于该方法,命令interp1 调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函数。命令spline 用它们执行三次样条函数插值; ’pchip’:分段三次Hermite 插值。对于该方法,命令interp1 调用函数pchip,用于对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形; ’cubic’:与’pchip’操作相同; ’v5cubic’:在MATLAB 5.0 中的三次插值。 对于超出x 范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1 将对超出的分量执行外插值算法。 (4)yi = interp1(x,Y,xi,method,'extrap') 对于超出x 范围的xi 中的分量将执行特殊的外插值法extrap。 (5)yi = interp1(x,Y,xi,method,extrapval) 确定超出x 范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。 例1 1. 2.>>x = 0:10; y = x.*sin(x); 3.>>xx = 0:.25:10; yy = interp1(x,y,xx); 4.>>plot(x,y,'kd',xx,yy) 复制代码 例2 1. 2.>> year = 1900:10:2010; 3.>> product = [75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505 4.249.633 256.344 267.893 ]; 5.>>p1995 = interp1(year,product,1995) 6.>>x = 1900:1:2010; 7.>>y = interp1(year,product,x,'pchip'); 8.>>plot(year,product,'o',x,y) 复制代码 插值结果为: 1.

用多项式模型进行数据拟合实验报告(附代码)

实验题目: 用多项式模型进行数据拟合实验 1 实验目的 本实验使用多项式模型对数据进行拟合,目的在于: (1)掌握数据拟合的基本原理,学会使用数学的方法来判定数据拟合的情况; (2)掌握最小二乘法的基本原理及计算方法; (3)熟悉使用matlab 进行算法的实现。 2 实验步骤 2.1 算法原理 所谓拟合是指寻找一条平滑的曲线,最不失真地去表现测量数据。反过来说,对测量 的实验数据,要对其进行公式化处理,用计算方法构造函数来近似表达数据的函数关系。由于函数构造方法的不同,有许多的逼近方法,工程中常用最小平方逼近(最小二乘法理论)来实现曲线的拟合。 最小二乘拟合利用已知的数据得出一条直线或曲线,使之在坐标系上与已知数据之间的距离的平方和最小。模型主要有:1.直线型2.多项式型3.分数函数型4.指数函数型5.对数线性型6.高斯函数型等,根据应用情况,选用不同的拟合模型。其中多项式型拟合模型应用比较广泛。 给定一组测量数据()i i y x ,,其中m i ,,3,2,1,0Λ=,共m+1个数据点,取多项式P (x ),使得 min )]([020 2=-=∑∑==m i i i m i i y x p r ,则称函数P (x )为拟合函数或最小二乘解,此时,令 ∑==n k k k n x a x p 0 )(,使得min ])([02 002=??? ? ??-=-=∑∑∑===m i n k i k i k m i i i n y x a y x p I ,其中 n a a a a ,,,,210Λ为待求的未知数,n 为多项式的最高次幂,由此该问题化为求),,,(210n a a a a I I Λ=的极值问题。 由多元函数求极值的必要条件:0)(200 =-=??∑∑==m i j i n k i k i k i x y x a a I ,其中n j ,,2,1,0Λ= 得到: ∑∑∑===+=n k m i i j i k m i k j i y x a x )(,其中n j ,,2,1,0Λ=,这是一个关于n a a a a ,,,,210Λ的线 性方程组,用矩阵表示如下所示:

相关文档
相关文档 最新文档