知乎上有人列了个问题, 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还能做很多数学上的事情,比如导数,微积分, 只是我的高等数学好多都还给老师了,以后再研究吧