找到10次多项式,它在区间[1,6]中的11个等距点处插入函数arctan(x)

时间:2014-02-25 02:32:25

标签: matlab

所以这个问题更具体地基于牛顿形式,但我在编写脚本时遇到了麻烦。你会怎样写这篇文章,到目前为止我是

长度= ABS(C-d);

M =长度/ 11;

表示k = c:m:d;

fk=func(k);

但我无法弄清楚如何将所有值存储到矢量中,因此我可以运行牛顿多项式插值。

1 个答案:

答案 0 :(得分:1)

  1. 不要将length用作变量名,因为有一个名为length的预定义函数。
  2. 如果将长度除以11并执行c:m:d,则会创建12个等间距点。除以10。
  3. 当您执行c:m:d时,您需要确保c<d
  4. 这只是一个简单的线性回归问题。您可以通过创建11x11矩阵手动解决问题,也可以只使用polyfit

    X = c:m:d;
    Y = atan(X);
    C = polyfit(X,Y,10);
    

    是最简单的解决方案,但如果你想知道发生了什么,你可以这样做。

    A = [X.^10,X.^9,X.^8,X.^7,X.^6,X.^5,X.^4,X.^3,X.^2,X.^1,X,ones(11,1)];
    C = A\Y;
    

    您将获得相同的系数向量C。你想要的多项式是这样的

    y = C(1)*x^10 + C(2)*x^9 + ......+ C(10)*x + C(11)