Python 怎么解方程啊?
用的 sympy 中的 solve,这个库是不是只能解有解的方程?
p1 = 0.8
p2 = 1
r1 = 500
r2 = 3500
x = symbols('x')
print('in')
s=solve(p1*exp(-x*r2)-p2*exp(-x*r1)+p2-p1, x)
print(s)
一直输出不了 s。。。 像这种方程用 python 怎么解?
Python 怎么解方程啊?
18 回复
又来一个廖学峰课后作业系列?
Python里解方程最直接的就是用sympy库。给你个例子,比如解 x^2 - 4 = 0:
from sympy import symbols, Eq, solve
# 定义符号变量
x = symbols('x')
# 建立方程
equation = Eq(x**2 - 4, 0)
# 解方程
solution = solve(equation, x)
print(solution) # 输出: [-2, 2]
对于线性方程组,比如:
2x + y = 5
x - y = 1
可以这样解:
from sympy import symbols, Eq, solve
x, y = symbols('x y')
eq1 = Eq(2*x + y, 5)
eq2 = Eq(x - y, 1)
solution = solve((eq1, eq2), (x, y))
print(solution) # 输出: {x: 2, y: 1}
如果只是数值计算,用numpy的roots解多项式方程更方便:
import numpy as np
# 解 x^2 - 4 = 0,系数按降幂排列
coefficients = [1, 0, -4] # 对应 x^2 + 0*x - 4
roots = np.roots(coefficients)
print(roots) # 输出: [ 2. -2.]
简单来说,符号方程用sympy.solve,数值多项式用numpy.roots。
。。不是 = = 要算个方程
WolframAlpha 了解一下?
谢谢 算出来了
前两天不是刚问完,sympy
我用了那个 没解算不出来好像 换一个 x-2 很快算出来
这样行不行?
import random
while True:
x = random.random()
然后将 x 带入方程两边如果相等就 break
哈哈猴子算法
😂😂😂 用了那个 wolframalpha
sympy 啊。。。
我就用的这个库啊……你看我代码 卡在 solve 算不出来
sympy 是给解析解,你这个方程没有解析解啊。
嗯。。所以我来问应该用什么
numpy 和 scipy.optimize.fsolve 就行
这种需求用 Mathematica 啊


