懸垂線(改訂版) (8回目)

2025/8/20()
懸垂線(改訂版) (8回目)
 
(catenary)
懸垂線(カテナリー、紐を垂らしたときの曲線)
 
 問題
紐の両端を固定して垂らす
 
g  :重力加速度[m/s2]
ρ :紐の線密度[kg/m]
L  :紐の長さ[m] (0 < √(x12 + y12) < L)
x1 :紐の両端間の水平距離[m]
y1 :紐の左端に対する右端の高さ[m]
が分かっている
 
H  :水平張力[N] (紐の頂点での張力)
x0 :左端から紐の底までの水平距離[m]
y  :紐の高さ[m] (紐の左端を原点とするxの関数)
として次の問いに答えよ
 
(1) y(x) を g,ρ,x0,H,x で表せ
 
(2) L を g,ρ,x0,x1,H で表せ
 
(3) x0  g,ρ,L,x1,y1,H で表せ
 
(4) H  g,ρ,L,x1,y1 から求める方法を示せ
 
 
(4)でH、問(3)でx0が求まり問(1)で紐の形状を描くことができる
 
 
 略解
(1) y(x) を g,ρ,x0,H,x で表せ
λ = H/(ρg) と置く
y" = (1/λ)(1 + y'2)                        … 懸垂線の微分方程式
y'(x) = sinh(x/λ - x0/λ)                    … 懸垂線の傾き
y(x) = λ{cosh(x/λ - x0/λ) - cosh(x0/λ)}   … 懸垂線
 
(2) L を g,ρ,x0,x1,H で表せ
λ = H/(ρg) と置く
L = λ{sinh(x1/λ - x0/λ) + sinh(x0/λ)}  … 紐の長さ
 
(3) x0  g,ρ,L,x1,y1,H で表せ
λ = H/(ρg) と置く
α = log{(1 + y1/L)/(1 - y1/L)}と置く  … (αにHは含まれていない)
x0 = (1/2)(x1 - λα)
 
(4) H  g,ρ,L,x1,y1 から求める方法を示せ
λ = H/(ρg) と置く
 
λをニュートン法で求める
α = log{(1 + y1/L)/(1 - y1/L)}と置く
β = (1/L)cosh(α/2)と置く
f(λ) = 2βsinh(x1/(2/λ)) - 1/λ = 0
f'(λ) = (1/λ2){1 - βx1cosh(x1/(2λ))}
 
初期値λ0 = x1/[2√{6/(βx1) - 6}]      … 近似式
|x1/(2λ)|が大きいほど、Hが小さいほど誤差が大くなる
 
Δλn = f(λn)/f'(λn)
λn+1 = λn - Δλn 
λ = λn+1 (if λn| < ε)
以上により誤差ε程度で λ を求めることができる
よって
H = ρgλ
 
 まとめ
 定義
g  :重力加速度[m/s2]
ρ :紐の線密度[kg/m]
L  :紐の長さ[m] (0 < √(x12 + y12) < L)
x1 :紐の両端間の水平距離[m]
y1 :紐の左端に対する右端の高さ[m]
が分かっている
 
H  :水平張力[N] (紐の頂点での張力)
x0 :左端から紐の底までの水平距離[m]
y  :紐の高さ[m] (紐の左端を原点とするxの関数)
 
 H
H = ρgλ
 
 y(x)のグラフ
λをニュートン法で求める
α = log{(1 + y1/L)/(1 - y1/L)}と置く
β = (1/L)cosh(α/2)と置く
f(λ) = 2βsinh(x1/(2/λ)) - 1/λ = 0
f'(λ) = (1/λ2){1 - βx1cosh(x1/(2λ))}
 
初期値λ0 = x1/[2√{6/(βx1) - 6}]      … 近似式
Δλn = f(λn)/f'(λn)
λn+1 = λn - Δλn 
λ = λn+1 (if λn| < ε)
以上により誤差ε程度で λ を求めることができる
 
L, x1, y1 から求めたλ以下に代入
α = log{(1 + y1/L)/(1 - y1/L)}と置く
x0 = (1/2)(x1 - λα)
y(x) = λ{cosh(x - x0) - cosh(x0)}
 

このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)

d88ファイルの変換 (1回目)