N88-BASICで懸垂線(改訂版)
2025/8/25(月)
N88-BASICで懸垂線(改訂版)
(catenary)
懸垂線(カテナリー、紐を垂らしたときの曲線)
■ 前提
https://ulprojectmail.blogspot.com/2025/08/catenary-8.html
懸垂線(改訂版) (8回目)
より
▼ 定義
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/λ)}
■ 解説
▼ 操作
矢印キーまたはマウスで右端を移動する
N88-BASICで懸垂線(改訂版)
(catenary)
懸垂線(カテナリー、紐を垂らしたときの曲線)
■ 前提
https://ulprojectmail.blogspot.com/2025/08/catenary-8.html
懸垂線(改訂版) (8回目)
より
▼ 定義
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/λ)}
■ 解説
▼ 操作
矢印キーまたはマウスで右端を移動する
Alt+6で高速化します
VL,NL-BASICとdlg~.zip(cate201.bas)は
このブログ(以下のリンク)から
ダウンロードできます
https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい
VL,NL-BASICとdlg~.zip(cate201.bas)は
このブログ(以下のリンク)から
ダウンロードできます
https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい