トラス 前半の軸方向変形だけ「改15 一級建築士【構造力学個別問題】軸方向変形・たわみ－04」sympyで作図にチャレンジ。

・タイトルを変更予定です。
・作図は、sympyのTrussです。

**パイソニスタの方へ**
・**横向きにする方法のアドバイスをいただけると幸いです。**
・ MATLABなら、横向きにできるようです。

# オリジナル Youtube
**・軸方向変形 ＜「改15 一級建築士【構造力学個別問題】軸方向変形・たわみ－04」** (0:00~6:07)
でめまる構造 様 
https://www.youtube.com/watch?v=clkmFbw8-zI
＞別に他の方法を使っていただいても構いません。
＞やりやすい方法で求めていってください。

# wolframalphaで(オリジナル 様の方法を参考に)

https://www.wolframalpha.com/input?i=-B*L%2BP*L%3D0%2C-A*L%2BP*L%2BP*2*L%3D0%2CA%2CB&lang=ja

結果
A = 3 P , B = P

# ~~sympyのweb上での実行方法~~
・numpyのエラーがでます。
~~SymPy Live Shellで~~
~~https://qiita.com/mrrclb48z/items/00dd08b0317069be9342#web%E4%B8%8A%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%96%B9%E6%B3%95sympy-live-shell%E3%81%A7~~

# sympyで(オリジナル 様の方法を参考に)
・(勉強中) XXX法

# sympyで(Trussで)
・SymPy 1.13.3
・https://docs.sympy.org/latest/modules/physics/continuum_mechanics/truss.html

#### ver0.3
**・Lまで、おいしく???なかったです。Pはできました。**
・labelを２文字にしました。
```python
# ver0.3
from sympy.physics.continuum_mechanics.truss import Truss
import math
from sympy import *
var('P')
# var('L')
t = Truss()
t.add_node     (("02",0,2),("12",1,2))
t.add_node     (("01",0,1),("11",1,1))
t.add_node     (("00",0,0),("10",1,0))
t.add_member   (("0001","00","01"),("0102","01","02"))
t.add_member   (("1011","10","11"),("1112","11","12"))
t.add_member   (("0010","00","10"),("0111","01","11"),("0212","02","12"))
t.add_member   (("1001","10","01"),("1102","11","02"))
t.apply_support(("00","pinned"), ("10","roller"))
t.apply_load   (("01", P, 0), ("02", P, 0))
p = t.draw()
p.show()
# 
t.solve()
print("#",t.reaction_loads)
print("#",t.internal_forces)
print()
print("#",t.internal_forces.get('0001'))
print("#",t.internal_forces.get('0102'))
# {'R_00_x': -2*P, 'R_00_y': -3*P, 'R_10_y': 3*P}
# {'0001': 3*P, '0102': P, '1011': -P, '1112': 0, '0010': 2*P, '0111': P, '0212': 0, '1001': -2*sqrt(2)*P, '1102': -sqrt(2)*P}

# 3*P
# P
```
・縦横比が1:1に見えません。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/5b0fdce9-1294-46a6-b613-9ecb2e3be625.png)

#### ver0.2
・labelを1文字です。
```python
# ver0.2
from sympy.physics.continuum_mechanics.truss import Truss
import math
from sympy import *
var('P')
# var('L')
t = Truss()
t.add_node( ("Z", 0, 0),("A",  0, 1),("B", 0, 2))
t.add_node( ("C", 1, 0),("D",  1, 1),("E", 1, 2))
t.add_member(("ZA","Z","A"), ("AB","A","B"))
t.add_member(("CD","C","D"), ("DE","D","E"))
t.add_member(("ZC","Z","C"))
t.add_member(("AD","A","D"))
t.add_member(("BE","B","E"))
t.add_member(("CA","C","A"))
t.add_member(("DB","D","B"))
t.apply_support(("Z","pinned"), ("C","roller"))
t.apply_load(("A", P, 0), ("B", P, 0))
p = t.draw()
p.show()
# 
t.solve()
print("#",t.reaction_loads)
print("#",t.internal_forces)
print()
print("#",t.internal_forces.get('ZA'))
print("#",t.internal_forces.get('AB'))
# {'R_Z_x': -2*P, 'R_Z_y': -3*P, 'R_C_y': 3*P}
# {'ZA': 3*P, 'AB': P, 'CD': -P, 'DE': 0, 'ZC': 2*P, 'AD': P, 'BE': 0, 'CA': -2*sqrt(2)*P, 'DB': -sqrt(2)*P}

# 3*P
# P
```
#### ver0.1
・**横向きができませんでした。**
・作図までです。
・t.apply_support(("C","pinned"), ("D","roller"))　に角度をみつける事ができませんでした。
```python
# ver0.1
from sympy.physics.continuum_mechanics.truss import Truss
import math
from sympy import *
var('P')
# var('L')
t = Truss()
t.add_node( ("Z", 0, 1),("A",  1, 1),("B", 2, 1))
t.add_node( ("C", 0, 0),("D",  1, 0),("E", 2, 0))
t.add_member(("ZA","Z","A"), ("AB","A","B"))
t.add_member(("CD","C","D"), ("DE","D","E"))
t.add_member(("ZC","Z","C"))
t.add_member(("AD","A","D"))
t.add_member(("BE","B","E"))
t.add_member(("CA","C","A"))
t.add_member(("DB","D","B"))
t.apply_support(("Z","pinned"), ("C","roller"))
t.apply_load(("A", P, 270), ("B", P, 270))
p = t.draw()
p.show()
# 
t.solve()
print("#",t.reaction_loads)
print("#",t.internal_forces)
print()
print("#",t.internal_forces.get('ZA'))
print("#",t.internal_forces.get('AB'))
```
以下、エラーです。
```
sympy.matrices.exceptions.NonInvertibleMatrixError: Matrix det == 0; not invertible.
```
![222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/11531c88-d38d-4790-9c25-05160d825e86.png)

# いつもの? sympyの実行環境と 参考のおすすめです。
[(テンプレート)](https://qiita.com/mrrclb48z/items/00dd08b0317069be9342) 　

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

#### Qiita内の類題