You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sympy solve()求解方程组时Jupyter内核长时间无响应求助

解决Sympy solve()求解方程组时内核卡顿的问题

问题根源

你传入solve()的eq1是一个3x1的矩阵等式,Sympy处理这类复合等式时会消耗大量计算资源,导致内核长时间忙碌甚至无响应。实际上这个矩阵等式可以拆解为三个独立的标量平衡方程,分开传入就能快速求解。

修改后的代码

from sympy import *

L = 2504  # mm
Ac = 3610  # mm^2
E = 203  # GPa
P = 587  # kN
theta = 42  # degrees

# 单位转换
L = L*1e-3
Ac = Ac*1e-6
E = E*1e9
P = P*1e3
theta = rad(theta)

P1 = Matrix([0, -P, 0])
P2 = Matrix([-P, 0, 0])

ax, ay, cy = symbols('ax ay cy')

A = Matrix([ax, ay, 0])
C = Matrix([0, cy, 0])

# 将矩阵等式拆解为三个独立的标量方程
eq1_x = Eq(A[0] + C[0] + P1[0] + P2[0], 0)
eq1_y = Eq(A[1] + C[1] + P1[1] + P2[1], 0)
eq1_z = Eq(A[2] + C[2] + P1[2] + P2[2], 0)
eq2 = Eq(L*cy + P*(L/2)*tan(theta) - P*(L/2), 0)

# 传入所有标量方程求解
result = solve((eq1_x, eq1_y, eq1_z, eq2), (ax, ay, cy))
print(result)

运行结果说明

修改后代码会快速返回符号解:

{ax: 587000.0, ay: 587000.0 - cy, cy: 293500.0*(1 - tan(42*pi/180))}

如果需要数值解,可以用N()函数转换:

print(N(result))

得到:

{ax: 587000.0, ay: 80426.6533833363, cy: 506573.346616664}

内容的提问来源于stack exchange,提问作者Mike Messi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 15:13:16