简单学Python解方程库sympy

sympy是一个解方程的库,可以解多元和多次方程,先解一个一元二次方程熟悉一下流程:

import sympy
x = sympy.Symbol('x')# 定义未知数
equation = x**2 - 6*x + 9# 定义方程,式子的值要为0
s = sympy.solve(equation)#解方程
# 打印结果
print(f'方程的解为{s}')

运行结果为:

方程的解为[3]

下面解一个二元方程,并用不列方程的方式验证一下。

一个笼子里有兔和鸡共20只,它们的脚的数量之和为60只,问兔和鸡各多少只?首先,用方程解:

import sympy
x,y=sympy.symbols("x, y")#设两个未知数,x代表兔的数量,y代表鸡的数量
eq1=x*4+y*2-60#式子的结果要为0,即可脚数-60为0
eq2=x+y-20#只数-20为0
s = sympy.solve([eq1, eq2], [x, y])#开始解方程,返回字典类型。
print(f"兔的数量为{s[x]},鸡的数量为{s[y]}")

运行结果为:

兔的数量为10,鸡的数量为10

下面用循环的方式枚举解:

t=j=0#兔和鸡的初始数量均为0,下面用循环“暴力破解”答案
for t in range(0,21):#兔的数量从0试到20
    for j in range(0,21-t):#在兔数量确定的情况下,将鸡的数量从0试到(20-兔的数量)
        if t*4+j*2==60 and t+j==20:#如符合条件,则输出答案
            print(f"兔的数量为{t},鸡的数量为{j}")

运行结果为:

兔的数量为10,鸡的数量为10

看来用sympy解方程还是可以的。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/75066
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 11 日 下午2:56
下一篇 2024 年 7 月 11 日 下午2:56

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注