1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
看起來(lái)問(wèn)題與TWave在不告訴您的情況下向表達(dá)式添加單位有關(guān)。
wave.rewrite('cos')給A*cos(-2*pi*f*t + phi + pi*second*f*n*x/(149896229*meter)). 如果您消除meter和second符號(hào),您的代碼就可以工作。
from sympy import symbols
from sympy.physics.optics import TWave
from sympy.physics.units import meter, second
import numpy as np
A, f, phi = symbols('A f phi')
wave = TWave(A, f, phi)
# the evaluation
xpoint = tpoint = np.linspace(0, 10, 100)
fb = sympy.lambdify(
[A, f, phi, x, t, n],
wave.rewrite(
'cos'
).subs(
[(meter, 1), (second, 1)]
),
modules='numpy'
)
fb(1, 1000, 0.5*np.pi, xpoint, tpoint, 1)
添加回答
舉報(bào)