使用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Ü
相关产品推荐
相关产品推荐

