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

使用Sympy通过虚位移法求解梁挠度方程时无法符号化求解的问题求助

使用Sympy通过虚位移法求解梁挠度方程时无法符号化求解的问题求助

大家好,我最近在用虚位移法求解梁的挠度问题,手动计算积分的时候总是容易出错,所以想着用Sympy来自动化处理,前面的步骤都还算顺利,但卡在了solve()方法这里——怎么都得不到期望的符号解。

先给大家看看我的代码:

import sympy as sym

# Python 3.13
# Used variables in question
x = sym.Symbol("x")
I1 = sym.Symbol("I₁")
L = sym.Symbol("L")
pi = sym.Symbol("Π")
v2 = sym.Symbol("v2")
P = sym.Symbol("P")
E = sym.Symbol("E")

I = I1 * (1 - x/L)

# For the part a of the question one in Assignment 3.
question_part = "a"
if question_part == "a":
    func_v = (1 - sym.cos((pi*x)/(2*L))) * v2
    moment = P * L
    second_derivative_v = sym.diff(func_v, x, x)
    internal_strain_e_func = 0.5 * moment *second_derivative_v / (E * I)
    internal_strain_e = sym.integrate(internal_strain_e_func, (x, 0, L))
    external_e = P * v2
    tip_deflection_eq = sym.Eq(internal_strain_e, external_e)
    tip_deflection = sym.solve(tip_deflection_eq, v2, exclude=[I1, L, pi, P, E], implicit=True)
    sym.pprint(tip_deflection)

这段代码是用来实现虚位移法求解梁挠度的,我手动算的话理论上也能做,但积分环节太容易出错了,才想着用Sympy来辅助。

目前的问题是,到solve()这一步就卡壳了,没法得到方程的符号解。我要解的方程是:
$$
\frac{P L}{2 E I_1} \int_0^L \frac{\frac{\pi^2}{4 L^2} \cos\left(\frac{\pi x}{2 L}\right) v_2}{1 - \frac{x}{L}} dx = P v_2
$$

编辑补充:抱歉各位,我后来发现v2不应该出现在func_v里,题目里给的这个变量我直接拿来用了,没仔细考虑。不过这次折腾也让我学到了不少新东西,之后可能还会来提问,也算没白费大家时间!谢谢啦!

备注:内容来源于stack exchange,提问作者Hür Doğan ÜNLÜ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:44:36