懸垂線(改訂版) (7回目)
2025/8/15(金)
懸垂線(改訂版) (7回目)
(catenary)
懸垂線(カテナリー、紐を垂らしたときの曲線)
■ 前提
▼ 定義
g :重力加速度[m/s2]
ρ :紐の線密度[kg/m]
L :紐の長さ[m] (0 < √(x12 + y12) < L)
y1 :紐の左端に対する右端の高さ[m]
x1 :紐の右端のx座標[m]
x0 :紐の底のx座標[m]
H :水平張力[N] (紐の頂点での張力)
y :紐の高さ[m] (紐の左端を原点とするxの関数)
y' :紐の傾き
▼ 紐の底のx座標x0
λ = H/(ρg) と置く
y(x) = λ{cosh(x/λ - x0/λ) - cosh(x0/λ)}
y'(x) = sinh(x/λ - x0/λ)
L = λ{sinh(x1/λ - x0/λ) + sinh(x0/λ)}
x0 = (1/2)(x1 - λlog{(1 + y1/L)/(1 - y1/L)}) … (y1/L > 0)
▼ 問題
(4) H を g,ρ,L,x1,y1 から求める方法を示せ
■ ニュートン法
▼ 説明
y = f(x)のxでの接線の傾きは微分したy'= f'(x)で
x = aの時の接線は
y - f(a) = f'(a)(x - a)より
y = f'(a)(x - a) + f(a)
これと、x軸(y = 0)との交点は
f'(a)(x - a) + f(a) = 0より
x = {af'(a) - f(a)} / f'(a)
x = a - f(a)/f'(a)
▼ 手順
x0 = a
x1 = a - f(a)/f'(a)
と置くと
xn+1 = xn - f(xn)/f'(xn)
これを、n=0,1,2, ... と繰返すと、
f(x) = 0の解の1つに近づく、
|f(xn)/f'(xn)| < ε
になるまで繰返す
■ マクローリン展開
▼ f(x)のマクローリン展開
f(0)(x) = ax2 + bx + c , f(0)(0) = c
f(1)(x) = 2ax + 1b , f(1)(0) = 1b
f(2)(x) = 1・2a , f(2)(0) = 1・2a
f(0)(x) = f(0)(0) + f(1)(0)x/1 + f(2)(0)x2/(1・2) + …
= Σn=0∞f(n)(0)xn/n!
▼ 双曲線関数
cosh(x) = {exp(x) + exp(-x)}/2
sinh(x) = {exp(x) - exp(-x)}/2
{cosh(x)}' = {exp(x) - exp(-x)}/2 = sinh(x)
{sinh(x)}' = {exp(x) + exp(-x)}/2 = cosh(x)
▼ sinh(x)のマクローリン展開
f(0)(x) = sinh(x), f(0)(0) = 0
f(1)(x) = cosh(x), f(1)(0) = 1
f(2)(x) = sinh(x), f(2)(0) = 0
f(3)(x) = cosh(x), f(3)(0) = 1
f(0)(x) = f(0)(0) + f(1)(0)x/1 + f(2)(0)x2/(1・2) + …
= x/1! + x3/3! + x5/5! + …
= x + x3/6 + x5/120 + …
sinh(x) = x + x3/6 + x5/120 + …
■ Hを解く
▼ L/λについての式
L = λ{sinh(x1/λ - x0/λ) + sinh(x0/λ)}
x0 = (1/2)(x1 - λlog{(1 + y1/L)/(1 - y1/L)})
Hはλにのみ含まれる
α = log{(1 + y1/L)/(1 - y1/L)}と置く
x0 = (1/2)(x1 - λα)
x0/λ = x1/(2λ) - α/2
L/λ = sinh(x1/λ - x0/λ) + sinh(x0/λ)
= sinh(x1/λ - {x1/(2λ) - α/2}) + sinh(x1/(2λ) - α/2)
= sinh(x1/(2λ) + α/2) + sinh(x1/(2λ) - α/2)
= sinh(x1/(2λ))cosh(α/2) + cosh(x1/(2λ))sinh(α/2)
+ sinh(x1/(2λ))cosh(α/2) - cosh(x1/(2λ))sinh(α/2)
= 2sinh(x1/(2λ))cosh(α/2)
よって
2sinh(x1/(2λ))cosh(α/2) = L/λ
を変形して
(2/L)cosh(α/2)sinh(x1/(2λ)) - 1/λ = 0
β = (1/L)cosh(α/2)と置く
f(λ) = 2βsinh(x1/(2λ)) - 1/λ = 0
となるλを求める
▼ λの近似式
sinh(x) ≒ x + x3/6 … マクローリン展開
|x|が小さいほど誤差が小さい
f(λ) = 2βsinh(x1/(2λ)) - 1/λ
のマクローリン展開による近似式を求める
|x1/(2λ)|が大きいほど、Hが小さいほど誤差が大くなる
f(λ) = 2βsinh(x1/(2λ)) - 1/λ
≒ 2β{x1/(2λ) + x13/(2λ)3/6} - 1/λ
= βx1/λ + βx13/(2λ)3/3 - 1/λ
= (βx1 - 1)/λ + βx13/λ3/(23・3) = 0
(βx1 - 1)λ2 + βx13/(23・3) = 0
λ ≒ √{βx13/(23・3 - 23・3βx1)} … (λ > 0, H > 0)より
= (x1/2)√{βx1/(6 - 6βx1)}
= x1/[2√{(6 - 6βx1)/βx1}]
= x1/[2√{6/(βx1) - 6}]
▼ f'(λ)を求める
f(λ) = 2βsinh(x1/(2λ)) - 1/λ
f'(λ) = -2β{x1/(2λ2)}cosh(x1/(2λ)) + 1/λ2
= (1/λ2){1 - βx1cosh(x1/(2λ))}
▼ ニュートン法
α = log{(1 + y1/L)/(1 - y1/L)}と置く … (αにHは含まれていない)
β = (1/L)cosh(α/2)と置く … (βにHは含まれていない)
f(λ) = 2βsinh(x1/(2λ)) - 1/λ = 0
f'(λ) = (1/λ2){1 - βx1cosh(x1/(2λ))}
λ ≒ x1/[2√{6/(βx1) - 6}] … 近似式
初期値λ0 = x1/[2√{6/(βx1) - 6}] … 近似式
Δλn = f(λn)/f'(λn)
λn+1 = λn - Δλn
λ = λn+1 (if |Δλn| < ε)
以上により誤差ε程度で λ を求めることができる
▼ Hを求める
λ = H/(ρg) より
H = ρgλ
■ 結果
▼ 定義
g :重力加速度[m/s2]
ρ :紐の線密度[kg/m]
L :紐の長さ[m] (0 < √(x12 + y12) < L)
y1 :紐の左端に対する右端の高さ[m]
x1 :紐の右端のx座標[m]
x0 :紐の底のx座標[m]
H :水平張力[N] (紐の頂点での張力)
y :紐の高さ[m] (紐の左端を原点とするxの関数)
λ = H/(ρg) と置くと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/λ)}
懸垂線(改訂版) (7回目)
(catenary)
懸垂線(カテナリー、紐を垂らしたときの曲線)
■ 前提
▼ 定義
g :重力加速度[m/s2]
ρ :紐の線密度[kg/m]
L :紐の長さ[m] (0 < √(x12 + y12) < L)
y1 :紐の左端に対する右端の高さ[m]
x1 :紐の右端のx座標[m]
x0 :紐の底のx座標[m]
H :水平張力[N] (紐の頂点での張力)
y :紐の高さ[m] (紐の左端を原点とするxの関数)
y' :紐の傾き
▼ 紐の底のx座標x0
λ = H/(ρg) と置く
y(x) = λ{cosh(x/λ - x0/λ) - cosh(x0/λ)}
y'(x) = sinh(x/λ - x0/λ)
L = λ{sinh(x1/λ - x0/λ) + sinh(x0/λ)}
x0 = (1/2)(x1 - λlog{(1 + y1/L)/(1 - y1/L)}) … (y1/L > 0)
▼ 問題
(4) H を g,ρ,L,x1,y1 から求める方法を示せ
■ ニュートン法
▼ 説明
y = f(x)のxでの接線の傾きは微分したy'= f'(x)で
x = aの時の接線は
y - f(a) = f'(a)(x - a)より
y = f'(a)(x - a) + f(a)
これと、x軸(y = 0)との交点は
f'(a)(x - a) + f(a) = 0より
x = {af'(a) - f(a)} / f'(a)
x = a - f(a)/f'(a)
▼ 手順
x0 = a
x1 = a - f(a)/f'(a)
と置くと
xn+1 = xn - f(xn)/f'(xn)
これを、n=0,1,2, ... と繰返すと、
f(x) = 0の解の1つに近づく、
|f(xn)/f'(xn)| < ε
になるまで繰返す
■ マクローリン展開
▼ f(x)のマクローリン展開
f(0)(x) = ax2 + bx + c , f(0)(0) = c
f(1)(x) = 2ax + 1b , f(1)(0) = 1b
f(2)(x) = 1・2a , f(2)(0) = 1・2a
f(0)(x) = f(0)(0) + f(1)(0)x/1 + f(2)(0)x2/(1・2) + …
= Σn=0∞f(n)(0)xn/n!
▼ 双曲線関数
cosh(x) = {exp(x) + exp(-x)}/2
sinh(x) = {exp(x) - exp(-x)}/2
{cosh(x)}' = {exp(x) - exp(-x)}/2 = sinh(x)
{sinh(x)}' = {exp(x) + exp(-x)}/2 = cosh(x)
▼ sinh(x)のマクローリン展開
f(0)(x) = sinh(x), f(0)(0) = 0
f(1)(x) = cosh(x), f(1)(0) = 1
f(2)(x) = sinh(x), f(2)(0) = 0
f(3)(x) = cosh(x), f(3)(0) = 1
f(0)(x) = f(0)(0) + f(1)(0)x/1 + f(2)(0)x2/(1・2) + …
= x/1! + x3/3! + x5/5! + …
= x + x3/6 + x5/120 + …
sinh(x) = x + x3/6 + x5/120 + …
■ Hを解く
▼ L/λについての式
L = λ{sinh(x1/λ - x0/λ) + sinh(x0/λ)}
x0 = (1/2)(x1 - λlog{(1 + y1/L)/(1 - y1/L)})
Hはλにのみ含まれる
α = log{(1 + y1/L)/(1 - y1/L)}と置く
x0 = (1/2)(x1 - λα)
x0/λ = x1/(2λ) - α/2
L/λ = sinh(x1/λ - x0/λ) + sinh(x0/λ)
= sinh(x1/λ - {x1/(2λ) - α/2}) + sinh(x1/(2λ) - α/2)
= sinh(x1/(2λ) + α/2) + sinh(x1/(2λ) - α/2)
= sinh(x1/(2λ))cosh(α/2) + cosh(x1/(2λ))sinh(α/2)
+ sinh(x1/(2λ))cosh(α/2) - cosh(x1/(2λ))sinh(α/2)
= 2sinh(x1/(2λ))cosh(α/2)
よって
2sinh(x1/(2λ))cosh(α/2) = L/λ
を変形して
(2/L)cosh(α/2)sinh(x1/(2λ)) - 1/λ = 0
β = (1/L)cosh(α/2)と置く
f(λ) = 2βsinh(x1/(2λ)) - 1/λ = 0
となるλを求める
▼ λの近似式
sinh(x) ≒ x + x3/6 … マクローリン展開
|x|が小さいほど誤差が小さい
f(λ) = 2βsinh(x1/(2λ)) - 1/λ
のマクローリン展開による近似式を求める
|x1/(2λ)|が大きいほど、Hが小さいほど誤差が大くなる
f(λ) = 2βsinh(x1/(2λ)) - 1/λ
≒ 2β{x1/(2λ) + x13/(2λ)3/6} - 1/λ
= βx1/λ + βx13/(2λ)3/3 - 1/λ
= (βx1 - 1)/λ + βx13/λ3/(23・3) = 0
(βx1 - 1)λ2 + βx13/(23・3) = 0
λ ≒ √{βx13/(23・3 - 23・3βx1)} … (λ > 0, H > 0)より
= (x1/2)√{βx1/(6 - 6βx1)}
= x1/[2√{(6 - 6βx1)/βx1}]
= x1/[2√{6/(βx1) - 6}]
▼ f'(λ)を求める
f(λ) = 2βsinh(x1/(2λ)) - 1/λ
f'(λ) = -2β{x1/(2λ2)}cosh(x1/(2λ)) + 1/λ2
= (1/λ2){1 - βx1cosh(x1/(2λ))}
▼ ニュートン法
α = log{(1 + y1/L)/(1 - y1/L)}と置く … (αにHは含まれていない)
β = (1/L)cosh(α/2)と置く … (βにHは含まれていない)
f(λ) = 2βsinh(x1/(2λ)) - 1/λ = 0
f'(λ) = (1/λ2){1 - βx1cosh(x1/(2λ))}
λ ≒ x1/[2√{6/(βx1) - 6}] … 近似式
初期値λ0 = x1/[2√{6/(βx1) - 6}] … 近似式
Δλn = f(λn)/f'(λn)
λn+1 = λn - Δλn
λ = λn+1 (if |Δλn| < ε)
以上により誤差ε程度で λ を求めることができる
▼ Hを求める
λ = H/(ρg) より
H = ρgλ
■ 結果
▼ 定義
g :重力加速度[m/s2]
ρ :紐の線密度[kg/m]
L :紐の長さ[m] (0 < √(x12 + y12) < L)
y1 :紐の左端に対する右端の高さ[m]
x1 :紐の右端のx座標[m]
x0 :紐の底のx座標[m]
H :水平張力[N] (紐の頂点での張力)
y :紐の高さ[m] (紐の左端を原点とするxの関数)
λ = H/(ρg) と置くと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/λ)}