如何用MATLAB 编写interpl插值函数

如何用MATLAB 编写interpl插值函数,第1张

yi = interp1(x,y,xi,method)

已知样本点坐标x,y,求xi处的函数值yi,插值方法是method。

function [输出变量] = 函数名称(输入变量)

% 注释

% 函数体

如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:

function [s]  = eg_sum( n )

% calculate the sum of 1..n

s = 0

for i = 1:n

s = s + i

end

回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数,如下所示:

>>clear

>>a = eg_sum(10)

运行结果: a = 55

扩展资料:

对于函数f(x),常常不仅知道它在一些点的函数值,而且还知慎源道它在这些点的导数值。这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数罩型在这些点也等于f(x)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。

从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部物孝猜分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近要求。

参考资料来源:百度百科-插值

%代码首洞如下

data=[3.946       0

5.193    50

5.762   100

6.311   150

6.795   200

7.257   250

7.704   300

8.170   让早350

8.603   400

9.073   450

9.511   500

10.001   550

10.435   600

10.932   650

11.400 700

11.938 750

12.428   800

12.995   850

13.560   900

14.246  坦芹雀 950

15.063   1000]

y=data(:,1)x=data(:,2)

xx=min(x):10:max(x)

yy=interp1(x,y,xx)

plot(xx,yy,'*r',x,y,'ob')

xlabel('NtD(20ns)'),ylabel('测量值(um)'),title('***曲线')

legend('分段差值数据','千分尺数据')

结果:

利用matlab实现多种插值:

用matlab自带的多种功能进行常用插值(样条插值,hermite插值,三次渣悉差值)呢?在完成一些习题后,我的总结如下:

1.如何实现三次样条插值(spline插值)

特点:连续三次曲线逼近,最高次数为三次

法1:spline

x=[0,1,2,3,4,5,6,7,8,9,10]

y=[0,0.79,1.53,2.19,2.71,3.03,3.27,2.89,3.06,3.19,3.29]

进行三次样条插值

xx=0:0.25:10 取好绘图取值点

yy=spline(x,y,xx)

plot(x,y,’o’,xx,yy)绘制图像

那么如何获得插值函数?且如果三次样条插值有边界条件时,应如何拟合插值函数?此时应采取如禅乎法2

法2:csape

pp=csape(x,y,'complete',[0,0.0])

disp(pp.coefs)

complete表示给定边界条件为一阶导数,[0,0]便是两端点一阶导数为0.常用的参数还有:

'second',给定边界二阶导数.

'variational',自然样条袭汪(边界二阶导数为0)

运行结果:COEFS的含义是在Xi-Xi+1区间上的多项式是,例如COEFS数组第一行的意思是在X=0到X=1的区间上时表达式是-6.2652*(X-0)^3+0.9697*(X-0)^1+0.5同理,可以得到在不同区间上的拟合函数

-6.26520.00000.96970.5000

1.8813 -0.93980.92270.5477

-0.4600 -0.43180.79920.6245

2.1442 -0.51460.74240.6708

绘制图像:xi=1:0.25:10

yi=ppval(pp,xi)

plot(x,y,'o',xi,yi)

matlab通用的插值函数为interp1,通过改变interp1的method参数,可以实现不同的插值方式。但spline函数与interp1函数在实现样条插值时,均无法在规定边界条件的情况下进行插值,此时要用到csape,csape的complete,second参数即可满足常用边界条件需求。如果需要拟合出具体的函数,则用yi.coefs的形式,yi为插值点的拟合值。最后,使用plot函数绘制拟合函数图像。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12493572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存