龙空技术网

简单学Python——解方程库sympy

量化交易交流 967

前言:

而今朋友们对“python的sympy运算很慢”可能比较重视,看官们都想要剖析一些“python的sympy运算很慢”的相关资讯。那么小编也在网上汇集了一些有关“python的sympy运算很慢””的相关知识,希望同学们能喜欢,你们快快来了解一下吧!

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

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

运行结果为:

方程的解为[3]

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

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

import sympyx,y=sympy.symbols("x, y")#设两个未知数,x代表兔的数量,y代表鸡的数量eq1=x*4+y*2-60#式子的结果要为0,即可脚数-60为0eq2=x+y-20#只数-20为0s = 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解方程还是可以的。

标签: #python的sympy运算很慢