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?

ひずみエネルギとそれを使った材料力学 基本例題8.28 P284 「材料力学演習(20221021)」をsympyでやってみたい。

Last updated at Posted at 2024-11-20

・申し訳ありません。?小細工だらけです。いい方法をアドバイスをいただけると幸いです。
・作図もできていません。

パイソニスタの方へ
・教えて下さい。

オリジナル

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

sympyで

・ver0.1 p284 基本例題8.28

# ver0.1 p284 基本例題8.28
from sympy import *
var('P,l,a,b')
var('MB,PC')
MAB_str ="(MB-P*a-PC*l)+(P+PC)*x"                                                   ;print("#",MAB_str)
MBC_str = MAB_str                + "-P*(x-a)-MB"                                    ;print("#",MBC_str)
U       = "1/(2*EI)*integrate((" + MAB_str+")**2,(x,0,a))+" \
         +"1/(2*EI)*integrate((" + MBC_str+")**2,(x,a,l))"                          ;print("#",U)    
rep1={MB:0,PC:0}
rep2={l :a+b}
tB      =     "1/EI*integrate("  +str(diff(sympify(MAB_str)**2,MB)/2) +",(x,0,a))"  #;print("#",tB)    
tB      =sympify(tB).subs(rep1)                                                     #;print("#",tB)    
print()
# ? 手抜き
tB      =diff(sympify(U),MB).subs(rep1)                                              ;print("#",tB)    
vC      =diff(sympify(U),PC).subs(rep1).subs(rep2).expand()                          ;print("#",vC)    
# (MB-P*a-PC*l)+(P+PC)*x
# (MB-P*a-PC*l)+(P+PC)*x-P*(x-a)-MB
# 1/(2*EI)*integrate(((MB-P*a-PC*l)+(P+PC)*x)**2,(x,0,a))+1/(2*EI)*integrate(((MB-P*a-PC*l)+(P+PC)*x-P*(x-a)-MB)**2,(x,a,l))

# -P*a**2/(2*EI)
# P*a**3/(3*EI) + P*a**2*b/(2*EI)

・ver0.2 p284 基本例題8.28
・入力と出力だけにしました。

# ver0.2 p284 基本例題8.28
from sympy import *
var('P,l,a,b')
var('MB,PC')
MAB_str ="(MB-P*a-PC*l)+(P+PC)*x"                                                   ;print("#",MAB_str)
MBC_str = MAB_str                + "-P*(x-a)-MB"                                    ;print("#",MBC_str)
U       = "1/(2*EI)*integrate((" + MAB_str+")**2,(x,0,a))+" \
         +"1/(2*EI)*integrate((" + MBC_str+")**2,(x,a,l))"                         #;print("#",U)    
rep1={MB:0,PC:0}
rep2={l :a+b}
tB      =diff(sympify(U),MB).subs(rep1)                                             ;print("#",tB)    
vC      =diff(sympify(U),PC).subs(rep1).subs(rep2).expand()                         ;print("#",vC)    
# (MB-P*a-PC*l)+(P+PC)*x
# (MB-P*a-PC*l)+(P+PC)*x-P*(x-a)-MB
# -P*a**2/(2*EI)
# P*a**3/(3*EI) + P*a**2*b/(2*EI)

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

(テンプレート)

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

カスチリアノの第2定理<wikipedia

参考文献

>一部に等分布荷重を受ける単純支持はり
>JSME p89
 
>単純支持ばり 7)
>構造力学公式集 p136

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?