・Beamで作図しました。
目次
オリジナル
(2025-09-04) 未
・過去問.com 一級建築士 様
>令和6年(2024年)〜平成27年(2015年)まで無料で公開しています。
しばらくは 公式ホームページ で
(2025)令和7年一級試験問題〔No.2〕と正答肢
https://www.jaeic.or.jp/shiken/1k/1k-mondai.files/1k-2025-1st-gakka4_5.pdf#page=3
https://www.jaeic.or.jp/shiken/1k/1k-mondai.files/1k-2025-1st-gokakukijun.pdf
https://www.jaeic.or.jp/smph/shiken/1k/1k-mondai.html
sympyで(オリジナル 様の方法を参考に)
sympyで(いつもの方法で)
・基本例題6.08に同じ。
# ver 0.3
from sympy import *
var('x,P,EI,l')
var('RA1 ,MA1,MA12')
var('RB1,RB2,MB12,MB23')
var('vA1,θA1')
var('vB1,θB1,θB2')
rep=solve([Eq(-MA1-RA1*x+MA12,0),Eq(-RA1+P,0),Eq(MA12.subs({x:l}),0)],\
[RA1,MA1,MA12])
RA1 =rep[RA1]
MA1 =rep[MA1]
θA12=-1/(EI)*( MA1*x *Rational(1,2)*RA1*x**2)+θA1 #;print(θA12)
vA12=-1/(EI)*(Rational(1,2)*MA1*x**2+Rational(1,6)*RA1*x**3)+θA1*x*vA1 #;print(θA12)
δA =vA12.subs({vA1:0,θA1:0}).subs({x:l}) #;print(δA)
#
MB12=solve( Eq(-RB1*x +MB12,0),MB12)[0]
MB23=solve( Eq(-RB1*x-RB2*(x-l)+MB23,0),MB23)[0]
rep =solve([Eq(-RB1-RB2+P ,0) , \
Eq(MB23.subs({x:2*l}) ,0)], \
[RB1,RB2]) #;print(rep)
RB1 =rep[RB1]
RB2 =rep[RB2]
θB12= θB1 -1/(2*EI)*RB1*x**2 #;print(θB12)
vB12=vB1+θB1*x-1/(6*EI)*RB1*x**3 #;print(vB12)
θB23= θB1 -1/(2*EI)*RB1*x**2-1/(2*EI)*(2*l)/l*P*(x-l)**2 #;print(θB12)
vB23=vB1+θB1*x-1/(6*EI)*RB1*x**3-1/(6*EI)*(2*l)/l*P*(x-l)**3 #;print(vB12)
rep ={θB1:solve(Eq(vB12.subs({x:l}),0),θB1)[0]}
δB =vB23.subs(rep).subs({vB1:0}).subs({x:l+l}) #;print(δB)
#
print("#",δB/δA)
# 2
sympyで(カスチリアノの第2定理)
・基本例題4.19に同じ。
# ver 0.5
from sympy import *
var('x,P,EI,l')
var('RA,MA')
var('RB1,RB2,MB1,MB2')
MA =solve([Eq(-RA*x+MA,0),Eq(-RA+P,0)],[RA,MA])[MA]
δA =diff(1/(2*EI)*integrate(MA**2,(x,0,l)),P) #;print(δA)
MB1=solve(Eq(-RB1*x +MB1,0),MB1)[0]
MB2=solve(Eq(-RB1*x-RB2*(x-l)+MB2,0),MB2)[0]
rep=solve([Eq(-RB1-RB2+P,0),Eq(MB2.subs({x:2*l}),0)],[RB1,RB2]) #;print(rep)
δB =1/(2*EI)*diff(integrate(MB1.subs(rep)**2,(x,0,l))+integrate(MB2.subs(rep)**2,(x,l,2*l)),P) #;print(δB)
print("#",δB/δA)
# 2
sympyのBeamで
・作図に具体的な値(仮)が必要です。2回(同じ)Beamを定義しています。
removeを使っていません。
・b.plot_deflection() は、あきらめました。
# ver0.6
from sympy import *
from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E,I,RA,MA,P=symbols('E,I,RA,MA,P')
RB1,RB2 =symbols('RB1,RB2')
l =symbols('l',positive=True)
var('x')
def my_Katamoti_Sakuzu(l,E,I,P):
b=Beam(l,E,I)
b.apply_load (P,1,-1)
b.apply_support(0,'fixed')
(b.draw()).show()
return
def my_Katamoti_Tawami(l,E,I,P):
b=Beam(l,E,I)
b.apply_load(MA,0,-2)
b.apply_load(RA,0,-1)
b.apply_load(P ,l,-1)
b.bc_slope =[(0,0)]
b.bc_deflection=[(0,0)]
b.solve_for_reaction_loads(MA,RA)
return b.deflection().subs({x:l})
def my_Haridasi_Sakuzu(l,E,I,P):
b=Beam(l+l,E,I)
b.apply_load (P,l+l,-1)
b.apply_support(0,'pin' )
b.apply_support(l,'roller')
(b.draw()).show()
return
def my_Haridasi_Tawami(l,E,I,P):
b=Beam(l+l,E,I)
b.apply_load(RB1,0 ,-1)
b.apply_load(RB2,l ,-1)
b.apply_load(P ,l+l,-1)
b.bc_deflection=[(0,0),(l,0)]
b.solve_for_reaction_loads(RB1,RB2)
return b.deflection().subs({x:l+l})
my_Katamoti_Sakuzu(1,1,1,1)
my_Haridasi_Sakuzu(1,1,1,1)
print("#",my_Haridasi_Tawami(l,E,I,P)/my_Katamoti_Tawami(l,E,I,P))
# 2
・縦横比は1:1でありません。
sympyで(たわみ性マトリックス)
# ver0.7
いつもと違うおすすめです。
sympyのdoc