我有一个关于为多项式逼近创建 N x N 矩阵的问题

I have a question about creating a N x N matrix for polynomial approximation

我想根据以下关系求解系数 {c1,c2,...cn}:

其中N×N矩阵B是一组单项式基{1,x,x^2,x^3,....x^n},fa(x)是逼近函数。如果我想遍历 n = [3,10,20,50] 并给定 xj = 1/2*5-1/2*3*cos(j*pi/n)(切比雪夫点分布),我应该如何使用 NumPy 创建这样的矩阵 B?

看起来 b 是函数,是 x 的幂

b0 = 1
b1 = x
b2 = x^2
b3 = x^3
...

并且您正试图找到最佳系数 c_n 来拟合函数 f(x)

您只需选择一组 x 值。 比如说,您想在 -1 到 +1 的范围内进行近似。选择 xx 的值,例如 x0 = -1.0, x1 = -0.9 , -0.8 , -0.7 ..., 0.9 , 1.0

x = np.arange(-1,1, 0.1)

B 数组中的每一行是每个 xi 值的 x^n 值。

您必须决定多项式的幂次方。也许最简单的方法是用“指数”创建一个 y space,例如从 x^0 到 x^5。 ' y=np.arange(0,6) '

然后使用“网格技巧”

y_mg , x_mg = np.meshgrid (y, x)

#For each value of x_mg and y_mg, use numpy arithmetic
B = numpy.power(x_mg , y_mg)