(本日の)ChatGPT先生へ
質問の一覧
1. 単純ばりの自重によるたわみの計算方法を教えて下さい。等分布荷重と何が違いますか。
2. 等分布荷重と自重のそれぞれをsympyで教えて下さい。
3. お願いします。
4. たわみ曲線で比較したいです。
5. xの計算式で。
6. 要ります
7. ありがとうございました。
8. 本チャット、この会話で出てきた全ての質問を、コピーできるいつもの Markdown形式 のテキストで一覧にしてください。追番も。空白行不要です。
(途中省略)
3. 違いのまとめ
・等分布荷重:外部から一様に載荷される荷重(例:雪荷重、床荷重)。
・自重:梁そのものの質量による荷重。数式的には「等分布荷重の特別な場合」。
つまり数式の扱いは全く同じですが、荷重の決め方が異なります。
from sympy import symbols, integrate, solve, simplify
# 記号定義
x, L, q, E, I, rho, A, g, C1, C2 = symbols('x L q E I rho A g C1 C2')
# --- 曲げモーメント (等分布荷重) ---
M = q/2 * x * (L - x)
# たわみ方程式 EI y'' = M
y_dd = M / (E*I)
# 2回積分して y(x)
y_d = integrate(y_dd, x)
y = integrate(y_d, x)
# 積分定数追加
y = y + C1*x + C2
# 境界条件 y(0)=0, y(L)=0
sol = solve([y.subs(x,0), y.subs(x,L)], [C1,C2])
y = simplify(y.subs(sol)) # たわみ曲線(等分布荷重)
# --- 自重の場合 (q = rho*A*g) ---
q_self = rho*A*g
y_self = simplify(y.subs(q, q_self))
# --- 最大たわみ(中央 x=L/2)---
delta_max_uniform = simplify(y.subs(x, L/2))
delta_max_self = simplify(y_self.subs(x, L/2))
# --- 出力 ---
print("=== 等分布荷重のたわみ曲線 ===")
print(y)
print("\n=== 自重のたわみ曲線 ===")
print(y_self)
print("\n=== 等分布荷重の最大たわみ δmax ===")
print(delta_max_uniform)
print("\n=== 自重の最大たわみ δmax ===")
print(delta_max_self)
結果
=== 等分布荷重のたわみ曲線 ===
q*x*(-L**3 + 2*L*x**2 - x**3)/(24*E*I)
=== 自重のたわみ曲線 ===
A*g*rho*x*(-L**3 + 2*L*x**2 - x**3)/(24*E*I)
=== 等分布荷重の最大たわみ δmax ===
-5*L**4*q/(384*E*I)
=== 自重の最大たわみ δmax ===
-5*A*L**4*g*rho/(384*E*I)