求问,MATLAB来做三次样条插值,如何得到插值的函数表达式
4个回答
展开全部
x=[1:1:10];
y=[2:2:20];
pp=interp1(x,y,'spline','pp')
breaks=pp.breaks
coefs=pp.coefs
三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系列形值点的一条光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组的过程。
实际计算时还需要引入边界条件才能完成计算。一般的计算方法书上都没有说明非扭结边界的定义,但数值计算软件如Matlab都把非扭结边界条件作为默认的边界条件。
在工程上,构造三次样条插值函数通常有两种方法:
一是以给定插值结点处得二阶导数值作为未知数来求解,而工程上称二阶导数为弯矩,因此,这种方法成为三弯矩插值。
二是以给定插值结点处得一阶导数作为未知数来求解,而一阶导数右称为斜率,因此,这种方法称为三斜率插值。
展开全部
>> x=[0.2:0.2:1.0];
y=[0.98 0.92 0.81 0.64 0.38];
>> pp=spline(x,y)
>> pp.coefs
ans =
-0.1042 -0.5625 -0.1833 0.9800
-0.1042 -0.6250 -0.4208 0.9200
-0.7292 -0.6875 -0.6833 0.8100
-0.7292 -1.1250 -1.0458 0.6400
返回的是三次样条插值函数每段的系数,三次样条插值每段是三次多项式。
y=[0.98 0.92 0.81 0.64 0.38];
>> pp=spline(x,y)
>> pp.coefs
ans =
-0.1042 -0.5625 -0.1833 0.9800
-0.1042 -0.6250 -0.4208 0.9200
-0.7292 -0.6875 -0.6833 0.8100
-0.7292 -1.1250 -1.0458 0.6400
返回的是三次样条插值函数每段的系数,三次样条插值每段是三次多项式。
追问
你好,请问如何解释:
spline(x,y,0.3)
ans =
0.9559
但是 -0.1042*0.3^3 -0.5625*0.3^2 -0.1833*0.3+ 0.9800=0.8715而非0.9559
追答
你好,得出来的分段函数是这样的:
-0.1042*(t-0.2)^ 3-0.5625*(t-0.2)^2 -0.1833*(t-0.2) + 0.9800
-0.1042*(t-0.4)^ 3 -0.6250*(t-0.4)^2 -0.4208*(t-0.4) + 0.9200
-0.7292*(t-0.6)^ 3 -0.6875*(t-0.6)^2 -0.6833*(t-0.6)+ 0.8100
-0.7292*(t-0.8)^ 3 -1.1250*(t-0.8)^2 -1.0458*(t-0.8)+ 0.6400
建议可以看一下数值分析方面的书籍。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
clc
clear
x=[0.2:0.2:1.0];
y=[0.98 0.92 0.81 0.64 0.38];
figure(3)
plot(x,y)
hold on
P=spline(x,y);
Y=ppval(P,x);
plot(x,Y,'k')
hold off
clear
x=[0.2:0.2:1.0];
y=[0.98 0.92 0.81 0.64 0.38];
figure(3)
plot(x,y)
hold on
P=spline(x,y);
Y=ppval(P,x);
plot(x,Y,'k')
hold off
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=[0.2:0.2:1.0]; y=[0.98 0.92 0.81 0.64 0.38];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询