オリジナル
基本例題6.29 p180<「材料力学演習(20221021)一括(ver.3.3)」を勉強したい。#sympy
???タブレット等で、pdfを開く事ができないかも。???
sympyで
# ver0.1
from sympy import *
var('x,a,b,P' ,real=True)
var('MAC,MCB,MA,MB' ,real=True)
var('MA,MB' ,real=True)
var('RA,RB' ,real=True)
var('θAC,vAC,θCB,vCB',real=True)
var('θA,vA ' ,real=True)
var('EIz,l' ,real=True,nonnegative=True)
def myNumer_Factor_Rep(myF,rep):
return numer(myF).simplify().subs(rep).factor()/denom(myF)
def myEq_RepLR(eq):
return {eq.lhs:eq.rhs}
# CB間
eqvCB=Eq(vCB,vA+θA*x-1/EIz*(Rational(1,2)*MA*x**2+Rational(1,6)*RA*x**3-Rational(1,6)*P*(x-a)**3))
eqθCB=Eq(θCB,diff(eqvCB.rhs,x))
# RA,MA
rep0l={θA:0,vA:0 ,x:l,vCB:0,θCB:0}
sol =solve([eqvCB.subs(rep0l),eqθCB.subs(rep0l)],[RA,MA]) #;print(sol)
# 〃
repl ={l:a+b}
eqRA =Eq(RA,myNumer_Factor_Rep(sol[RA],repl)) ;print("#",eqRA)
eqMA =Eq(MA,myNumer_Factor_Rep(sol[MA],repl)) ;print("#",eqMA);print()
# RB
repRA=myEq_RepLR(eqRA)
eqRB =Eq(RB,solve(Eq(P,RA+RB),RB)[0]) #;print(eqRB)
eqRB =eqRB.subs(repRA) #;print(eqRB)
eqRB =Eq(RB,eqRB.rhs.factor()) #;print(eqRB)
eqRB =Eq(RB,myNumer_Factor_Rep(eqRB.rhs,repl)) ;print("#",eqRB)
# MB
repRM=myEq_RepLR(eqRA) | myEq_RepLR(eqMA)
repxl={x:l}
eqMCB=Eq(MCB,MA+RA*x-P*(x-a)) #;print(eqMCB)
eqMB =Eq(MB ,eqMCB.rhs.subs(repxl)) #;print(eqMB)
eqMB =Eq(MB ,eqMB.rhs.subs(repRM).factor()) #;print(eqMB)
eqMB =Eq(MB ,myNumer_Factor_Rep(eqMB.rhs,repl)) ;print("#",eqMB)
#
# Eq(RA, P*b**2*(3*a + b)/l**3)
# Eq(MA, -P*a*b**2/l**2)
# Eq(RB, P*a**2*(a + 3*b)/l**3)
# Eq(MB, -P*a**2*b/l**2)
いつもの? sympyの実行環境と 参考のおすすめです。
(テンプレート)
いつもと違うおすすめです。
参考文献
>集中荷重Pを受ける両端固定支持はり
>JSME p94
>両端固定ばり 5)
>構造力学公式集 p146