早教吧 育儿知识 作业答案 考试题库 百科 知识分享

matlab 三次样条插值函数如何根据数据得到三次样条插值函数的表达式 现在的情况是三次样条插值曲线已经得到,想得到这个曲线的函数表达式?x1=[5.20 8.17 9.79 11 12.33 19.07];y1=[9.67 61.84 79.14 84.51 8

题目详情
matlab 三次样条插值函数
如何根据数据得到三次样条插值函数的表达式
现在的情况是三次样条插值曲线已经得到,想得到这个曲线的函数表达式?
x1=[5.20 8.17 9.79 11 12.33 19.07];
y1=[9.67 61.84 79.14 84.51 89.13 100];
>> y1i=9.67:0.001:100;
x1i=pchip(y1,x1,y1i);
plot(x1i,y1i,x1,y1,'+');
上面是原来的数据,想得到三次样条插值函数表达式
▼优质解答
答案和解析
clear
x1=[5.20 8.17 9.79 11 12.33 19.07];
y1=[9.67 61.84 79.14 84.51 89.13 100];
y1i=9.67:0.001:100;
x1i=pchip(y1,x1,y1i);
p=polyfit(y1i,x1i,3)%用polyfit进行3次多项式拟合
%结果为p = 0.0000 -0.0058 0.2698 2.3263
f = polyval(p,y1i);
plot(y1i,x1i,'o',y1i,f,'-')
plot(y1i,x1i,'o',y1i,f,'-')%查看拟合结果