simple beam,uniformly distributed load はりの応力とSFD，BMD ver0.1 基本例題4.23 P101 「材料力学演習(20221021)」をsympyでやってみたい。 

等分布荷重
・**申し訳ありません。sympyのBeamができていません。数をこなして戻ってきます。** 
・Slope と BMDがでました。
・SFDはエラーがでたので？、SFDは、自作plotです。

# オリジナル
[基本例題4.23 P101](http://zairikiweb.starfree.jp/zai_enshuh/zai_enshuh_ver.3.3.pdf#page=106)＜[「材料力学演習(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)
　　　　　　　　　　？？？タブレット等で、pdfを開く事ができないかも。？？？　

# sympyで。微分で(オリジナル 様の方法です。)
・ver0.1 基本例題4.23 P101
```python
# ver0.1 基本例題4.23 P101
from sympy import *
from decimal import Decimal, ROUND_HALF_UP
var('q,RA,RA,RB,l,x'                   ,real=True)
def myRound1(x, d=1):
    p = Decimal(str(x)).quantize(Decimal(str(1/10**d)), rounding=ROUND_HALF_UP)
    p = float(p)
    return p
M=RA*x-Rational(1,2)*q*x**2            ;print("# M  =",M)
F=diff(M,x)                            ;print("# F  =",F)
RA_sol=solve(Eq(M.subs({x:l}),0),RA)[0];print("# RA =",RA_sol)
print()
rep={l:1.0,q:1000.0,RA:RA_sol}
print("# RA =",myRound1(RA.subs(rep),1))
print("# F  =",         F .subs(rep)   )
# M  = RA*x - q*x**2/2
# F  = RA - q*x
# RA = l*q/2

# RA = 500.0
# F  = 500.0 - 1000.0*x
```
# sympyのBeamで作図
・作図の順番が変で申し訳ありません。
![000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/94cc51bb-50b9-5242-b64b-1b750b1350b0.png)

![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/9080358b-a729-168e-251d-0a52cdf8edd4.png)

![222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/cb935e9f-b1b7-3910-b5e8-178571707ee2.png)

???　SFDは、自作plotです。

![333.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/729c2d3d-f007-3fc3-6e5d-f4faea13271c.png)


・ver0.2 基本例題4.23 P101
**??? 以下はエラーです。**
**(1)SFDで、...ValueError: value of A was not passed.**
　　SFDはエラーがでたので？、SFDは、自作plotです。
**(2)計算と作図が、同時にできませんでした。?b2にしてもだめでした。**

以下のため。def remove_last_term(expr):

https://qiita.com/mrrclb48z/items/146a4a29612700259460

```python
# ??? 以下はエラーです。
# ver0.2 基本例題4.23 P101
from sympy import *
from decimal import Decimal, ROUND_HALF_UP
from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E ,I =symbols('E ,I ')
l,myl=symbols('l,myl',postive=True)
R1,M1=symbols('R1,M1')
R2,M2=symbols('R2,M2')
var('  q,x')
var('myq,myE,myI')
def remove_last_term(expr):
    # 式を項ごとに分解し、最後の項を除去
    terms = expr.as_ordered_terms()[:-1]  # 最後の項を取り除く
    # 残りの項を使って式を再構成
    return Add(*terms)
def myRound1(x, d=1):
    p = Decimal(str(x)).quantize(Decimal(str(1/10**d)), rounding=ROUND_HALF_UP)
    p = float(p)
    return p
def myBeam_Tanjun_reaction_loads(l,E,I,q):
    b1=Beam(l,E,I)
    b1.apply_load(R1,0,-1)
    b1.apply_load(q ,0, 0,end=l)
    b1.apply_load(R2,l,-1)
    b1.solve_for_reaction_loads(R1,R2)
    R1R2=b1.reaction_loads
    return R1R2[R1],R1R2[R2]
def myBeam_Tanjun_Sakuzu_draw   (l,E,I,q):
    b2=Beam(l,E,I)
    b2.apply_load   (q ,0, 0,end=l)
    b2.apply_support(0 ,'pin')
    b2.apply_support(l ,'roller')
    p = b2.draw()  
    p.show() 
    return 
def MYshear_stress(expr):
    var('A')
    return remove_last_term(sympify(expr.subs({A:1})))
def myBeam_Tanjun_Sakuzu_SFDBMD (l,E,I,q):
    b3=Beam(l,E,I)
    b3.apply_load(R1,0,-1)
    b3.apply_load(q ,0, 0,end=l)
    b3.apply_load(R2,l,-1)
    b3.bc_deflection = [(0,0),(l,0)]
    b3.solve_for_reaction_loads(R1,R2)
    b3.plot_slope()
    b3.plot_bending_moment()
    # b3.plot_shear_stress()
    plot (MYshear_stress(b3.shear_stress()),(x,0,l))
    return 
# --------------------------------------------------------------------------------------------------------------------
myl,myE,myI,myq=1.0,200*(10**9),400*(10**6),1000
R1,R2          =myBeam_Tanjun_reaction_loads(myl,myE,myI,myq);print  ("#",myRound1(R1),myRound1(R2))
myBeam_Tanjun_Sakuzu_draw                   (myl,myE,myI,myq)
myBeam_Tanjun_Sakuzu_SFDBMD                 (myl,myE,myI,myq)
# -500.0 -500.0
```

# (勉強中) Mathematicaで

# (勉強中) MATLAB 追加のオプションSymbolic Math Toolbox で

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

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

https://docs.sympy.org/latest/modules/physics/continuum_mechanics/beam.html

https://docs.sympy.org/latest/modules/physics/continuum_mechanics/beam_problems.html

#### 参考文献

~~＞一部に等分布荷重を受ける単純支持はり~~
~~＞JSME p89~~
　
＞単純ばり 2)
＞構造力学公式集 表5.2 単純ばりの公式　p134