有了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))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • print,, print("helo world"), Python中默认的编码格式是 ASCII 格式,在没修...
    麦牛2013阅读 521评论 1 1
  • 在我们初、高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在...
    李东bbsky阅读 6,168评论 0 7
  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 1,103评论 0 2
  • 人老了,人老了, 人老没有形象了, 发白了,脸皱了, 腰弯了,背舵了, 遇冷遇热流涕了。 人老了,人老了, 人老没...
    林木成荫阅读 778评论 3 15
  • 林清玄说,
    图小南阅读 444评论 0 1