・ソースコードの実行を確認しました。
・作図未。作図のイメージは、...
(本日の)ChatGPT先生へ
# 質問リスト
1. 三モーメント法を教えて下さい。
2. 上記(三モーメント法)を、SymPyのソースコードで教えて下さい。
3. 上記の私の質問すべてから、Markdownのテキスト形式で、質問リストを出力して。
(以下回答抜粋)
簡単な2スパン連続梁(支点 A–B–C、等分布荷重 q、スパン長 l、EI一定)を解析します。
from sympy import symbols, Eq, solve, simplify
# 記号定義
M_A, M_B, M_C = symbols('M_A M_B M_C') # 支点モーメント
q, l, EI = symbols('q l EI') # 荷重、スパン長、曲げ剛性
# 三モーメント法の式(1スパン分)
# M_A * l + 4 * M_B * l + M_C * l = -q * l^2 * 2 (分布荷重の場合)
# 荷重による項(a1, a2)
a1 = q * l**2 / 24
a2 = q * l**2 / 24
# 三モーメント式: M_A*l + 4*M_B*l + M_C*l = -6*(a1/l + a2/l)
lhs = M_A * l + 4 * M_B * l + M_C * l
rhs = -6 * ((a1 / l) + (a2 / l))
# モーメント条件(端部モーメントゼロ)
eq1 = Eq(M_A, 0)
eq2 = Eq(M_C, 0)
eq3 = Eq(lhs, rhs)
# 解く
sol = solve([eq1, eq2, eq3], [M_A, M_B, M_C])
sol_simplified = {k: simplify(v) for k, v in sol.items()}
# 出力
for k, v in sol_simplified.items():
print(f'{k} = {v}')
✅ 結果(出力例)
M_A = 0
M_B = -q*l**2/8
M_C = 0
これは、中央支点Bに負のモーメント(上に凸の反力)がかかるということを示しています。連続梁の典型的な挙動です。
(以下省略)
Gemini先生へ
copilot先生へ
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
Qiita内
wikipedia
日本語版は、ありません。
web