求matlab三次插值函数?

请高手帮帮忙,要详细的程序,能直接运行出来的,谢谢了!

已知函数值

0 1 2 3 4 5 6 7 8 9 10

0 0.79 1.53 2.19 2.71 3.03 3.27 2.89 3.06 3.19 3.29
和边界条件s'(0)=0.8 s'(10)=0.2 . 求三次样条插值函数 并画出其图形.
能不能给出详细的程序!有点遗憾,因为主要就是想得出它的函数表达式!我也就是这块弄不明白!

第1个回答  2007-12-24
spline
三次样条函数插值。对于该方法,命令interp1调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函数。命令spline用它们执行三次样条函数插值;

y=spline(x,y,插值点)

比如 求2.5处y的值。
>> 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];
>> a=spline(x,y,2.5)

a =

1.8715

也可以一次得很多点的值如:
>> xx=1:0.1:10;
>> yy=spline(x,y,xx);
这样就得到每个xx下的yy
plot(x,y)
就可以看到图像

不过据我现在的知识得不到函数。
只能采用拟合的方法
>> p=polyfit(x,y,2); %二项式拟合这里用的是2次 p的三个值是系数
>> yyy=polyval(p,x);
>> plot(x,yy)

拟合求得的函数为-0.0536x^2+0.832x+0.0738
拟合度0.9717算是很高了

一般没看到过用插值求表达式的,一般是拟合或者是回归本回答被提问者采纳
相似回答