Matlab 八度函数的多项式插值
我需要使用多项式插值来插值函数,但我不确定如何对部分进行编码以获得多项式及其系数: 我的职能:Matlab 八度函数的多项式插值,matlab,octave,interpolation,linear-interpolation,Matlab,Octave,Interpolation,Linear Interpolation,我需要使用多项式插值来插值函数,但我不确定如何对部分进行编码以获得多项式及其系数: 我的职能: fx = @(x) sin(3 .*x) ./ (0.4 .+ (x .-2) .^2); 我的9个样本值: xs = 0:0.5:4; ys = fx(xs); 我的尝试: n = 2; x(1) = xs; # not sure if this is correct for k=1:n-1 for j=k+1:n p = ((x(1) - x(j)) / x(
fx = @(x) sin(3 .*x) ./ (0.4 .+ (x .-2) .^2);
我的9个样本值:
xs = 0:0.5:4;
ys = fx(xs);
我的尝试:
n = 2;
x(1) = xs; # not sure if this is correct
for k=1:n-1
for j=k+1:n
p = ((x(1) - x(j)) / x(1) - x(j))* fx(x(j));
endfor
endfor
但我真的感到失落,我不太明白。有人能帮我吗?有没有理由尝试手动执行插值,而不是用您想要的方法调用
interp1
?如果最后一个参数是'pp'
,则函数返回分段多项式,您可以使用ppval
进行计算或随意检查。我想我不是很确定。指令集读取:n=2、4、6、8的多项式插值(在3、5、7和9点进行相应采样);请参见末尾的公式*[在我的问题中给出]*以计算n次插值多项式P(x)的系数–您可能会发现函数polyval对此很有用。我只是觉得我们的教授想用手来做。不过我可能错了。哦,好吧,如果这是课堂作业的一部分,那么要求手工操作也不是不合逻辑的。我同意。有什么建议吗?我想你可以试着用矢量思维;例如,(Xk-Xj)的值可以通过矩阵乘法获得,然后可以取该矩阵整行的乘积(不包括对角线)来获得每个分母。