1.前言
今天在推導(dǎo)公式時(shí)屎债,發(fā)現(xiàn)這破方程組人力根本計(jì)算不出結(jié)果仅政,我就想可不可以使用編程解決,我發(fā)現(xiàn)MATLAB的solve()函數(shù)盆驹、和Python的sympy庫都可以解決這個(gè)問題圆丹,在本篇文章中,使用Python sympy庫來解決這個(gè)問題躯喇。
2. 問題
一個(gè)圓經(jīng)過點(diǎn)(sqrt(3)(2r+t)/4辫封,(2r+t)/4),(r廉丽,0)倦微,
另一個(gè)圓經(jīng)過點(diǎn)(sqrt(3)(2r+t)/4,(2r+t)/4)正压,(sqrt(3)(2r-t)/4欣福,-(2*r-t)/4),
分別求兩圓心坐標(biāo)焦履。
3.程序
3.1 導(dǎo)入庫
# 導(dǎo)入sympy庫
from sympy import *
3.2 定義字符
# 定義字符
a, b, r, t = symbols('a b r t')
3.3 確定方程
#將所有項(xiàng)移至左端拓劝,右端為零
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 求解函數(shù)
# 求解函數(shù),[eq1, eq2]為函數(shù)嘉裤,[a, b]為未知數(shù)
c = solve([eq1, eq2], [a, b])
d = solve([eq1, eq3], [a, b])
3.5 輸出函數(shù)
pretty為手寫形式函數(shù)郑临,更易讀
# 輸出結(jié)果,pretty為手寫形式函數(shù)屑宠,更易讀
print(c, '\n'*2, pretty(d))