存储在矩阵中 - n 个次数为 (n-1) 的多项式,每个 x 一行

Storing in a matrix - n polynomials of degree (n-1), one row for each x

我正在尝试编写一个 matlab 程序,用户输入 n 个点,然后以图形方式(使用 ginput)选择 n 个坐标对。然后,我想通过所选点创建一个次数 (n-1) 的插值多项​​式,并求解该插值多项式的系数。

所以我想我想将所有点存储在这样的矩阵中:

1 x1 x1^2 x1^3 ... x1^(n-1)
.
.
1 xn xn^2 xn^3 ... xn^(n-1)

.. 然后用反斜杠运算符求解系数。到目前为止我的代码是这样的:

n = input('How many points?');

[x,y] = ginput(n);

A = zeros(n);

for i = 1:n
    A(1,i) = [x(1)^(i-1)];
end

我的问题是我无法创建一个成功的循环,该循环根据我希望如何以多项式形式存储点的模式(如上图所示)为我提供新行。我如何编写以在每一行的时间使用一个 x 来存储每一行​​的 n 行数,并将每一行的度数提高到 (n-1) 度?

你快完成了,你可以创建该矩阵的一行,你只是缺乏对点数的迭代:

for j=1:length(x)
  for i = 1:n
      A(j,i) = [x(j)^(i-1)];
  end
end