x = 0:10
y = sin(x)
xx = 0:.25:10
yy = spline(x,y,xx)
plot(x,y,'o',xx,yy)
(另外fnplt csapi这两个函数也是三次样条插值函数)
如何用matlab实现一维插值:
1、先看一个实例,最后再来说明一维插值在matlab中的用法。实例如下图,用13个节点作三种插值,并比较结果。
2、首先启动matlab,选择编辑器,再新建一个命令文件。
3、然后,在编辑器窗口中输入本题的代码。如下图所示。并保存,此处命名为yiwei。
4、最后再命令行窗口处输入yiwei,并敲入键盘上的enter建。最终得到的结果是插渗枝值与原来的13个数据点之间的比较图,可以看出结果很好。
(通过上面的例子,也知道了matlab进行一维插值的命令是interp1.该命令的形式为y1=interp1(x0,y0,x1,'method').功能:根据已知的数据(x0,y0),用method方法进早谨行插值,然后计算x1对应的函数值y1.)
(其中的参数及其注意事项。x0,y0是已知的数据向量,其中x应以升序或者降序排列,x1是插值点的自变量坐标向量;method是用来选择插值算法的,它可以取:‘linear’(线性插值)、‘cubic’(三次多项式插值)、‘丛睁敏nearst’(最近插值)、‘spline’(三次样条插值)。)
参考资料
matlab中文论坛.matlab中文论坛[引用时间2018-1-9]
spline函数可以实现三次样条插值x=0:10
y=sin(x)
xx=0:.25:10
yy=spline(x,y,xx)
plot(x,y,'o',xx,yy)
另外fnpltcsapi这两个函数也隐缺是三次样条插值函数郑枝,具体你可以help一下!
现在电脑上没有matlab,一会给你程序,灶丛辩呵呵!
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)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。
从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部物孝猜分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近要求。
参考资料来源:百度百科-插值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)