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

Sympy solve函数求解梁力学方程组得错误解,不满足约束

Sympy求解梁力学行为方程组时解不满足约束的问题

我尝试用Sympy求解特殊荷载作用下梁的力学行为方程组,运行solve求解未知量时没有错误警告,但将求得的变量代回后,结果不满足设定的方程组。绘制y1、y2、y3、y4的挠度曲线时也出现异常,检查发现y2在x=10处、y4在x=20处不满足约束条件。我不清楚原因,因为求解后几乎没做额外操作。

相关代码如下:

import numpy as np
from sympy import *
#lots of setup
E = 30*10**9 
I = 5.5*10**9/(1000**4)
w1 = 30000
p1 = 200000
ma = 90000
p2 = 15000
x,r1,m,r2,r3,c1,c2,c3,c4,c5,c6,c7,c8 = symbols('x,r1,m,r2,r3,c1,c2,c3,c4,c5,c6,c7,c8')
m1 = -m+r1*x-(-w1*x**3/36+w1*x**2/2)
t1p = integrate(m1,x)+c1
y1p = integrate(t1p,x)+c2
t1 = t1p/E/I/1.5
y1 = y1p/E/I/1.5
m2 = -m+r1*x-(w1*6/2)*(x-2)-p1*(x-6)
t2p = integrate(m2,x)+c3
y2p = integrate(t2p,x)+c4
t2 = t2p/E/I
y2 = y2p/E/I
m3 = m2+r2*(x-10)+ma
t3p = integrate(m3,x)+c5
y3p = integrate(t3p,x)+c6
t3 = t3p/E/I
y3 = y3p/E/I
m4 = m3-p2*(x-15)
t4p = integrate(m4,x)+c7
y4p = integrate(t4p,x)+c8
t4 = t4p/E/I
y4 = y4p/E/I

#Equations to be solved

eq1 = Eq(w1*6/2-p1-p2+r1+r2+r3,0)
eq2 = Eq(m-w1*6/2*2-p1*6-ma-p2*15+r2*10+r3*20,0)
eq3 = Eq(y1.subs(x,0),0)
eq4 = Eq(t1.subs(x,0),0)
eq5 = Eq(y2.subs(x,10),0)
eq6 = Eq(y4.subs(x,20),0)
eq7 = Eq(y1.subs(x,6),y2.subs(x,6))
eq8 = Eq(t1.subs(x,6),t2.subs(x,6))
eq9 = Eq(y2.subs(x,10),y3.subs(x,10))
eq10 = Eq(t2.subs(x,10),t3.subs(x,10))
eq11 = Eq(y3.subs(x,15),y4.subs(x,15))
eq12 = Eq(t3.subs(x,15),t4.subs(x,15))
sol = solve((eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12),(r1,m,r2,r3,c1,c2,c3,c4,c5,c6,c7,c8))
# print(sol)
# print(y1)
# print(y2)
# print(y3)
# print(y4)
# m1 = m1.subs({m:sol[m], r1:sol[r1]})
# m2 = m2.subs({m:sol[m], r1:sol[r1]})
# m3 = m3.subs({m:sol[m], r1:sol[r1], r2:sol[r2]})
# m4 = m4.subs({m:sol[m], r1:sol[r1], r2:sol[r2]})
# y1 = y1.subs({m:sol[m], r1:sol[r1], c1:sol[c1], c2:sol[c2]})
y2 = y2.subs({m:sol[m], r1:sol[r1], c3:sol[c3], c4:sol[c4]})
# y3 = y3.subs({m:sol[m], r1:sol[r1], r2:sol[r2], c5:sol[c5], c6:sol[c6]})
y4 = y4.subs({m:sol[m], r1:sol[r1], r2:sol[r2], c7:sol[c7], c8:sol[c8]})

#check parameters are satisfied
print(y2.subs(x,10),y4.subs(x,20))

内容的提问来源于stack exchange,提问作者Nicholas Marchak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:15:37