插值函数使用详细介绍

插值函数使用详细介绍
插值函数使用详细介绍

Matlab中插值函数汇总和使用说明

MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method') 其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量,'method'表示采用的插值方法,MATLAB提供的插值方法有几种:'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.

2.p1995 =

3.252.9885

复制代码

命令2 interp2

功能二维数据内插值(表格查找)

格式

(1)ZI = interp2(X,Y,Z,XI,YI)

返回矩阵ZI,其元素包含对应于参量XI 与YI(可以是向量、或同型矩阵)的元素,即Zi(i,j) ←[Xi(i,j),yi(i,j)]。用户可以输入行向量和列向量Xi 与Yi,此时,输出向量Zi 与矩阵meshgrid(xi,yi)是同型的。同时取决于由输入矩阵X、Y 与Z 确定的二维函数Z=f(X,Y)。参量X 与Y 必须是单调的,且相同的划分格式,就像由命令meshgrid 生成的一样。若Xi与Yi 中有在X 与Y范围之外的点,则相应地返回nan(Not a Number)。

(2)ZI = interp2(Z,XI,YI)

缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一种情形进行计算。

(3)ZI = interp2(Z,n)

作n 次递归计算,在Z 的每两个元素之间插入它们的二维插值,这样,Z 的阶数将不断增加。interp2(Z)等价于interp2(z,1)。

(4)ZI = interp2(X,Y,Z,XI,YI,method)

用指定的算法method 计算二维插值:

’linear’:双线性插值算法(缺省算法);

’nearest’:最临近插值;

’spline’:三次样条插值;

’cubic’:双三次插值。

例3:

1.

2.>>[X,Y] = meshgrid(-3:.25:3);

3.>>Z = peaks(X,Y);

4.>>[XI,YI] = meshgrid(-3:.125:3);

5.>>ZZ = interp2(X,Y,Z,XI,YI);

6.>>surfl(X,Y,Z);hold on;

7.>>surfl(XI,YI,ZZ+15)

8.>>axis([-3 3 -3 3 -5 20]);shading flat

9.>>hold off

复制代码

例4:

1.

2.>>years = 1950:10:1990;

3.>>service = 10:10:30;

4.>>wage = [150.697 199.592 187.625

5.179.323 195.072 250.287

6.203.212 179.092 322.767

7.226.505 153.706 426.730

8.249.633 120.281 598.243];

9.>>w = interp2(service,years,wage,15,1975)

复制代码

插值结果为:

1.

2.w =

3.190.6288

复制代码

命令3 interp3

功能三维数据插值(查表)

格式

(1)VI = interp3(X,Y,Z,V,XI,YI,ZI)

找出由参量X,Y,Z决定的三元函数V=V(X,Y,Z)在点(XI,YI,ZI)的值。参量XI,YI,ZI 是同型阵列或向量。若向量参量XI,YI,ZI 是不同长度,不同方向(行或列)的向量,这时输出参量VI 与Y1,Y2,Y3 为同型矩阵。其中Y1,Y2,Y3 为用命令meshgrid(XI,YI,ZI)生成的同型阵列。若插值点(XI,YI,ZI)中有位于点(X,Y,Z)之外的点,则相应地返回特殊变量值NaN。

(2)VI = interp3(V,XI,YI,ZI)

缺省地,X=1:N ,Y=1:M,Z=1:P ,其中,[M,N,P]=size(V),再按上面的情形计算。

(3)VI = interp3(V,n)

作n 次递归计算,在V 的每两个元素之间插入它们的三维插值。这样,V 的阶数将不断增加。interp3(V)等价于interp3(V,1)。

(4)VI = interp3(......,method) %用指定的算法method 作插值计算:

‘linear’:线性插值(缺省算法);

‘cubic’:三次插值;

‘spline’:三次样条插值;

‘nearest’:最邻近插值。

说明在所有的算法中,都要求X,Y,Z 是单调且有相同的格点形式。当X,Y,Z 是等距且单调时,用算法’*linear’,’*cubic’,’*nearest’,可得到快速插值。

例5

1.

2.>>[x,y,z,v] = flow(20);

3.>>[xx,yy,zz] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);

4.>>vv = interp3(x,y,z,v,xx,yy,zz);

5.>>slice(xx,yy,zz,vv,[6 9.5],[1 2],[-2 .2]); shading interp;colormap cool

复制代码

命令4 interpft

功能用快速Fourier 算法作一维插值

格式

(1)y = interpft(x,n)

返回包含周期函数x 在重采样的n 个等距的点的插值y。若length(x)=m,且x 有采样间隔dx,则新的y 的采样间隔dy=dx*m/n。注意的是必须n≥m。若x 为一矩阵,则按x 的列进行计算。返回的矩阵y 有与x 相同的列数,但有n 行。

(2)y = interpft(x,n,dim)

沿着指定的方向dim 进行计算

命令5 griddata

功能数据格点

格式

(1)ZI = griddata(x,y,z,XI,YI)

用二元函数z=f(x,y)的曲面拟合有不规则的数据向量x,y,z。griddata 将返回曲面z 在点

(XI,YI)处的插值。曲面总是经过这些数据点(x,y,z)的。输入参量(XI,YI)通常是规则的格点(像用命令meshgrid 生成的一样)。XI 可以是一行向量,这时XI 指定一有常数列向量的矩阵。类似地,YI 可以是一列向量,它指定一有常数行向量的矩阵。

(2)[XI,YI,ZI] = griddata(x,y,z,xi,yi)

返回的矩阵ZI 含义同上,同时,返回的矩阵XI,YI 是由行向量xi 与列向量yi 用命令meshgrid 生成的。

(3)[XI,YI,ZI] = griddata(.......,method)

用指定的算法method 计算:

‘linear’:基于三角形的线性插值(缺省算法);

‘cubic’:基于三角形的三次插值;

‘nearest’:最邻近插值法;

‘v4’:MATLAB 4 中的griddata 算法。

命令6 spline

功能三次样条数据插值

格式

(1)yy = spline(x,y,xx)

对于给定的离散的测量数据x,y(称为断点),要寻找一个三项多项式y = p(x) ,以逼近每对数据(x,y)点间的曲线。过两点(xi, yi) 和(xi+1, yi+1) 只能确定一条直线,而通过一点的三次多项式曲线有无穷多条。为使通过中间断点的三次多项式曲线具有唯一性,要增加两个条件(因为三次多项式有4 个系数):

a.三次多项式在点(xi, yi) 处有:p¢i(xi) = p¢i(xi) ;

b.三次多项式在点(xi+1, yi+1) 处有:p¢i(xi+1) = pi¢(xi+1) ;

c.p(x)在点(xi, yi) 处的斜率是连续的(为了使三次多项式具有良好的解析性,加上的条件);d.p(x)在点(xi, yi) 处的曲率是连续的;

对于第一个和最后一个多项式,人为地规定如下条件:

①.p¢1¢(x) = p¢2¢(x)

②.p¢n¢(x) = p¢n¢-1(x)

上述两个条件称为非结点(not-a-knot)条件。综合上述内容,可知对数据拟合的三次样条函数p(x)是一个分段的三次多项式:

ï ïî

ï ïí

ì

£ £

£ £

£ £

=

n n n+1

2 2 3

1 1 2

p (x) x x x

p (x) x x x

p (x) x x x

p(x)

L L L L

其中每段pi(x) 都是三次多项式。

该命令用三次样条插值计算出由向量x 与y 确定的一元函数y=f(x)在点xx 处的值。若参量y 是一矩阵,则以y 的每一列和x 配对,再分别计算由它们确定的函数在点xx 处的值。则yy 是一阶数为length(xx)*size(y,2)的矩阵。

(2)pp = spline(x,y)

返回由向量x 与y 确定的分段样条多项式的系数矩阵pp,它可用于命令ppval、unmkpp 的计算。

例6

对离散地分布在y=exp(x)sin(x)函数曲线上的数据点进行样条插值计算:

1.

2.>>x = [0 2 4 5 8 12 12.8 17.2 19.9 20]; y = exp(x).*sin(x);

3.>>xx = 0:.25:20;

4.>>yy = spline(x,y,xx);

5.>>plot(x,y,'o',xx,yy)

复制代码

命令7 interpn

功能n 维数据插值(查表)

格式

(1)VI = interpn(X1,X2,,,Xn,V,Y1,Y2,?,Yn) %返回由参量X1,X2,…,Xn,V 确定的n 元函数V=V(X1,X2,…,Xn)在点(Y1,Y2,…,Yn)处的插值。参量Y1,Y2,…,Yn 是同型的矩阵或向量。若Y1,Y2,…,Yn 是向量,则可以

是不同长度,不同方向(行或列)的向量。它们将通过命令ndgrid生成同型的矩阵,再作计算。若点(Y1,Y2,…,Yn) 中有位于点(X1,X2,…,Xn)之外的点,则相应地返回特殊变量NaN。VI = interpn(V,Y1,Y2,?,Yn) %缺省地,X1=1:size(V,1),X2=1:size(V,2),… ,

Xn=1:size(V,n),再按上面的情形计算。

VI = interpn(V,ntimes) %作ntimes 次递归计算,在V 的每两个元素之间插入它们的n 维插值。这样,V 的阶数将不断增加。interpn(V)

等价于interpn(V, 1)。

VI = interpn(?,method) %用指定的算法method 计算:

‘linear’:线性插值(缺省算法);

‘cubic’:三次插值;

‘spline’:三次样条插值法;

‘nearest’:最邻近插值算法。

命令8 meshgrid

功能生成用于画三维图形的矩阵数据。

格式[X,Y] = meshgrid(x,y) 将由向量x,y(可以是不同方向的)指定的区域[min(x),max(x) ,min(y) ,max(y)] 用直线x=x(i),y=y(j) (i=1,2,…,length(x) ,

j=1,2,…,length(y))进行划分。这样,得到了length(x)*length(y)个点,

这些点的横坐标用矩阵X 表示,X 的每个行向量与向量x 相同;这些点的纵坐标用矩阵Y 表示,Y 的每个列向量与向量y 相同。其中X,Y可用于计算二元函数z=f(x,y)与三维图形中xy 平

面矩形定义域的划分或

曲面作图。

[X,Y] = meshgrid(x) %等价于[X,Y]=meshgrid(x,x)。

[X,Y,Z] = meshgrid(x,y,z) %生成三维阵列X,Y,Z,用于计算三元函数v=f(x,y,z)或三维容积图。

例7

1.[X,Y] = meshgrid(1:3,10:14)

复制代码

计算结果为:

1.X =

2. 1 2 3

3. 1 2 3

4. 1 2 3

5. 1 2 3

6. 1 2 3

7.Y =

8.10 10 10

9.11 11 11

10.12 12 12

11.13 13 13

12.14 14 14

复制代码

命令9 ndgrid功能生成用于多维函数计算或多维插值用的阵列

格式[X1,X2,…,Xn] = ndgrid(x1,x2,…,xn) %把通过向量x1,x2,x3…,xn 指定的区域转换为数组x1,x2,x3,…,xn 。这样,得到了length(x1)*length(x2)*…*length(xn)个点,这些点的第一维坐标用矩阵X1 表

示,X1 的每个第一维向量与向量x1 相同;这些点的第二维坐标用矩阵X2 表示,X2 的每个第二维向量与向量x2 相同;如此等等。

其中X1,X2,...,Xn 可用于计算多元函数y=f(x1,x2,...,xn)以及多维插值命令用到的阵列。[X1,X2,...,Xn] = ndgrid(x) %等价于[X1,X2,...,Xn] = ndgrid(x,x, (x)

命令10 table1

功能一维查表

格式Y = table1(TAB,X0) %返回用表格矩阵TAB 中的行线性插值元素,对X0(TAB的第一列查找X0)进行线性插值得到的结果Y。矩阵TAB 是第一列包含

关键值,而其他列包含数据的矩阵。X0 中的每一元素将相应地返回一线性插值行向量。矩阵TAB 的第一列必须是单调的。

例8

1.

2.>>tab = [(1:4)' hilb(4)]

3.>>y = table1(tab,[1 2.3 3.6 4])

复制代码

查表结果为:

1.

2.>>tab = [(1:4)' hilb(4)]

3.>>y = table1(tab,[1 2.3 3.6 4])

样条插值函数与应用

样条插值函数及应用

摘要 样条函数具有广泛的应用,是现代函数论的一个十分活跃的分支,是计算方法的主要基础和工具之一,由于生产和科学技术向前发展的推动以及电子计算机广泛应用的需要,人们便更多地应用这个工具,也更深刻的认识了它的本质。 在实际问题中所遇到许多函数往往很复杂,有些甚至是很难找到解析表达式的。根据函数已有的数据来计算函数在一些新的点处的函数值,就是插值法所需要解决的问题。 插值法是数值逼近的重要方法之一,它是根据给定的自变量值和函数值,求取未知函数的近似值。早在一千多年前,我国科学家就在研究历法时就用到了线性插值和二次插值。而在实际问题中,有许多插值函数的曲线要求具有较高的光滑性,在整个曲线中,曲线不但不能有拐点,而且曲率也不能有突变。因此,对于插值函数必须二次连续可微且不变号 ,这就需要用到三次样条插值。 关键词三次样条函数;插值法

目录 引言 0 第一章三次样条插值 (1) 1.1 样条插值函数简介 (1) 1.2 三次样条函数应用 (2) 第二章AMCM91A 估计水塔水流量 (4) 2.1 理论分析及计算 (5) 2.2运用MATLAB软件计算 (8) 参考文献 (13)

引言 样条函数具有广泛的应用,是现代函数论的一个十分活跃的分支,是计算方法的主要基础和工具之一,由于生产和科学技术向前发展的推动以及电子计算机广泛应用的需要,人们便更多地应用这个工具,也更深刻的认识了它的本质。上世纪四十年代,在研究数据处理的问题中引出了样条函数,例如,在1946年Schoenberg将样条引入数学,即所谓的样条函数,直到五十年代,还多应用于统计数据的处理方面,从六十年代起,在航空、造船、汽车等行业中,开始大量采用样条函数。 在我国,从六十年代末开始,从船体数学放样到飞机外形设计,逐渐出现了一个使用样,逐渐出现了一个使用样条函数的热潮,并推广到数据处理的许多问题中。 在实际生活中有许多计算问题对插值函数的光滑性有较高的要求,例如飞机机翼外形、发动机进、排气口都要求有连续的二阶导数,用三次样条绘制的曲线不仅有很好的光滑度,而且当节点逐渐加密时其函数值整体上能很好地逼近被插函数,相应的导数值也收敛于被插函数的导数值,不会发生“龙格现象”。 现在国内外学者对这方面的研究也越来越重视,根据我们的需要来解决不同的问题,而且函数的形式也在不断地改进,长期以来很多学者致力于样条插值的研究,对三次样条的研究已相当成熟。

计算方法 课内实验 插值法与函数逼近

《计算方法》课内实验报告 学生姓名:张学阳1009300132 及学号: 学院: 理学院 班级: 数学101 课程名称:计算方法 实验题目:插值法与函数逼近 指导教师 宋云飞讲师 姓名及职称: 朱秀丽讲师 尚宝欣讲师 2012年10月15日

目录 一、实验题目.......................................................... 错误!未定义书签。 二、实验目的.......................................................... 错误!未定义书签。 三、实验内容.......................................................... 错误!未定义书签。 四、实现结果.......................................................... 错误!未定义书签。 五、实验体会或遇到问题 (6)

插值法与函数逼近 二、实验目的 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解插值法及函数逼近方法的理论基础。 3.进一步掌握给定数据后应用插值法及函数逼近方法进行数据处理并给出图示结果的实际操作过程。 三、实验内容 1.已知函数在下列各点的值为 试用4次牛顿插值多项式)(4x P 及三次样条函数)(x S (自然边界条件)对数据进行插值。给出求解过程,并用图给出 (){},10,1,0),()(,08.02.0,,4 ===+=i x S y x P y i x y x i i i i i 及。 2.下列数据点的插值 可以得到平方根函数的近似。 (1)用这9个点作8次多项式插值)(8x L 。 (2)用三次样条(第一类边界条件)插值给出)(x S 。 给出求解过程,在区间[0,64]上作图,从得到的结果看,在区间[0,64]上哪种插值结果更精确?在区间[0,1]上两种插值哪个更精确? 3.由实验给出数据表 试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线。给出求解过程,用图表示实验数据曲线及三种拟合曲线。

Lagrange插值基函数构造插值多项式

数学与软件科学学院实验报告 学期:至第学期年月日 课程名称:___计算机数值方法___ 专业: 级班 实验编号:1 实验项目一次、二次Lagrange 插值多项式指导教师__张莉_ 姓名:学号:实验成绩: 一、实验目的及要求 实验目的:体会使用Lagrange插值基函数构造插值多项式的特点,熟悉使用一次或二次Lagrange插值多项式近似函数y=f(x)的算法。掌握Lagrange插值多项式近似函数f(x)的误差表达式,并会熟练应用。 实验要求: 1. 给出一次、二次Lagrange插值算法 2. 用C语言实现算法 3. 给出误差分析。 二、实验内容 用下列插值节点数据,构造一次和二次Lagrange插值多项式,并计 三、实验步骤(该部分不够填写.请填写附页) 步骤一:用为代码描述lagrange插值多项式的算法 Step 1:输入:插值节点控制数n,插值点序列(xi,yi),i=0,1,…n,要计算的函数点x. Step 2: for j=0 to n { { for j=0 to n 对于给定的x,计算lagrange基函数li(x) 然后求tmp=tmp*(x-xj)/(xi-xj); } fx=fx+tmp*yi; } Step 3:输出结果。 步骤二:编辑程序如下:

#include #define MAX_N 3 // 定义点的最大维数 typedef struct tagPOINT /*the structer of point */ { double x; double y; }POINT; //点的结构 int main() { int n,i,j; POINT points[MAX_N+1]; double tmp=1.0; double x; double lagrange=0.0; clrscr(); printf("\nInput n value :"); /*the number of the points inserted*/ scanf("%d",&n); //输入被插值点的个数 if(n>MAX_N) { printf("The input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("Please input a number between 1 and %d.\n",MAX_N); } printf("Now input the (x_i,y_i),i=0,...%d:\n",n); for(i=0;i<=n;i++) scanf("%lf %lf",&points[i].x,&points[i].y); //输入被插值点 printf("Now input the x value:"); /*the value of x*/ scanf("%lf",&x); //输入待求的点的第一个分量 for(i=0;i<=n;i++) { for(j=0;j<=n && j!=i;j++) tmp*=(x-points[j].x)/(points[i].x-points[j].x); lagrange+=tmp*points[i].y; } //用lagrange来求多项式 printf("the results is %lf",lagrange);

对样条函数及其插值问题的一点认识

对样条函数及其插值问题的一点认识 样条函数是计算数学以及计算机辅助设计几何设计的重要工具。1946年,I. J. Schoenberg 著名的关于一元样条函数的奠定性论文“Contribution to the problem of application of equidistant data by analytic functions ”发表,建立了一元样条函数的理论基础。自此以后,关于样条函数的研究工作逐渐深入。随着电子计算机技术的不断进步,样条函数的理论以及应用研究得到迅速的发展和广泛的应用。经过数学工作者的努力,已经形成了较为系统的理论体系。 所谓(多项式)样条函数,乃指具有一定光滑性的分段(分片)多项式。一元n 次且n -1阶连续可微的样条函数具有如下的表示式: 1()()()()N n n j j j s x p x c x x x +==+--∞<<+∞∑[] 011,00,01,,...,,(1),...,(),,...,,n n n n N n N N u un u u u u x x x x x S x x x x ++++ +≥??=??

实验四插值法

实验四、插值法 插值法是函数逼近的一种重要方法,它是数值积分、微分方程数值解等数值计算的基础与工具,其中多项式插值是最常用和最基本的方法。拉格朗日插值多项式的优点是表达式简单明确,形式对称,便于记忆,它的缺点是如果想要增加插值节点,公式必须整个改变,这就增加了计算工作量。而牛顿插值多项式对此做了改进,当增加一个节点时只需在原牛顿插值多项式基础上增加一项,此时原有的项无需改变,从而达到节省计算次数、节约存储单元、应用较少节点达到应有精度的目的。 一、实验目的 1、理解插值的基本概念,掌握各种插值方法,包括拉格朗日插值和牛顿插值等,注意其不同特点; 2、通过实验进一步理解并掌握各种插值的基本算法。 二、Matlab命令和程序 命令poly:创建一个向量,其分量为一个多项式的系数,该多项式具有给定的根。 命令polyval:求多项式的值, 命令 conv: 创建一个向量,其分量为一个多项式的系数,该多项式是另外两个多项式的积 polyval(C,2> >> P=poly(2> P=1 -2

Q=poly(3> Q=1 -3 >> conv(P,Q> ans= 1 -5 6 >> polyval(P,2> ans= 1、拉格朗日插值( 基于N+1个点,计算拉格朗日多项式> function [C,L]=lagran(X,Y> %input --X is a vector that contains a list of abscissasb5E2RGbCAP % Y is a vector that contains a list of ordinatesp1EanqFDPw %output--C is a matrix that contains the coefficient of the lagraneDXDiTa9E3d % interplatory polynomial % -- L is a matrix that contains the Lagrange coefficent polynomialsRTCrpUDGiT w=length(X>。 n=w-1。

数学函数的发展史

总课题:数学的发展史 子课题:函数的发展史 一、组长:李 组员:刘田仁姬孙二、指导老师:张

三、班级:高一12班 四、成员简介: 李:性格开朗、刻苦认真担任组长 刘:喜欢英语、大方担任搜集 仁:喜欢信息、刻苦认真担任写作 姬:开朗大方、热情担任搜集 孙:爱好动漫、画画性格外向担任整理 田:开朗大方刻苦认真担任整理 五、选题的原因: 开阔视野,增长见识。提高我们的数学修养‘可以使我们更好的融合在一起,加强团结,了解数学。 六:研究计划: 共六人:姬刘担任搜集 李仁担任写作 孙田整理资料 七:研究成果: 历史表明,重要数学概念对数学发展的作用是不可估量的,函数概念对数学发展的影响,可以说是贯穿古今、旷日持久、作用非凡,回顾函数概念的历史发展,看一看函数概念不断被精炼、深化、丰富的历史过程,是一件十分 有益的事情,它不仅有助于我们提高对函数概念来龙去脉认识的清晰度,而且更能帮助我们领悟数学概念对数学发展,数学学习的巨大作用. (一)1.早期函数概念——几何观念下的函数 十七世纪伽俐略(G.Galileo,意,1564-1642)在《两门新科学》一书中,几乎全部包含函数或称为变量关系的这一概念,用文字和比例的语言表达函数的关系。1673年前后笛卡尔(Descartes,法,1596-1650)在他的解析几何中,已注意到一个变量对另一个变量的依赖关系,但因当时尚未意识到要提炼函数概念,因此直到17世纪后期牛顿、莱布尼兹建立微积分时还没有人明确函数的一般意义,大部分函数是被当作曲线来研究的。 马克思曾经认为,函数概念来源于代数学中不定方程的研究.由于罗马时代的丢番图对不定方程已有相当研究,所以函数概念至少在那时已经萌芽.自哥白尼的天文学革命以后,运动就成了文艺复兴时期科学家共同感兴趣的问题,人们在思索:既然地球不是宇宙中心,它本身又有自转和公转,那么下降的物体为什么不发生偏斜而还要垂直下落到地球上?行星运行的轨道是椭圆,原理是什么?还有,研究在地球表面上抛射物体的路线、射程和所能达到的高度,以及炮弹速度对于高度和射程的影响等问题,既是科学家的力图解决的问题,也是军事家要求解决的问题,函数概念就是从运动的研究中引申出的一个数学概念,这是函数概念的力学来源.

五种插值法的对比研究---开题报告

五种插值法的对比研究 1. 选题依据 1.1 选题背景 插值法是一种古老的数学方法,插值法历史悠久。据考证,在公元六世纪时, 我国焯(zhuo) 已经把等距二次插值法应用于天文计算。十七世纪时,Newton 和 Gregory(格雷格里) 建立了等距节点上的一般插值公式,十八世纪时,Lagrange(拉格朗日) 给出了更一般的非等距节点插值公式。 而它的基本理论是在微积分产生以后逐渐完善的,它的实际应用也日益增多,特别是在计算机工程中。许多库函数的计算实际上归结于对逼近函数的计算。 1.2 研究的目的和意义 插值法是数值分析中最基本的方法之一。 在实际问题中碰到的函数是各种各样的,有的甚至给不出表达式,只提供了一些离散数据,例如,在查对数表时, 要查的数据在表中找不到,就先找出它相邻的数,再从旁边找出它的修正值, 按一定关系把相邻的数加以修正,从而找出要找的数,这种修正关系实际上就是一种插值。 在实际应用中选用不同类型的插值函数,逼近的效果也不同。在数值计算方法中,我们学习过五种基本的插值方法,即Lagrange 插值、Newton 插值、分段线性插值、分段三次Hermite 插值、样条插值函数。所以通过从这五种插值法的基本思想、特征、性质和具体实例入手,探讨五种插值法的优缺点和适用围,让学习者能够迅速而准确的解决实际问题,掌握插值法的应用。 2. 研究的方法 从具体实例入手并结合Matlab 在科学计算中的优势,通过实验对它们的精度和效率进行比较分析。 3. 论文结构 3.1 论文的总体结构 第一部分 导言 主要介绍选题的背景、目的及意义、研究现状、文献综述等。 第二部分 五种插值法的基本思想、性质及特点 在数值计算方法中,插值法是计算方法的基础,数值微分、数值积分和微分方程数值解都建立在此基础上。 插值问题的提法是:已知f(x)(可能未知或非常复杂函数)在彼此不同的n+1 个实点0x ,1x ,…n x 处的函数值是f(0x ),f(1x ),…,f(n x ),这时我们简单的说f(x)有n+1 个 离散数据对0n i i )}y ,{(x i .要估算f(x)在其它点x 处的函数值,最常见的一种办法就是插值, 即寻找一个相对简单的函数y(x),使其满足下列插值条件:y(i x )=f(i x ),i=0,1,…,n.,并以y(x)作为f(x)的近似值.其中y(x)称为插值函数,f(x)称为被插函数。

Matlab中插值函数汇总和使用说明.

告: Matlab中插值函数汇总和使用说明收藏 命令1 interp1 功能一维数据插值(表格查找。该命令对数据点之间计算内插值。它找出一元函数f(x在中间点的数值。其中函数f(x由所给数据决定。x:原始数据点 Y:原始数据点 xi:插值点 Yi:插值点 格式 (1yi = interp1(x,Y,xi 返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y 的内插值决定。参量x 指定数据Y 的点。 若Y 为一矩阵,则按Y 的每列计算。yi 是阶数为length(xi*size(Y,2的输出矩阵。 (2yi = interp1(Y,xi 假定x=1:N,其中N 为向量Y 的长度,或者为矩阵Y 的行数。 (3yi = interp1(x,Y,xi,method 用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算; ’linear’:线性插值(缺省方式,直接完成计算;

’spline’:三次样条函数插值。对于该方法,命令interp1 调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函 数。命令spline 用它们执行三次样条函数插值; ’pchip’:分段三次Hermite 插值。对于该方法,命令interp1 调用函数p chip,用于对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形; ’cubic’:与’pchip’操作相同; ’v5cubic’:在MATLAB 5.0 中的三次插值。 对于超出x 范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1 将对超出的分量执行外插值算法。 (4yi = interp1(x,Y,xi,method,'extrap' 对于超出x 范围的xi 中的分量将执行特殊的外插值法extrap。 (5yi = interp1(x,Y,xi,method,extrapval 确定超出x 范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。 例1 1.>>x = 0:10; y = x.*sin(x; 2.>>xx = 0:.25:10; yy = interp1(x,y,xx; 3.>>plot(x,y,'kd',xx,yy 复制代码 例2 1.>> year = 1900:10:2010;

插值法实验报告

实验二插值法 1、实验目的: 1、掌握直接利用拉格郎日插值多项式计算函数在已知点的函数值;观察拉格郎日插值的龙格现象。 2、了解Hermite插值法、三次样条插值法原理,结合计算公式,确定函数值。 2、实验要求: 1)认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法; 2)编写上机实验程序,作好上机前的准备工作; 3)上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果); 4)分析和解释计算结果; 5)按照要求书写实验报告; 3、实验内容: 1) 用拉格郎日插值公式确定函数值;对函数f(x)进行拉格郎日插值,并对f(x)与插值多项式的曲线作比较。 已知函数表:(0.56160,0.82741)、(0.56280,0.82659)、(0.56401,0.82577)、(0.56521,0.82495)用三次拉格朗日插值多项式求x=0.5635时函数近似值。 2) 求满足插值条件的插值多项式及余项 1) 4、题目:插值法 5、原理: 拉格郎日插值原理: n次拉格朗日插值多项式为:L n (x)=y l (x)+y 1 l 1 (x)+y 2 l 2 (x)+…+y n l n (x)

n=1时,称为线性插值, L 1(x)=y (x-x 1 )/(x -x 1 )+y 1 (x-x )/(x 1 -x )=y +(y 1 -x )(x-x )/(x 1 -x ) n=2时,称为二次插值或抛物线插值, L 2(x)=y (x-x 1 )(x-x 2 )/(x -x 1 )/(x -x 2 )+y 1 (x-x )(x-x 2 )/(x 1 -x )/(x 1 -x 2 )+y 2 (x -x 0)(x-x 1 )/(x 2 -x )/(x 2 -x 1 ) n=i时, Li= (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) 6、设计思想: 拉格朗日插值法是根据n + 1个点x0, x1, ... x n(x0 < x1 < ... x n)的函数值f (x0), f (x1) , ... , f (x n)推出n次多項式p(x),然后n次多項式p (x)求出任意的点x对应的函数值f (x)的算法。 7、对应程序: 1 ) 三次拉格朗日插值多项式求x=0.5635时函数近似值 #include"stdio.h" #define n 5 void main() { int i,j; float x[n],y[n]; float x1; float a=1; float b=1; float lx=0; printf("\n请输入想要求解的X:\n x="); scanf("%f",&x1); printf("请输入所有点的横纵坐标:\n"); for(i=1;i

三次样条插值方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

三次样条插值方法的应用 一、问题背景 分段低次插值函数往往具有很好的收敛性,计算过程简单,稳定性好,并且易于在在电子计算机上实现,但其光滑性较差,对于像高速飞机的机翼形线船体放样等型值线往往要求具有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(即所谓的样条)用压铁固定在样点上,在其他地方让他自由弯曲,然后沿木条画下曲线,称为样条曲线。样条曲线实际上是由分段三次曲线并接而成,在连接点即样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。下面我们讨论最常用的三次样条函数及其应用。 二、数学模型 样条函数可以给出光滑的插值曲线(面),因此在数值逼近、常微分方程和偏微分方程的数值解及科学和工程的计算中起着重要的作用。 设区间[]b ,a 上给定有关划分b x x n =<<<= 10x a ,S 为[]b ,a 上满足下面条件的函数。 ● )(b a C S ,2∈; ● S 在每个子区间[]1,+i i x x 上是三次多项式。 则称S 为关于划分的三次样条函数。常用的三次样条函数的边界条件有三种类型: ● Ⅰ型 ()()n n n f x S f x S ''0'',==。 ● Ⅱ型 ()()n n n f x S f x S ''''0'''',==,其特殊情况为()()0''''==n n x S x S 。 ● Ⅲ型 ()() 3,2,1,0,0==j x S x S n j j ,此条件称为周期样条函数。 鉴于Ⅱ型三次样条插值函数在实际应用中的重要地位,在此主要对它进行详细介绍。 三、算法及流程 按照传统的编程方法,可将公式直接转换为MATLAB 可是别的语言即可;另一种是运用矩阵运算,发挥MATLAB 在矩阵运算上的优势。两种方法都可以方便地得到结果。方法二更直观,但计算系数时要特别注意。这里计算的是方法一的程序,采用的是Ⅱ型边界条件,取名为spline2.m 。 Matlab 代码如下: function s=spline2(x0,y0,y21,y2n,x) %s=spline2(x0,y0,y21,y2n,x) %x0,y0 are existed points,x are insert points,y21,y2n are the second

数学函数的发展历史

数学函数的发展历史 2011届汕头一中高二(10)班 翁晓璇关键词:函数,概念,发展,意义 背景: 数学史表明,重要的数学概念的产生和发展,对数学发展起着不可估量的作用,有些重要的数学概念对数学分支的产生起着奠定性的作用.我们刚学过的函数就是这样的重要概念.而函数的发展历史是怎样的呢?为了更多地了解数学函数,我选择了这个研究性课题. 意义: 在笛卡尔引入变量以后,变量和函数等概念日益渗透到科学技术的各个领域.纵览宇宙,运算天体,探索热的传导,揭示电磁秘密,这些都和函数概念息息相关.正是在这些实践过程中,人们对函数的概念不断深化.回顾一下函数的发展史对加深理解课堂知识、激发学习兴趣将是有益的. 正文:最早提出函数(function)概念的,是17世纪德国数学家莱布尼茨.最初莱布尼茨用摵龟一词表示幂,如x,x2,x3都叫函数.以后,他又用函数表示在直角坐标系中曲线上一点的横坐标、纵坐标. 1718年,莱布尼茨的学生、瑞士数学家贝努利把函数定义为:“由某个变量及任意的一个常数结合而成的数量.”意思是凡变量x和常量构成的式子都叫做x的函数.贝努所强调的是函数要用公式来表示. 后来数学家觉得不应该把函数概念局限在只能用公式来表达上,只要一些变量变化,另一些变量能随之而变化就可以,至于这两个变量的关系是否要用公式来表示,就不作为判别函数的标准. 1755年,瑞士数学家欧拉把函数定义为“如果某些变量:“以某一种方式依赖于另一些变量.即当后面这些变量变化时,前面这些变量也随着变化,我们把前面的变量称为后面变量的函数.”在欧拉的定义中,就不强调函数要用公式表示了.由于函数不一定要用式来表示,欧拉曾把画在坐标系的曲线也叫函数.他认为:“函数是随意画出的一条曲线。” 当时有些数学家对于不用公式来表示函数感到很不习惯,有的数学家甚至抱怀疑态度.他们把能用公式表示的函数叫“真函数”,把不能用公式表示的函数叫“假函数’. 1821年,法国数学家柯西给出了类似现在中学课本的函数定义:“在某些变数间存在着一定的关系,当一经给定其中某一变数的值,其他变数的可随着而确定时,则将最初的变数叫自变量,其他各变数叫做函数,在柯西的定义中,首先出现了自变量一词。 1834年,俄国数学家罗巴契夫斯基进一步提出函数的定义:“x的函数是这样的

数值分析(计算方法)实验一

《数值分析》 课程实验指导书 实验一 函数插值方法 一、问题提出 对于给定的一元函数)(x f y =的n+1个节点值(),0,1,,j j y f x j n == 。试用Lagrange 公式求其插值多项式或分段二次Lagrange 插值多项式。 数据如下: (1) j x 0.4 0.55 0.65 0.80 0.95 1.05 j y 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange 多项式5L ()x ,和分段三次插值多项式,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈ ) (2) j x 1 2 3 4 5 6 7 j y 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange 多项式6L ()x ,计算的(1.8)f ,(6.15)f 值。(提示:结果为(1.8)0.164762f ≈, (6.15)0.001266f ≈ ) 二、要求 1、 利用Lagrange 插值公式 00,()n n i n k k i i k k i x x L x y x x ==≠??-= ?-??∑∏编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式; 3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何; 4、 对此插值问题用Newton 插值多项式其结果如何。

四、实验分析: Lagrange 插值多项式的表达式: 1,,2,1,)()()(, )()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n i j j j i j i n i i i 。 其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。)(x l i 的这种表示具有较好的对称性。公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。 Newton 插值多项式如下: 10010,()()[,,]()k n n j k k j j k N x f x f x x x x -==≠=+?-∑∏ 其中: 00,0()()[,,]k i k i i j j j i k f x x x f x x ==≠-=∑∏ Newton 插值多项式的优点是:当每增加一个节点时,只增加一项多项式。 三、实验程序及注释 1、m 程序: function [c,l]=lagran(x,y) % x 为n 个节点的横坐标组成的向量,y 为纵坐标所组成的向量 % c 为所得插值函数的系数所组成的向量 w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if k~=j v=conv(v,poly(x(j)))/(x(k)-x(j)); end end l(k,:)=v; end c=y*l; function fi=Lagran_(x,f,xi) fi=zeros(size(xi)); n=length(f); for i=1:n

三次样条插值作业题

例1 设)(x f 为定义在[0,3]上的函数,有下列函数值表: 且2.0)('0=x f ,1)('3-=x f ,试求区间[0,3]上满足上述条件的三次样条插值函数)(x s 本算法求解出的三次样条插值函数将写成三弯矩方程的形式: ) ()6()() 6()(6)(6)(211123 13 1j j j j j j j j j j j j j j j j x x h h M y x x h h M y x x h M x x h M x s -- + -- + -+ -= +++++其中,方程中的系数 j j h M 6, j j h M 61+,j j j j h h M y )6(2- , j j j j h h M y ) 6(211++- 将由Matlab 代码中的变量Coefs_1、Coefs_2、Coefs_3以及Coefs_4的值求出。 以下为Matlab 代码: %============================= % 本段代码解决作业题的例1 %============================= clear all clc % 自变量x 与因变量y ,两个边界条件的取值 IndVar = [0, 1, 2, 3]; DepVar = [0, 0.5, 2, 1.5]; LeftBoun = 0.2; RightBoun = -1; % 区间长度向量,其各元素为自变量各段的长度 h = zeros(1, length(IndVar) - 1); for i = 1 : length(IndVar) - 1 h(i) = IndVar(i + 1) - IndVar(i); end % 为向量μ赋值

关于三次样条插值函数的学习报告(研究生)资料

学习报告—— 三次样条函数插值问题的讨论 班级:数学二班 学号:152111033 姓名:刘楠楠

样条函数: 由一些按照某种光滑条件分段拼接起来的多项式组成的函数;最常用的样条函数为三次样条函数,即由三次多项式组成,满足处处有二阶连续导数。 一、三次样条函数的定义: 对插值区间[,]a b 进行划分,设节点011n n a x x x x b -=<< <<=,若 函数2()[,]s x c a b ∈在每个小区间1[,]i i x x +上是三次多项式,则称其为三次样条函数。如果同时满足()()i i s x f x = (0,1,2)i n =,则称()s x 为()f x 在 [,]a b 上的三次样条函数。 二、三次样条函数的确定: 由定义可设:101212 1(),[,] (),[,]()(),[,] n n n s x x x x s x x x x s x s x x x x -∈??∈?=???∈?其中()k s x 为1[,]k k x x -上的三次 多项式,且满足11(),()k k k k k k s x y s x y --== (1,2,,k n = 由2()[,]s x C a b ∈可得:''''''()(),()(),k k k k s x s x s x s x -+-+== 有''1()(),k k k k s x s x -++= ''''1()(),(1 ,2,,1)k k k k s x s x k n -+ +==-, 已知每个()k s x 均为三次多项式,有四个待定系数,所以共有4n 个待定系数,需要4n 个方程才能求解。前面已经得到22(1)42n n n +-=-个方程,因此要唯一确定三次插值函数,还要附加2个条件,一般上,实际问题通常对样条函数在端点处的状态有要求,即所谓的边界条件。 1、第一类边界条件:给定函数在端点处的一阶导数,即 ''''00(),()n n s x f s x f == 2、第二类边界条件:给定函数在端点处的二阶导数,即

计算方法-插值方法实验

实验一插值方法 一. 实验目的 (1)熟悉数值插值方法的基本思想,解决某些实际插值问题,加深对数值插值方法 的理解。 (2)熟悉Matlab 编程环境,利用Matlab 实现具体的插值算法,并进行可视化显示。 二. 实验要求 用Matlab 软件实现Lagrange 插值、分段线性插值、三次Hermite 插值、Aitken 逐步插值算法,并用实例在计算机上计算和作图。 三. 实验内容 1. 实验题目 (1 ) 已 知概 率积 分dx e y x x ?-= 2 2 π 的数据表 构造适合该数据表的一次、二次和三次Lagrange 插值公式,输出公式及其图形,并计算x =0.472时的积分值。 答: ①一次插值公式: 输入下面内容就可以得到一次插值结果 >> X=[0.47,0.48];Y=[0.4937452,0.5027498]; >> x=0.472; >> (x-X(2))/(X(1)-X(2))*Y(1)+(x-X(1))/(X(2)-X(1))*Y(2) ans =0.495546120000000 >> ②两次插值公式为: 输入下面内容就可以得到两次插值结果 >> X=[0.46,0.47,0.48];Y=[0.4846555,0.4937452,0.5027498]; >> x=0.472; >>(x-X(2))*(x-X(3))/((X(1)-X(2))*(X(1)-X(3)))*Y(1)+(x-X(1))*(x-X(3))/((X(2)-X(1))*(X(2)-X(3)))*Y(2)+(x-X(2))*(x-X(1))/((X(3)-X(2))*(X(3)-X(1)))*Y(3) i 0 1 2 3 x 0.46 047 0.48 0.49 y 0.4846555 0.4937452 0.5027498 0.5116683

函数概念发展的历史过程

实习报告 2011年10月5日 题目函数概念发展的历史过程 作者组长:张婕组员:王笑晗,李良芳,薛兰瑞宁,严娟娟 摘要函数概念是全部数学概念中最重要的概念之一,也是数学的核心,纵观300年来函数概念的发展,众多数学家从集合、代数、直至对应、集合的角度不断赋予函数概念以新的思想,从而推动了整个数学的发展。本文通过对函数概念的发展与比较的研究,对函数概念的几个方面进行一些探索,分为这几个方面: 1 早期函数概念——几何观念下的函数 2 十八世纪函数概念——代数观念下的函数 3 十九世纪函数概念——对应关系下的函数 4现代函数概念——集合论下的函数 正文第一方面:早期函数概念——几何观念下的函数 在欧洲,函数这一名词,是微积分的奠基人莱布尼兹首先采用的,他在年发1692表的数学论文中,就应用了函数这一概念,不过莱布尼兹仅用函数一词表示幂。后来,在十七世纪,伽俐略在《两门新科学》一书中,几乎从头到尾包含着函数或称为变量的关系这一概念,用文字和比例的语言表达函数的关系。1673年前后笛卡尔在他的解析几何中,已经注意到了一个变量对于另一个变量的依赖关系,但由于当时尚未意识到需要提炼一般的函数概念,因此直到17世纪后期牛顿、莱布尼兹建立微积分的时候,数学家还没有明确函数的一般意义,绝大部分函数是被当作曲线来研究的。 第二方面:十八世纪函数概念——代数观念下的函数 1718年瑞士数学家约翰·贝努利使用变量概念在莱布尼兹函数概念的基础上,对函数概念进行了明确定义给出了不同于几何形式的函数定义:函数就是变量和常量以任何方式组成的量,并首先采用符号作为函数的记号。也就是把变量x和常量按任何方式构成的量叫“x 的函数”,表示为,其在函数概念中所说的任一形式,包括代数式子和超越式子。 数学家欧拉在其著作《无穷小分析论》中,把凡是给出解析式表示的变量统称为函数。1734年,欧拉首先创造十分形象且沿用至今的符号作为函数的记号,欧拉给出的定义是:一个变量的函数是由这个变量和一些数即常数以任何方式组成的解析表达式。他把约翰·贝努利给出的函数定义称为解析函数,并进一步把它区分为代数函数(只有自变量间的代数运算)和超越函数(三角函数、对数函数以及变量的无理数幂所表示的函数),还考虑了“随意函数”(表示任意画出曲线的函数),不难看出,欧拉给出的函数定义比约翰·贝努利的定义更普遍,形象,但关于函数的定义,欧拉并没有真正揭示出函数概念的实质。 第三方面: 十九世纪函数概念——对应关系下的函数 1822年傅里叶发现某些函数可用曲线表示,也可用一个式子表示,或用多个式子表示,从

函数的插值方法及matlab程序

6.1 插值问题及其误差 6.1.2 与插值有关的MATLAB 函数 (一) POLY2SYM函数 调用格式一:poly2sym (C) 调用格式二:f1=poly2sym(C,'V') 或f2=poly2sym(C, sym ('V') ), (二) POLYVAL函数 调用格式:Y = polyval(P,X) (三) POLY函数 调用格式:Y = poly (V) (四) CONV函数 调用格式:C =conv (A, B) 例 6.1.2求三个一次多项式、和的积.它们的零点分别依次为0.4,0.8,1.2. 解我们可以用两种MATLAB程序求之. 方法1如输入MATLAB程序 >> X1=[0.4,0.8,1.2]; l1=poly(X1), L1=poly2sym (l1) 运行后输出结果为 l1 = 1.0000 - 2.4000 1.7600 -0.3840 L1 = x^3-12/5*x^2+44/25*x-48/125 方法2如输入MATLAB程序 >> P1=poly(0.4);P2=poly(0.8);P3=poly(1.2); C =conv (conv (P1, P2), P3) , L1=poly2sym (C) 运行后输出的结果与方法1相同. (五) DECONV 函数 调用格式:[Q,R] =deconv (B,A) (六) roots(poly(1:n))命令 调用格式:roots(poly(1:n)) (七) det(a*eye(size (A)) - A)命令 调用格式:b=det(a*ey e(size (A)) - A) 6.2 拉格朗日(Lagrange)插值及其MATLAB程序 6.2.1 线性插值及其MATLAB程序 例 6.2.1 已知函数在上具有二阶连续导数,,且满足条件 .求线性插值多项式和函数值,并估计其误差. 解输入程序 >> X=[1,3];Y=[1,2]; l01= poly(X(2))/( X(1)- X(2)), l11= poly(X(1))/( X(2)- X(1)), l0=poly2sym (l01),l1=poly2sym (l11), P = l01* Y(1)+ l11* Y(2), L=poly2sym (P),x=1.5; Y = polyval(P,x) 运行后输出基函数l0和l1及其插值多项式的系数向量P(略)、插值多项式L和插值Y为l0 = l1 = L = Y = -1/2*x+3/2 1/2*x-1/2 1/2*x+1/2 1.2500 输入程序 >> M=5;R1=M*abs((x-X(1))* (x-X(2)))/2

相关文档
最新文档