求matlab三次插值函数?

2024-12-12 01:12:58
推荐回答(1个)
回答1:

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算是很高了

一般没看到过用插值求表达式的,一般是拟合或者是回归