作业帮 > 综合 > 作业

怎样用matlab插值得到函数表达式

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/21 04:59:41
怎样用matlab插值得到函数表达式
>> x=[1:1:10];
>> y=[2:2:20];
>> x1=x;
>> y1=interp1(x,y,x1,'spline')
y1 =
2 4 6 8 10 12 14 16 18 20
然后怎样将所求得的函数表达式表示出来?
我在运行上边程序时遇到如下问题,麻烦再帮我解答下,
>> pp=interp1(x,y,x1,'spline','pp')
In an assignment A(matrix,:) = B,the number of elements in the subscript of A and
the number of rows in B must be the same.
Error in ==> F:\mtlab6.5\toolbox\matlab\polyfun\interp1.m
On line 218 ==> v(p(k),:) = extrapval;
而 >> pp=interp1(x,y,x1,'spline')
pp =
2 4 6 8 10 12 14 16 18 20
可以正常运行.
x=[1:1:10];
y=[2:2:20];
pp=interp1(x,y,'spline','pp')
breaks=pp.breaks
coefs=pp.coefs
说明:
interp1得到的函数其实是分段函数.
函数的全部信息全部都在pp里
让我们看一下其breaks分量和coefs分量,他们蕴含着函数表达式,具体涵义如下:
假设coefs的第i行为a b c d,breaks的第i和i+1个元素为m和n
那么在区间[m,n]的函数表达式就是a(x-m)^3+b(x-m)^2+c(x-m)+d
下面是例子
coefs第一行是[0 0 2 2],breaks前两个元素是1和2
就代表在区间[1,2]的函数表达式是2(x-1)+2
______________________
pp=interp1(x,y,'spline','pp')
不是pp=interp1(x,y,x1,'spline','pp')
x1不要,得到的是蕴含了分段多项式函数的结构pp.
你要直接得到在x1处的值,直接就y1=interp1(x,y,x1,'spline')就可以了,不要'pp'.