1. はじめに

1
2013 年 11 月 05 日

懸垂線に関する質問について
新潟工科大学 情報電子工学科 竹野茂治

1

はじめに先日、懸垂線について質問を受けた。懸垂線とは、電線のように 2 点を固定して張った電線やひも、鎖などが、自重により少したわんだ曲線になるものであり、この曲線は双曲線関数 cosh で表されることが知られている。
これに対して受けた質問とは、以下のものである。

• Q1. 懸垂線の式を、支えとなる 2 点の位置と、ひもの長さ L でちゃんと表すことができるか。
これは、「懸垂線が cosh で表されることは知っているが、そこに現れるパラメータを、すべてその与えた条件で決定することができるか」という話のようで、よくよく聞いてみると、それはどうやら、• Q2. 実際に計算してみると、そのパラメータを決定する方程式は解くのが難しそうな方程式になるが、これはちゃんと解けるのか。
• Q3. それが解けない場合、例えば電線工事のように、数値としてそれらを必要とする人はどうしたらいいのか。という質問であることがわかった。これらについて考えてみることにする。

2問題の定式化[1] に書いたように、懸垂線の方程式は、一般に以下のようになる。
y=1
cosh(kx + a) + bk(k=ρgα)(1)

3. パラメータの満たすべき方程式2

ここで、cosh x = (ex + e−x )/2 であり、a, b は位置などによって決まる定数、ρ (> 0)はひもの線密度、g (> 0) は重力加速度、α (> 0) はひもにかかる張力の x 成分で、これも場所によらず定数となる (この式の導出については [1] を参照のこと)。
この α は定数であるが、実際にはひもを張った張り具合によって変わるので、事前に知ることは無理で、これも位置とひもの長さ、および ρ によって決まる値となる。
さて、この (1) のパラメータ a, b, k を以下の条件の下で決めるのが今回の話である。

• [ア] (1) は 2 点 (x, y) = (0, 0) と (A, H) を通る (A > 0, H ≥ 0)√• [イ] その 2 点間のひもの曲線長は L (L > A2 + H 2 )例えば、山中の送電線などを考えれば、支える 2 点は必ずしも水平位置にあるとは限らないので、今回は H = 0 とは仮定せずに計算する。また、実際の電線では、電線の「のび」も考慮する必要があるだろうが、今回は「のび」は無視して考える。

3

パラメータの満たすべき方程式

まずは、位置の条件 [ア] を (1) に代入する。(x, y) = (0, 0) を代入すると、

0=1cosh a + bk

より b = − cosh a/k となるから、(1) はy=11cosh(kx + a) − cosh akk(2)と表されることになる。この式 (2) に (x, y) = (A, H) を代入するとcosh(kA + a) − cosh a = kH(3)が得られる。
次に条件 [イ] であるが、曲線の長さは∫ A√

1 + (y 0 )2 dx

L=0(4)

4. パラメータの決定

3で得られるが、(2) より√√

1 + (y 0 )2=2√

cosh2 (kx + a) = cosh(kx + a)

1 + sinh (kx + a) =となるので (詳しくは、[1] を参照)、[∫ A

cosh(kx + a) dx =0]

x=A
1
1
1=sinh(kx + a)sinh(kA + a) − sinh akkkx=0となり、よって [イ] は、sinh(kA + a) − sinh a = kL(5)となる。この 2 つの条件 (3), (5) から 2 つのパラメータ k と a を決めることが目的となる。

4パラメータの決定

式変形を行うために、以後、

k= k̄,2a = ā −Ak= ā − k̄A2(6)と書いて、k, a の代わりに k̄, ā を決定することを考えることにする。
このとき、kA + a = ā + k̄A となるので、cosh, sinh の加法定理 ([1] 参照) により、(3),(5) の左辺は以下のようになる。

cosh(kA + a) − cosh a = cosh(ā + k̄A) − cosh(ā − k̄A) = 2 sinh ā sinh k̄A,sinh(kA + a) − sinh a = sinh(ā + k̄A) − sinh(ā − k̄A) = 2 cosh ā sinh k̄A
よって、(3), (5) はsinh ā sinh k̄A = k̄H,

cosh ā sinh k̄A = k̄L(7)4. パラメータの決定

4と書ける。この (7) の両者の比を取れば、tanh ā =HL(8)となるので、ā は(Hā = arctanhL)(9)と表されることになる。ここで、x = arctanh y は、y = tanh x の逆関数 (詳しくは [1]参照)。
また、cosh2 x − sinh2 x = 1 なので、(7) の自乗の差を考えればsinh2 k̄A = k̄ 2 (L2 − H 2 )となり、よって k̄ > 0, A > 0 より

√sinh k̄A = k̄ L2 − H 2となる。この両辺を k̄A で割ればsinh k̄A=k̄A√

L2 − H 2A(10)√が得られる。ここで、L > A2 + H 2 なので L2 − H 2 > A2 だからこの式の右辺は 1より大きいことに注意する。
今、関数 f0 (y) をsinh yyx = f0 (y) =とすると、(10) は√f0 (k̄A) =L2 − H 2A

4. パラメータの決定

5となるので、この x = f0 (y) の逆関数 y = f0−1 (x) により k̄A は(√k̄A = f0−1

L2 − H 2A)と書けるので、よって結局 k̄ は1k̄ = f0−1A(√

L2 − H 2A)(11)と表されることになる。
なお、f0 (y) = sinh y/y が、y > 0 で単調増加であることは、例えば sinh y のマクロー
リン展開により示される。

sinh y =ey − e−yyy3 y5 y7=++++ ···21! 3!
5!
7!

f0 (y) =sinh yy2 y4 y6= 1++++ ···
y3!
5!
7!

よりであるから、

f00 (y) =2y 4y 3 6y 5+++ ···3!
5!
7!となり、この右辺は y > 0 で正なので、よって f00 (y) > 0 となる。ゆえに x = f0 (y) には逆関数 y = f0−1 (x) が存在することがわかる。また、ロピタルの定理により

lim f0 (y) = lim cosh y = 1,y→+0y→+0

lim f0 (y) = lim cosh y = ∞y→∞y→∞なので、f0−1 (x) は x ≥ 1 を定義域とし、f0−1 (+1) = 0 で、x > 1 で滑らかになる。
√
よって、 L2 − H 2 /A > 1 より (11) の右辺は一意に定まる正の実数値となる。なお、
f00 (+0) = 0 なので、(f0−1 )0 (+0) = ∞ となっている。

5. 考察56考察

4 節の (9), (11) により k̄, ā が求められたので、よって k, a は (6) より(√)

L2 − H 22−1, k = 2k̄ = A f0A( )H

− 2f0−1 a = ā − k̄A = arctanhL(√L2 − H 2A)(12)と求まることになる。
さて、これが最初の Q2, Q3 に答えているかどうかを考えてみよう。
まず Q2 であるが、「解くのが難しそうな方程式」とは多分 (10) のことを指している。
これは、いわゆる「超越方程式」であり、累乗根や三角関数、指数・対数関数などの簡単な関数で答え (k̄) を表すことはできない。よって、左辺を f0 のように置いてその逆関数によって答を表す、ということを行ったのであるが、それは Q2 の質問者には「ごまかし」のように見えるかもしれない。
しかし、個人的には必ずしもそうは思わない。数学は新たな値を式で表すために色々な関数を導入してきた。累乗根は 2 次方程式や 3 次方程式の根を表現するのに導入された、と言っても過言ではない。指数関数や対数関数、三角関数や逆三角関数も同様である。特に、逆三角関数は、三角比から角を求める、ということを式で表現するために無理矢理作られているような逆関数である。だから、「逆三角関数を許容できる」程度には、今回の「f0−1 も許容できる」のではないかと思う。
ただ、「逆関数を用いずに」三角関数、指数・対数関数、累乗根などで表現することは確かに無理なので、その意味では、Q2 の質問に対しては「解けない」という答えになる。すなわち Q2 は、「『解く』ということの意味をどういう範囲で考えるか」によって答の変わる質問だと言えるだろう。
なお、(12) の式のうち、arctanh はarctanh x =11+xlog21−x(詳しくは [1] 参照) なので、この部分は逆関数を用いなくても簡単な関数で表現可能である。

5. 考察7そして Q3 であるが、上にあるように arctanh は簡単に関数電卓などで値を計算できるが、問題は f0−1 である。これは関数電卓では直接計算はできないが、ニュートン法などの数値計算が必要かと言えば、それは必ずしも必要ではないと思う。

x = f0 (y) = sinh y/y = (ey − e−y )/(2y) の値は、関数電卓でも簡単に計算できるので、それによって y から x への「数表」を作成することは難しくない。しかも、多分実用的には、H は A よりもだいぶ小さく、そして L < 2A 位までで十分だと思われるので、√

L2 − H 2L≤ <2A
A

より 1 < x < 2 位の表があれば十分である。f0 (y) は、f0 (2.2) = 2.026 位なので、よって 0 < y < 2.2 の範囲の表を作ればよいことになる。この範囲を必要な桁数だけ分割し、関数電卓などで計算すればよい。コンピュータを使えば、数表は一瞬で作ることもできる。
ただ、f00 (+0) = 0 であるから、実は y = 0 付近での x の変化は小さい。もしそれで問√題がある場合は、f0 (y) の代わりに f1 (Y ) = f0 ( Y ) の表を作るといいかもしれない。
それは、√Y
Y2 Y3f1 (Y ) = f0 ( Y ) = 1 + +++ ···3!
5!
7!
よりf10 (Y ) =12Y
3Y 2+++ ···
3!
5!
7!

すなわち f10 (+0) = 1/6 となり、Y = 0 の付近でも線形に変化するからである。
また、2 節でも述べたが、k = ρg/α のうち ρ, g はあらかじめわかるが、α は実際にひもを張ってみないとわからない。しかし、もし張った後でわかればいいのであれば、その張力を実測することで α を求めることはできる。α の値は張力の水平成分であるので張力の値自身ではないが、張力は曲線の接線方向を向くベクトルなので、その張力を測定する点での曲線の傾きを測定すれば、その水平成分は求めることができる。別な方向ではあるが、このような方法で k を求めることもできないわけではない。

6. 最後に68

最後に

本稿では、懸垂線のパラメータを、自然な境界条件から決定することはできるか、という問題について考察してきたが、意外に面倒な式が最後に残ることがわかった。そして、それをなんとか式で表すこと、そしてその値を計算する方法について考察してみた。
「解くこと」をどういう意味で考えるか、という問題は、数学の色々な分野で出てきて、しかもそれらは歴史とともに変化するデリケートな話でもある。
一般には「解を簡単な式で表すこと」を解くことと見るかもしれないが、数学の分野によっては、「簡単な式で表すこと」ができる方程式はそんなに多くはないことがわかり、研究の方向が「簡単な式で表すこと」から、「解をいくらでも近似計算するアルゴリズムを作ること」に変わり、それが解くことを意味するようになったり、そしてそのようなアルゴリズムが作れない場合は、「解が存在することを示すこと」が解くことを意味するように変遷している場合もある (例えば私が専門とする微分方程式など)。
そうなると、「解く (解が存在することを示す)」ということは「計算可能であるかどうか」とは無関係な話にもなるのであるが、一方で、その微分方程式の物理現象を仕事とする人は「解が存在する」のは「現象として解が見えるのだから明らか」なのでどうでもよく、むしろ「計算可能であるかどうか」の方が大事、という立場が主となる。
私は数学者なので、どちらかといえば「計算可能かどうか」の方には無頓着で、普段は、解が一意に決定すれば、逆にそれを簡単な式で表せるかどうかはあまり気にしない立場なのであるが、今回はそうではない立場でも考えてみた。質問自体に少し意表を突かれた形となったが、それはある意味で、私の数学者としての意識が一般の意識とはややずれていることを意味する。こういう質問によって、そういう点に気づくことができたのはよかったのかもしれない。

参考文献[1] 竹野茂治「双曲線関数について」2010 年 3 月、
http://takeno.iee.niit.ac.jp~shige/math/lecture/basic3/basic3.html