我正在嘗試使用如下所示的 Chebyshev 節點和拉格朗日多項式繪制一個圖,但我收到錯誤x, y,并且格式字串不能為 None。為什么會發生這種情況,我該如何修復它/適當地繪制我想要的圖?
編輯:我已經更新了我的代碼以修復原始錯誤x、y 和格式字串不能為 None現在我有錯誤不支持的運算元型別 -:'list' 和 'int'
import numpy as np
def lagrange(x, z, f):
d = len(x)
if len(x) != len(z):
print("Error: the length of x and z is different")
else:
p = 0
for i in range (d):
L = 1
for j in range (d):
if j != i:
L *= (z-x[j])/(x[i] - x[j])
p = f[i]*L
return p
def f(x):
return np.cos(x)
d = [0.1, 4, 0.2]
g = [-0.3, 0, 0.3]
lagrange(d, g, f(d))
uj5u.com熱心網友回復:
您可以使用 np.array 解決此問題:
import numpy as np
def lagrange(x, z, f):
d = len(x)
if len(x) != len(z):
print("Error: the length of x and z is different")
else:
p = 0
for i in range (d):
L = 1
for j in range (d):
if j != i:
L *= (z-x[j])/(x[i] - x[j])
p = f[i]*L
return p
def f(x):
return np.cos(x)
d = np.array([0.1, 4, 0.2])
g = np.array([-0.3, 0, 0.3])
lagrange(d, g, f(d))
這將回傳 array([-5.08984891, 1.04582888, 6.70431625])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/342634.html
標籤:Python 麻木的 matplotlib
