subset函数python_Python subprocess

subset函数python_Python subprocess使用python_sympy库解决材料力学问题 (2)今天下午本想好好写写材料力学,学到梁的挠曲线近似微分方程这一节,解方程、联立方程组求解写得我吐血,于是我就想着用sympy来解决,话不多说,先看题题:简支梁受力如图所示, , , 均为已知,求加力点的B的挠度

使用python_sympy库解决材料力学问题 (2)   今天下午本想好好写写材料力学,学到梁的挠曲线近似微分方程这一节,解方程、联立方程组求解写得我吐血,于是我就想着用sympy来解决,话不多说,先看题   题:   简支梁受力如图所示,
F_p ,
EI ,
l 均为已知,求加力点的B的挠度和支承A,C处的转角
subset函数python_Python subprocess
subset函数python_Python subprocess   解:   由题
 AB段M_1(x)=\frac{3}{4}F_px, BC段M_2(x)=\frac{F_p}{4}(l-x) 由挠曲线的近似微分方程:AB段
EI\frac{d^2w}{dx^2}=-M_1(x)=-\frac{3}{4}F_px BC段
 EI\frac{d^2w}{dx^2}=-M_2(x)=-\frac{F_p}{4}(l-x) 求解微分方程 AB段:
EI\frac{dw}{dx}=-\int{\frac{3}{4}F_px}=-\frac{3F_p}{8}x^2+C_1   
EIw=\int{-\frac{3F_p}{8}x^2+C_1}=-\frac{F_p}{8}x^3+C_1x+D_1 BC段:
 EI\frac{dw}{dx}=-\int{\frac{F_p}{4}(l-x)}=\frac{F_p}{8}(l-x)^2+C_2   
EIw=-\int{\frac{F_p}{8}(l-x)^2+C_2}=-\frac{F_p}{24}(l-x)^3+C_2x+D_2 初始条件A、C点处挠度为0,B点出两点的挠度和转角相等 带入初始条件联立求解方程组:   
\begin{cases}     D_1=0 \\    C_2L+D_2=0 \\     -\frac{3F_p}{8}(\frac{l}{4})^2+C_1=\frac{F_p}{8}(\frac{3}{4}l)^2+C_2\\     -\frac{F_p}{8}(\frac{3}{4}l)^3+C_1(\frac{1}{4}l)+D_1=-\frac{F_p}{24}(\frac{3}{4}l)^3+C_2(\frac{1}{4l})+D_2 \end{cases} 求解出C1 C2 D1 D2后带回原式 可以得出:
\begin{cases}     w_b=\frac{3}{256}\frac{F_pl^3}{El}  \\     \theta_1=\frac{7}{128}\frac{F_pl^2}{EI} \\     \theta_2=-\frac{5}{128}\frac{F_pl^2}{EI}  \end{cases} 终于敲完公式了。。。。 下面我们看看怎么写代码 首先我们要明白我们要做什么,总结下来三点,一个是微分方程组的求解,二是联立方程组求解 ,三是带回原方程   一、微分方程求解   首先导入库并定义符号变量   
subset函数python_Python subprocess
subset函数python_Python subprocess   创建微分方程等式   
subset函数python_Python subprocess
subset函数python_Python subprocess   用dsolve函数求解微分方程   
subset函数python_Python subprocess
subset函数python_Python subprocess   接下是很重要的一步,那就是如何将方中的右边的式子取出,这个问题我们用args属性来取出,先来看看里面有什么东西   
subset函数python_Python subprocess
subset函数python_Python subprocess   可以看到里面是一个组,第二个素就是我们想要的式子,我们取出并作变量替换,注意这里变量替换的技巧   
subset函数python_Python subprocess
subset函数python_Python subprocess   求出一阶微分方程   
subset函数python_Python subprocess
subset函数python_Python subprocess   带入一个初始条件   
subset函数python_Python subprocess
subset函数python_Python subprocess   求解另一个微分方程,注意这里p.S 函数的细节   
subset函数python_Python subprocess
subset函数python_Python subprocess   二、联立方程组求解   根据B点建立方程组   
subset函数python_Python subprocess
subset函数python_Python subprocess   利用linsolve 函数联立求解,得到c1,c2,D1,D2的结果   
subset函数python_Python subprocess
subset函数python_Python subprocess   返回的是一个sympy.sets.sets.FiniteSet 对象,我们把它转成列表   
subset函数python_Python subprocess
subset函数python_Python subprocess   得到一个列表嵌套组,用subs函数带回原方程,得到答案   
subset函数python_Python subprocess
subset函数python_Python subprocess   对求解c1.c2.D1.D2的过程封装成一个函数
subset函数python_Python subprocess
subset函数python_Python subprocess   这个封装函数的代码极其简易,代码的健壮性、复用性、可读性几乎为0,大家不要学我,我是为了偷个懒,正确的做法是创建一个类,一个一个方法去封装,下次有时间我再补上。   创作不易,喜欢的小伙伴请点个赞再走吧 (*^_^*)

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/36094.html

(0)
上一篇 2024年 9月 9日
下一篇 2024年 9月 9日

相关推荐

关注微信