・境界値条件が間違っていても、モーメントの結果 が同じです。私が間違っていました。
・静定梁では反力・せん断力・曲げモーメントはつり合いだけで決まる。
以下のコードにdeflectionの境界値条件を削除しても結果が同じです。どうしてですか。
from sympy.physics.continuum_mechanics.beam import Beam
from sympy import *
var('x')
var('R1,R2')
def my_Simple():
P,w,l2,l4,E,I=8,1,2,4,1,1
b=Beam(l2+l2+l4,E,I)
b.apply_load(R1,0 ,-1)
b.apply_load(P ,l2 ,-1)
b.apply_load(w ,l2+l2 , 0,l2+l2+l4)
b.apply_load(R2,l2+l2+l4,-1)
b.bc_deflection=[(l2 ,0), \
(l2+l2+l4,0)]
b.solve_for_reaction_loads(R1,R2)
print("#",b.bending_moment().subs({x:l2+l2}))
print("#",b.shear_force() .subs({x:l2}), \
b.shear_force() .subs({x:l2+l2}))
b.plot_shear_force()
b.plot_bending_moment()
b.remove_load (R1,0 ,-1)
b.remove_load (R2,l2+l2+l4,-1)
b.apply_support(0 ,"pin")
b.apply_support(l2+l2+l4 ,"roller")
b.draw().show()
return
my_Simple()
オリジナル
・思ったより奥が深い。私だけです。申し訳ありません。
ChatGPT先生へ
質問の一覧
1. 以下のコードにdeflectionの境界値条件を削除しても結果が同じです。どうしてですか。
2. 教えて下さい
3. 矛盾しませんか。
4. 教えて下さい。
5. グラフで
6. 本チャット、この会話で出てきた全ての質問を、コピーできるいつもの Markdown形式 のテキストで一覧にしてください。追番も。空白行不要です。
(途中省略)
結論からいうと、今回の例では 「支点反力を未知数として解く」部分が b.solve_for_reaction_loads(R1, R2) によって完結しているため、bc_deflection(たわみ境界条件)を課してもしなくても、反力やせん断力・曲げモーメントの分布が同じ結果になるからです。
もう少し詳しく...
✅ まとめると:
・静定梁では反力・せん断力・曲げモーメントはつり合いだけで決まる。
・bc_deflection はたわみ・回転角を求めるときに必要。
・したがって、境界条件を消しても「モーメントやせん断力」には影響がない。
もし「じゃあ実際に deflection を計算したらどうなるの?」という確認コードを付けてお見せしましょうか?
(途中省略)
一見すると「境界条件を入れなくても曲げモーメント図や反力が正しい → じゃあ梁の解はもう決まっているはずなのに、なぜ deflection のときだけ積分定数が残るのか? 矛盾では?」という感じがしますね。
ここで大事なのは
梁の問題は 二段階に分けて解いている という点です。
(以下省略)