Python求定積分+處理can‘t convert expression to float錯誤


1.函數舉例:

定積分

代碼:

from sympy import *
x = symbols('x')  # 聲明一個x自變量
print(integrate(x, (x, -1, 1)))

輸出0

解釋
integrate(函數,(變量,下限, 上限))


2.也可以通過調用函數的方法求解

from sympy import *
def f(x):
    return x ** 2 + 1

x = symbols('x')
f = integrate(f(x), (x, -1, 1))
print(f)

輸出8/3


3.常見錯誤:

from sympy import *
import math
def f(x):
    return math.exp(x)

x = symbols('x')
f = integrate(f(x), (x, -1, 1))
print(f)

如果使用上述方法將會報錯:can't convert expression to float

正確寫法ru如下:

from sympy import *
import math
def f(x):
    return math.e ** x  # 修改這里,使用exp函數會報錯

x = symbols('x')
f = integrate(f(x), (x, -1, 1))
print(f)

輸出2.35040238728760

問題已解決,但我不是很清楚原因,可能是因為調用了第三方庫exp導致錯誤,而integrate又不允許這樣做。最好的方法就是函數中盡量不要調用第三方庫,如果有知道具體原因的可以評論區回復。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM