有了Python sympy,公式推導再也不用手算了

1.前言

今天在推導公式時,發現這破方程組人力根本計算不出結果,我就想可不可以使用編程解決,我發現MATLAB的solve()函數、和Python的sympy庫都可以解決這個問題,在本篇文章中,使用Python sympy庫來解決這個問題。

2. 問題

一個圓經過點(sqrt(3)(2r+t)/4,(2r+t)/4),(r,0),
另一個圓經過點(sqrt(3)
(2r+t)/4,(2r+t)/4),(sqrt(3)(2r-t)/4,-(2*r-t)/4),
分別求兩圓心座標。

3.程序

3.1 導入庫

# 導入sympy庫
from sympy import *

3.2 定義字符

# 定義字符
a, b,  r, t = symbols('a b r t')

3.3 確定方程

#將所有項移至左端,右端爲零
eq1 = (sqrt(3)*(2*r+t)/4 - a)**2 + ((2*r+t)/4 - b)**2 - r**2
eq2 = (r - a)**2 + b**2 - r**2
eq3 = (sqrt(3)*(2*r-t)/4 - a)**2 + ((2*r-t)/4 + b)**2 - r**2

3.4 求解函數

# 求解函數,[eq1, eq2]爲函數,[a, b]爲未知數
c = solve([eq1, eq2], [a, b])
d = solve([eq1, eq3], [a, b])

3.5 輸出函數

pretty爲手寫形式函數,更易讀

# 輸出結果,pretty爲手寫形式函數,更易讀
print(c, '\n'*2, pretty(d))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章