存储在矩阵中 - 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
我正在尝试编写一个 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