「材料力学2024 シーズン2》第12話：エネルギー法（後編） (PDF↓) (2024/7/16 AN) 12章」様を参考にsympyでやってみた。cantilever beam with a simply supported end

(旧タイトル)「材料力学2024 シーズン2》第12話：エネルギー法（後編） (PDF↓) (2024/7/16 AN) 12章」様を参考にsympyでやってみた。

# オリジナル
中谷彰宏の「かけがえのない材料力学」（大阪大学）様　
**材料力学2024 シーズン2**
**途中 pdf P31から**
http://www.md.ams.eng.osaka-u.ac.jp/~nakatani/Lectures/Strength_of_Materials/PDFs/2024zairikislides12.pdf#page=31
＜材料力学2024 シーズン2（本編 全13話，ボーナス 全2話)（公開年2024）
＜》第12話：エネルギー法（後編） (PDF↓) (2024/7/16 AN) 12章
＜http://www.md.ams.eng.osaka-u.ac.jp/~nakatani/Lectures/Strength_of_Materials/

# sympyのweb上での実行方法
　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で(エネルギー法じゃない方法で)
・別ページに移動するかも
#### ver0.1  
・本ページの最後に、参考文献があります。
```python
# はりのたわみの微分方程式による解法 等分布荷重
from sympy import *
var('q,l,v,x,X,M')
var('C1,C2')
M=X*x-q/2*x**2
EIv1=integrate(-M  ,x)+C1   #;print(EIv1)
EIv =integrate(EIv1,x)+C2   #;print(EIv)
print("#",solve([Eq(EIv1.subs({x:l}),0),  \
                 Eq(EIv .subs({x:0}),0),  \
                 Eq(EIv .subs({x:l}),0)], \
                [C1,C2,X])[X])                  
# 3*l*q/8
```
・本ページの最後で、ChatGPT先生に教えてもらいました。
```python
# はりのたわみの微分方程式による解法 等分布荷重 ４回微分方程式
from sympy import *
def nth_integral_with_conditions_multi_points_debug(expr, var, n, conditions):
    C = symbols(f'C1:{n+1}')  # 積分定数
    F = expr
    for i in range(n):
        F = integrate(F, var) + C[i]
    eqs = []
    for (point, deriv_order, val) in conditions:
        dF = F.diff(var, deriv_order)
        eq = dF.subs(var, point) - val
        # print(f"条件: F^{deriv_order}({point}) = {val} → 式: {eq}")
        eqs.append(eq)
    sol = solve(eqs, C, dict=True)
    if not sol:
        raise ValueError(f"\n条件が不十分または矛盾しています。\n"
                         f"定数 {C} に対する方程式系:\n" +
                         "\n".join([str(eq) for eq in eqs]))    
    F_final = F.subs(sol[0])
    return simplify(F_final)
var('q,x,l')
v=nth_integral_with_conditions_multi_points_debug( \
              q, x, 4,   \
            [            \
             (0, 2, 0),  \
             (0, 0, 0),  \
             (l, 0, 0),  \
             (l, 1, 0)   \
            ])
print("#",Poly(v).args[0])
print("#",-diff(v,x,3).subs({x:0}))
# l**3*q*x/48 - l*q*x**3/16 + q*x**4/24
# 3*l*q/8
```

# sympyで(エネルギー法で)(オリジナル 様を参考にいつもの方法で)
#### ver0.1  
・カスチリアーノの定理による解法 P245 例題12.7
```python
# pdf P31
from sympy import *
var('q,l,EI,x,P') 
M      =-Rational(1,2)*q*x**2-P*x       #;print("#",M)
V      =diff(M,x)                       #;print("#",V)
diff_MP=diff(M,P)                       #;print("#",diff_MP)
δP     =integrate(M/EI*diff_MP,(x,0,l)) #;print("#",δP)
print("#",solve(δP,P)[0])
# -3*l*q/8
```
・最小仕事の原理による解法 P246 例題12.8
```python
# pdf P32
from sympy import *
var('q,l,EI,X,x,P') 
M       =-Rational(1,2)*q*x**2-X*x       #;print("#",M)
V       =diff(M,x)                       #;print("#",V)
diff_MX =diff(M,X)                       #;print("#",diff_MX)
diff_UcX=integrate(M/EI*diff_MX,(x,0,l)) #;print("#",diff_UcX)
print("#",solve(diff_UcX,X)[0])
# -3*l*q/8
```
・単位荷重の定理による解法  P247 例題12.9
```python
# pdf P33
from sympy import *
var('q,l,EI,X,x,P') 
M0    =-Rational(1,2)*q*x**2 ;V0    =diff(M0    ,x)  #;print("#",V)
M1    =X*x                   ;V1    =diff(M1    ,X)  #;print("#",V)
M1_bar=x                     ;V1_bar=diff(M1_bar,x)  #;print("#",V
equ=Eq(integrate((M0+X*M1_bar)*M1_bar/EI,(x,0,l)),0) #;print("#",equ)
print("#",solve(equ,X)[0])
# 3*l*q/8
```

# sympyで作図
・未。これからです。

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

# いつもと違うおすすめです。
##### 翻訳 ChatGPT先生へ
①一端固定他端単純支持ばり を英語に翻訳して。専門用語で。

>"cantilever beam with a simply supported end"
>または、より技術的・明確に言う場合は：
>"beam fixed at one end and simply supported at the other"

②一端固定他端単純支持ばり を英語に翻訳して。専門用語で。
等分布荷重で。
>一端固定他端単純支持ばり
>▶ A beam fixed at one end and simply supported at the other
>または技術文書や工学論文では：
>▶ A beam with one end fixed and the other simply supported

③等分布荷重を受ける一端固定他端単純支持はり
を英語に翻訳して。専門用語で。
>以下のように専門的な英語で表現できます：
>「等分布荷重を受ける一端固定他端単純支持はり」
>→
>"A cantilever beam with a simply supported end subjected to a uniformly distributed load"
>または、より明確に構造形式を強調するなら：
>"A beam fixed at one end and simply supported at the other, under a uniformly distributed load (UDL)"
>補足（用語対応）:
>一端固定他端単純支持：fixed at one end and simply supported at the other（または propped cantilever beam とも呼ばれます）
>等分布荷重：uniformly distributed load（略して UDL）
>構造力学や土木工学の文脈では「propped cantilever beam under UDL」のように短く表現されることもあります。

#### Qiita内
・おすすめ２つです

https://qiita.com/mrrclb48z/items/c3274daf5f7a99cfe027#:~:text=%E3%81%8C%E9%9D%A2%E5%80%92%E3%81%8F%E3%81%95%E3%81%84%20P369-,%E3%81%8A%E3%81%99%E3%81%99%E3%82%81,-%EF%BC%92%E3%81%A4%E3%81%A7%E3%81%99

・ChatGPT先生より。

https://qiita.com/mrrclb48z/items/2205575edea5c44c9060

#### 参考文献
＞6・1 ・1 重複積分法による解法　
＞JSME p93
＞6・1 ・2 重ね合わせ法による解法【Example 6.7】 
＞JSME p99

＞表5.3　一端固定他端単純支持ばりの公式 1)
＞構造力学公式集 p142

・↓構造A,Bについて、10,11通りの解法があります。
https://www.amazon.co.jp/%E4%B8%8D%E9%9D%99%E5%AE%9A%E6%A7%8B%E9%80%A0%E3%81%AE%E8%A7%A3%E6%B3%95-%E5%B9%B3%E5%B6%8B-%E6%94%BF%E6%B2%BB/dp/4627463804
＞不静定構造の解法 単行本 – 1993/4/1
＞平嶋 政治 (著), 宮原 玄 (著)
＞p26 2.1A はりのたわみの微分方程式による解法 等分布荷重
＞p26 2.1B はりのたわみの微分方程式による解法 等分布荷重 ４回微分方程式