我似乎無法弄清楚如何將Vandermonde矩陣實現爲多元插值。我能夠得到實際的矩陣,但我不明白如何獲取值(數組)c00,c01,c02 ...。我知道c = V/z,但我覺得我錯過了一些東西(或許不是部門?)。我也知道我需要以某種方式建立一個方程組(V的列是每個cij)。在Python中使用Vandermonde矩陣的多元(3D)插值
你如何在python中做到這一點?
這是我到目前爲止有:
import numpy as np
x = [1, 1, 1, 2, 2, 2, 3, 3, 3]
y = [1, 2, 3, 1, 2, 3, 1, 2, 3]
z = [3.2, 4.4, 6.5, 2.5, 4.7, 5.8, 5.1, 3.6, 2.9]
numpy.polynomial.polynomial.polyvander2d(x, y, [2,2])
>>>array([[ 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[ 1., 2., 4., 1., 2., 4., 1., 2., 4.],
[ 1., 3., 9., 1., 3., 9., 1., 3., 9.],
[ 1., 1., 1., 2., 2., 2., 4., 4., 4.],
[ 1., 2., 4., 2., 4., 8., 4., 8., 16.],
[ 1., 3., 9., 2., 6., 18., 4., 12., 36.],
[ 1., 1., 1., 3., 3., 3., 9., 9., 9.],
[ 1., 2., 4., 3., 6., 12., 9., 18., 36.],
[ 1., 3., 9., 3., 9., 27., 9., 27., 81.]])
np.dot(V, c.flat)
和numpy.polynomial.polynomial.polyval2d(x, y, c)
我認爲必須納入本不知怎麼的,但我不知道該怎麼辦。請幫忙! 我應該輸出: c = V \ z c = 0.97500 -5.27500 5.95000 -3.92500 19.82500 -21.55000 3.40000 -14.70000 18.50000
這裏就是我得到這個例子網站(他們用MATLAB): https://ece.uwaterloo.ca/~dwharder/NumericalAnalysis/05Interpolation/multi/ 希望這有助於!