0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

P1P2片持ち梁の複数荷重 はりのたわみと不静定はり 基本例題6.12 P164「材料力学演習(20221021)」をsympyでやってみたい。

Last updated at Posted at 2024-12-16

オリジナル

基本例題6.12 P164 (pdf)「材料力学演習(20221021)一括(ver.3.3)」を勉強したい。#sympy
???タブレット等で、pdfを開く事ができないかも。??? 

(???途中です)sympyで

・ver0.1

# ver0.1
# 基本例題6.12 P164
# from sympy import *
# var('EI,P1,P2,a,b,x')
# var('MA,RA,θA,vA,l')
# MAB_str="MA+RA*x"                        #;print("#",MAB_str)
# MBC_str=MAB_str+"-P1*(x-a) "             #;print("#",MBC_str)
# MAB=sympify(MAB_str)                            
# MBC=sympify(MBC_str)                            
# θAB=-1/EI*(integrate(MAB,x)  )+θA        ;print("#",θAB)
# vAB=-1/EI*(integrate(MAB,x,x))+θA*x+vA   ;print("#",vAB)
# θBC=-1/EI*(integrate(MBC,x)  )           ;print("#",θBC.factor())
# vBC=-1/EI*(integrate(MBC,x,x))           ;print("#",vBC.factor())
# repC={x:l,RA:P1+P2,MA:-P1*a-P2*l}
# θC=θBC.subs(repC).simplify() ;θC_numer=(numer(θC)  ).expand() ;θC_denom=denom(θC)
# vC=vBC.subs(repC).simplify() ;vC_numer=(numer(θC)*2).expand() ;vC_denom=denom(vC)*2
# # 
# print("#",θC_numer,θC_denom)
# print("#",vC_numer,vC_denom)

sympyで。モーメントのつりあいより 

微分方程式の直接解法で

・ver0.2

# 基本例題6.12 P164
# ver0.2
from sympy import *
var('EI,P1,P2,a,b,x')
var('C0,C1,C2,C3')
M01_str="-(P1*(a-x)+P2*(a+b-x))"                              #;print("#",M01_str)
M12_str=          "-P2*(a+b-x) "                              #;print("#",M12_str)
M01=sympify(M01_str)                            
M12=sympify(M12_str)                            
v01=integrate(M01,x,x)+C0*x+C1                                 #;print("#",v01)
v12=integrate(M12,x,x)+C2*x+C3                                 #;print("#",v12)
rep0={x:0}
repa={x:a}
sol=solve([Eq(     v01   .subs(rep0),0),
           Eq(diff(v01,x).subs(rep0),0),
           Eq(     v01   .subs(repa),     v12   .subs(repa)),
           Eq(diff(v01,x).subs(repa),diff(v12,x).subs(repa))],
          [C0,C1,C2,C3])                                       #;print("#",sol)
rep={C0:sol[C0],C1:sol[C1],C2:sol[C2],C3:sol[C3]}
v01=collect(v01.subs(rep).expand(),[P1,P2])                    ;print("#",v01)
v12=collect(v12.subs(rep),[P1,P2])                             ;print("#",v12)
# P1*(-a*x**2/2 + x**3/6) + P2*(-a*x**2/2 - b*x**2/2 + x**3/6)
# P1*(a**3/6 - a**2*x/2) + P2*(x**3/6 + x**2*(-a/2 - b/2))

申し訳ありません。作図は適当にしました。sympyのBeamで。

いつもの? sympyの実行環境と 参考のおすすめです。

(テンプレート)

いつもと違うおすすめです。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?