我試圖在幾個輸入端評估一個多變數函式,但由于一些奇怪的原因,它吐出了一個錯誤
。。
x = Symbol("x")
y = Symbol("y")
f = x*y
f = lambdify(x, y, f)
print(f(3, 3)
如果我嘗試用一個單變數函式來做同樣的事情,它可以正常作業,但是當我嘗試用多變數輸入來運行這段同樣的代碼時,我得到了這樣的錯誤
TypeError: Argument must be either a string, dict or module but it is: x*y我怎樣才能解決這個問題?我對SymPy還很陌生<-<
uj5u.com熱心網友回復:
函式可以顯式構建,也可以作為符號,但不能像你這樣。這個f = x*y是一個數學運算式,見代碼:
import sympy as sp
x, y = sp.symbols('x y')
# function[/span
f = sp.symbols('f', cls=sp.Function)
f_eval = f(x, y)
print(f_eval.subs(x, 2)
# expression[/span
expr = sp.Expr(x*y)
print(expr.subs(x, 3)
# lambdify[/span]。
f = sp.lambdify(args=[x, y], expr=x*y)
print(f(2, 3)
輸出
f(2, y)
Expr(3*y)
6
uj5u.com熱心網友回復:
如檔案中所示:
https://docs.sympy.org/latest/modules/utilities/lambdify.html#sympy.utilities.lambdify.lambdify
要呼叫一個類似f(x, y)的函式,那么[x, y]將會是
是lambdify的第一個引數。
>>> f = lambdify([x, y], x y)
>>> f(1, 1)
2
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/309260.html
標籤:
