オリジナル
基本例題2.01 P31
http://zairikiweb.starfree.jp/zai_enshuh/zai_enshuh_ver.3.3.pdf#page=36
「材料力学演習(20221021)一括(ver.3.3)」を勉強したい。>sympy
https://qiita.com/mrrclb48z/items/c3274daf5f7a99cfe027#%E4%BD%9C%E6%A5%AD%E4%B8%AD%E7%A7%81%E3%81%AE%E8%A7%A3%E7%AD%94sympy
sympyで
オリジナル 様の方法を参考に
・ver0.1
# ver0.1
from sympy import *
NAB,NBC=symbols('NAB NBC',real=True)
PB =symbols('PB' ,real=True)
A ,EE =symbols('A EE' ,real=True)
l1 ,l2 =symbols('l1 l2' ,real=True)
myBsyuhen=Eq(-NAB-PB+NBC,0)
dAB=NAB*l1/(A*EE)
dBC=NBC*l2/(A*EE)
myHenkei=Eq(dAB+dBC,0)
ans=solve([myBsyuhen,myHenkei],[NAB,NBC])
print("#",ans)
mySubs={PB:7,l1:0.7,l2:0.3}
print("#",round(ans[NAB].subs(mySubs),1) )
print("#",round(ans[NBC].subs(mySubs),1) )
# {NAB: -PB*l2/(l1 + l2), NBC: PB*l1/(l1 + l2)}
# -2.1
# 4.9
マトリックス変位法で(直列構造)
・ver0.2
# # # 基本例題2.01 p31
# ver0.2
from sympy import *
var('PA,PB,PC,AE,lAB,lBC')
var('fx1,fx2,fx3,k1,k2,u1,u2,u3')
f=Matrix([[fx1], \
[fx2], \
[fx3]])
K=Matrix([[ k1,-k1 , 0], \
[-k1,k1+k2,-k2], \
[ 0, -k2, k2]])
u=Matrix([[ u1], \
[ u2], \
[ u3]])
dic0=solve(Eq(f,K*u),[fx1,fx3,u2])
rep1={fx2:-PB,k1:AE/lAB,k2:AE/lBC,u1:0,u3:0}
rep2={PB:-7,lAB:0.7,lBC:0.3}
dic1={k:v.subs(rep1) for k,v in dic0.items()} # ;print("#",dic1)
dic2={k:v.subs(rep2) for k,v in dic1.items()} # ;print("#",dic2)
print("#",round(dic2[fx1],1),round(dic2[fx3],1))
# -2.10 -4.90
Mathematicaで
勉強中
作図
勉強中
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
参考文献
>一部に等分布荷重を受ける単純支持はり
>JSME p89
>単純ばり 2)
>構造力学公式集 表5.2 単純ばりの公式 p134