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]
x = 1x4 double1 2 4 5
y = 1x4 double
1 3 4 2
mu = 1x2 double
0.3333 0.6667
lambda = 1x2 double
0.6667 0.3333
以上无论是M还是m关系式矩阵通用。
g =
-1.288728000000000 -2.093712750000000 -3.177727125000001
边界条件类型选择:
1.已知f(a)和f(b)的二阶导数
2.已知f(a)和f(b)的一阶导数
3.y=f(x)是以T=b-a为周期的周期函数
ans = 0
A = 4x4 double
2.0000 1.0000 0 0
0.6667 2.0000 0.3333 0
0 0.3333 2.0000 0.6667
0 0 1.0000 2.0000
b = 4x1 double
6.0000
4.5000
-3.5000
-6.0000
c = 1x3 double
0.6667 0.3333 1.0000
a = 1x4 double
2 2 2 2
b = 1x3 double
1.0000 0.3333 0.6667
m = 1x4 double
2.1250 1.7500 -1.2500 -2.3750
当1=<X=<2时
S =
当2=<X=<4时
S =
当4=<X=<5时
S =
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)