パイソニスタの方へ
・sympyのBeamでできませんでした。
Piecewise と SingularityFunction のオススメのページを教えて下さい。
・タイトルを変更予定です。
Qiita_建築士
・目次
オリジナル
Youtube「令和6年学科構造」 構造力学問題No1-No6 解説 一級建築士試験 構造力学対策講座
やまもと構造塾+kakeno塾 様 (0:00~34:32) 〔No.2〕 4:21~10:50
sympyで(オリジナル 様の方法を参考に)
# 令和6年一級建築士試験学科Ⅳ(構造)〔No. 2 〕
# ver0.1
from sympy import *
var('EI,l' ,real=True,positive=True)
var('P,PA,PC',real=True)
sol=solve([Eq(P-PA-PC,0),Eq(PA*l**3/(3*EI),PC*(2*l)**3/(3*(2*EI)))],[PA,PC])
print("#",sol[PA]/sol[PC])
# 4
sympyのintegrate(多重積分)で
(参考) 「弘前大学 Home Sweet Home - 弘大ホーム」様
https://docs.sympy.org/latest/modules/integrals/integrals.html
・2重積分は累次積分で
# 令和6年一級建築士試験学科Ⅳ(構造)〔No. 2 〕
# ver 0.2
# ??? 偶然かも。点Cでたわみ0です。
from sympy import *
var("E,I,P,PA,PC,l,x")
sol=solve([Eq(P,PA+PC),
Eq( 1/( E*I)*integrate( PA* x ,(x,0, l),(x,0, l))
+1/(2*E*I)*integrate(-PC*(x-l),(x,l,3*l),(x,l,3*l)),0)],
[PA,PC])
print("#",sol[PA]/sol[PC])
# 4
sympyで、エネルギー法で
・3元連立方程式。たわみの一致とエネルギー法で。???ヒンジ 偶然かも
# 令和6年一級建築士試験学科Ⅳ(構造)〔No. 2 〕
# ver 0.3
from sympy import *
var("E,I,w,P,PA,PB,l,x")
UA=integrate( (PA*x)**2/(2* E*I),(x,0, l))
UB=integrate( (PB*x)**2/(2*2*E*I),(x,0,2*l))
sol=solve( [Eq(PA+PB,P),
Eq( UA/(Rational(1,2)*PA),
UB/(Rational(1,2)*PB)),
Eq(UA+UB, Rational(1,2)*P*w )
],[PA,PB,w])
print("#",sol)
print("#",sol[0][0]/sol[0][1])
# [(4*P/5, P/5, 4*P*l**3/(15*E*I))]
# 4
sympyで、単位荷重法で
・??? 連立方程式。左ひずみエネルギー と 右のひずみエネルギーで
# 令和6年一級建築士試験学科Ⅳ(構造)〔No. 2 〕
# ver 0.3
from sympy import *
var('E,I,P,l',positive=True)
var('PA,PB,x',positive=True)
MA=-PA*x;MA_bar=MA.subs({PA:1})
MB=-PB*x;MB_bar=MB.subs({PB:1})
sol=solve([Eq(PA+PB,P),
Eq(1/( E*I)*integrate(MA*MA_bar,(x,0, l )),
1/(2*E*I)*integrate(MB*MB_bar,(x,0,(2*l)))),
],[PA,PB])
print("#",sol)
print("#",sol[PA]/sol[PB])
# {PA: 4*P/5, PB: P/5}
# 4
sympyで、カスチリアノの第2定理で
・??? 連立方程式。左ひずみエネルギー と 右のひずみエネルギーで
# 令和6年一級建築士試験学科Ⅳ(構造)〔No. 2 〕
# ver 0.4
from sympy import *
var('E,I,P,l',positive=True)
var('PA,PB,x',positive=True)
MA=-PA*x;UA=1/( E*I)*integrate(MA**2,(x,0, l ))
MB=-PB*x;UB=1/(2*E*I)*integrate(MB**2,(x,0,(2*l)))
sol=solve([Eq(PA+PB,P),Eq(diff(UA,PA),diff(UB,PB)),],[PA,PB])
print("#",sol)
print("#",sol[PA]/sol[PB])
# {PA: 4*P/5, PB: P/5}
# 4
sympyで、片持ちはりのたわみ性マトリックス より
・??? 勉強中 wの方程式
# 令和6年一級建築士試験学科Ⅳ(構造)〔No.2 〕
# ver 0.5
from sympy import *
var('E,I,P,l',positive=True)
var('PA,PB,x',positive=True)
var('F2,M2')
w=Rational(1,6)*1/(E*I)*(Matrix([2*l**3,-3*l**2]).transpose()*Matrix([F2,M2]))[0]
print("#",w)
sol=solve([Eq(P,PA+PB),
Eq(w .subs({F2:PA,M2:0}),
w.subs({l:2*l,E:2*E}).subs({F2:PB,M2:0}))
],[PA,PB])
print("#",sol)
print("#",sol[PA]/sol[PB])
# (2*F2*l**3 - 3*M2*l**2)/(6*E*I)
# {PA: 4*P/5, PB: P/5}
# 4
print("#",w)
print("#",w.subs({F2:P,M2:0}))
# (2*F2*l**3 - 3*M2*l**2)/(6*E*I)
# P*l**3/(3*E*I)
sympyのBeamで できませんでした。
???
# 令和6年一級建築士試験学科Ⅳ(構造)〔No. 2 〕
# ver0.3
from sympy import *
from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E, I = symbols('E, I')
l=symbols('l',positive=True)
var("x")
b1 =Beam( l, E, I)
b2 =Beam(2*l, 2*E, I) # ???
# b2=Beam(2*l, E,2*I)
# b2=Beam(2*l,2*E*I,1 )
# b2=Beam(2*l,1,2*E*I )
b=b1.join(b2,"hinge")
M1, A1, M2, A2, P = symbols('M1 A1 M2 A2 P')
b.apply_load(A1 ,0,-1)
b.apply_load(M1 ,0,-2)
b.apply_load(P,l ,-1) # ????
# b.apply_load(P,l*1.000000001,-1) # ????
b.apply_load(A2,3*l,-1)
b.apply_load(M2,3*l,-2)
b.bc_slope =[(0,0), (3*l, 0)]
b.bc_deflection=[(0,0), (3*l, 0)]
b.solve_for_reaction_loads(M1, A1, M2, A2)
print("#",b.reaction_loads[A1]/b.reaction_loads[A2])
print("#",b.reaction_loads[A1]+b.reaction_loads[A2])
# 8
# -2*P
単位荷重法も、できませんでした
# 令和6年一級建築士試験学科Ⅳ(構造)〔No. 2 〕
# ver 0.4
# 単位荷重法です。積分計算が1回。sympyだと,私はあんまり回数が気になりません。
from sympy import *
var("E,I,P,PA,PC,l,x")
sol=solve([Eq(P,PA+PC),
Eq( 1/( E*I)*integrate(( PA* x )*( PA* 1 ),(x,0, l))
+1/(2*E*I)*integrate((-PC*(x-l)),(-PC*(1-l)),(x,l,3*l)),0)],
[PA,PC])
print("#",sol[PA]/sol[PC])
参考
sympyのdoc
Qiita
公式ホームページ
学科Ⅳ(構造)〔No.2〕と正答肢 3 4:1
https://www.jaeic.or.jp/shiken/1k/1k-mondai.files/1k-2024-1st-gakka4_5.pdf#page=3
https://www.jaeic.or.jp/shiken/1k/1k-mondai.files/1k-2024-1st-gokakukijun.pdf
「学科の試験」< 一級建築士を志す者に対して、...
https://www.jaeic.or.jp/smph/shiken/1k/1k-mondai.html
「学科の試験」< 二級建築士を志す者に対して、...
https://www.jaeic.or.jp/smph/shiken/2k/2k-mondai.html