python解方程组_使用python解方程组

知乎上有人列了个问题, a平方 + a三次方 = 392 ,之前用了凑数的办法,答案是 7 ,土办法,但最简单

今天有人回帖,用编程的方案解决,心血来潮,试了一把用python

(使用了python 的sympy 库)

from sympy import *

from sympy.abc import x

aa = solve([x**2 + x**3 -392], [x])

print(aa)

代码很简单,就是把等式做一下形变,把等号的右边编程 0 ,然后使用 sympy的 solve 函数进行求解

得到结果如下

[(7,), (-4 - 2*sqrt(10)*I,), (-4 + 2*sqrt(10)*I,)]

也就是这个方程有3个解,说明之前的凑数法有点武断了,7是正解,但只是正解之一 [手工捂脸]

于是又尝试了解方程组

x + y + z = 22x - y + z = -3x + 2y + 3z = 5

原理差不多,第一步也需要作形变,将等式右边变成 0 ,测试代码如下

from sympy import *

x, y , z = symbols("x y z")

eq = [x + y + z -2 , 2*x - y + z + 3, x + 2*y + 3*z -5]

result = linsolve(eq, [x, y, z])

print(result)

得到结果

FiniteSet((-3/5, 11/5, 2/5))

也就是 x = -3/5 , y = 11/5, z = 2/5 (数字没凑好,结果都是分数)

是不是好方便,手工点赞👍

根据网上的资料,sympy还能做很多数学上的事情,比如导数,微积分, 只是我的高等数学好多都还给老师了,以后再研究吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值