Python中sympy.solve()函數的使用


1、函數的簡單使用
  用 sympy.solve() 函數來解單一方程的調用方式可以表示為 sympy.solve(表達式,符號) 。下面的代碼演示了怎樣解exp ⁡ ( x ) − 3 = 0 \exp(x)-3=0exp(x)−3=0這個方程。

1 import sympy
2 from sympy import *
3 d = sympy.Symbol("d")
4 b = sympy.solve(sympy.exp(d)-3,d)
5 print(b)

可以得到log3的精確表達式。

2、遇見的問題

  問題1 TypeError: can’t convert expression to float報錯

  該問題是將 math 庫中的運算符用在了表達式中,如log ⁡ \loglog,sin ⁡ \sinsin,exp ⁡ \expexp等。應該用 sympy 庫中的運算符,可以在方程表達式中用 sympy.log() 語句指定,或者去掉開頭的 import math 語句。

  問題2 No algorithms are implemented to solve equation報錯

如下面的代碼所示,我們嘗試解  x + exp ⁡ ( x ) + sin ⁡ ( x ) − 10 = 0 這個方程。

1 import sympy
2 from sympy import *
3 d = sympy.Symbol("d")
4 b = sympy.solve(d+sympy.exp(d)+sympy.sin(d)-10,d)
5 print(b)

結果是報錯,沒有算法來解這個方程,換種說法就是不能得到解析解。我們可以用數值計算函數 sympy.nsolve() 來近似計算的到數值解。具體用法如下:

1 import sympy
2 from sympy import *
3 d = sympy.Symbol("d")
4 b=sympy.nsolve(d+sympy.exp(d)+sympy.sin(d)-10,0)
5 print(b)

運行程序可以得到結果約為1.962,十分精確。

備注:

原文鏈接:https://blog.csdn.net/weixin_44892951/article/details/106611169


免責聲明!

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



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