[ 新着記事
| 数学・プログラミング
| 天文・暦
| シリア語・Unicode・詩
| ジョーク
| 漫画・アニメ
| 字幕
| 哲学・ファンタジー
| 全記事
| チラ裏 ]
チラ裏
2021-03-05 ∫sec x dx (その3)
【9】 −π/2 < θ < π/2 の範囲において t = sec θ の原始関数が
t = arsinh (tan θ) 【A】
であることを確かめたが、それは
sinh t = tan θ 【ハ】
cosh t = sec θ 【ヒ】
の【ハ】を使ったもので、表現の一例にすぎない。【ヒ】の両辺の arcosh を取れば
t = arcosh (sec θ) 【B】
とも書けるし、【ハ】を【ヒ】で辺々割れば
tanh t = sin θ 【フ】
t = artanh (sin θ) 【C】
とも書ける(【フ】の右辺は、tan θ / sec θ = (sin θ/cos θ) / (1/cos θ) = sin θ / 1 による)。
さらに、例えば【ハ】の両辺の逆数を考えれば
csch t = cot θ
t = arcsch (cot θ) 【D】
のような表現も可能だし、同様に【ヒ】【フ】の逆数から、次の式が生じる:
t = arsech (cos θ) 【E】
t = arcoth (csc θ) 【F】
これら6種類のどれも、本質的に同じ意味の逆グーデルマン関数であり、従って、多かれ少なかれ sec の原始関数を表している。そのうち【A】については、前回一通り見た。最初の作図の点 S のy座標を利用したものだった。
一方、【B】は点 S のx座標を利用したものだが、このx座標は常に正で(作図から一目瞭然…双曲線の右の枝を見ているのだから、当然そうなる)、θ の正負の情報が失われてしまう(0 ≤ θ < π/2 の範囲に限り、そのまま有効)。言い換えると、cosh は1対1の関数でないため、arcosh には主値の問題が付きまとう。面倒なので後回しにして、今回は【C】を考えてみたい。
【10】 artanh の対数表現。y = tanh t = sinh t / cosh t = (et − e−t) / (et + e−t) について、A = et と置くと:
y = (A − 1/A) / (A + 1/A) = (A2 − 1) / (A2 + 1)
分母を払って y(A2 + 1) = A2 − 1, A2 − 1 = A2y + y
A2(1 − y) = 1 + y
A2 = (1 + y) / (1 − y)
y = tanh t の値域は (−1, 1) なので上記右辺は正、A = et も常に正、従って:
A = et = [(1 + y) / (1 − y)]1/2
t = log [(1 + y) / (1 − y)]1/2 = (1/2) log [(1 + y) / (1 − y)]
上の式が t = artanh y の対数表現。【C】は y = sin θ に当たる:
t = artanh (sin θ) = (1/2) log [(1 + sin θ) / (1 − sin θ)] 【ヘ】
【A】経由で得られる
log | sec θ + tan θ | 【ホ】
と比べると全然形は異なるが、【ホ】【ヘ】は、それぞれ、グーデルマン関数の2通りの表記【A】【C】の対数表現に当たる(従って、どちらも sec θ の原始関数)。三角関数の範囲で【ヘ】⇔【ホ】を直接変換することもできるが、例によって、ゴチャゴチャする。【ヘ】自体、シンプルな【C】と比べると、複雑で分かりにくい。
【ヘ】の log の引数に絶対値記号を付けている資料もあるが、(1 + sin θ) / (1 − sin θ) は負にならないので、絶対値記号は(無害だが)必要ない。
実は【C】バージョン t = artanh (sin θ) は、そのままの形で −π/2 < θ < π/2 の範囲外でも有効…という素晴らしい性質を持つ。sec の原始関数の決定版といえるかもしれない。
【11】 念のため【C】の導関数が sec θ であることを、直接的に確かめておこう。y = artanh x の導関数を得るため、まず x = tanh y を y について微分:
dx/dy = (sinh y / cosh y)′ = (cosh y cosh y − sinh y sinh y) / cosh2 y
= 1 / cosh2 y = 1 − tanh2 y
(最後の等号は、恒等式 1 = cosh2 y − sinh2 y の両辺を cosh2 y で割ったもの)
従って dy/dx = 1 / (1 − tanh2 y) = 1 / (1 − x2) 【マ】
y = artanh x の導関数は【マ】になることが分かった。従って【C】の導関数は:
d[artanh (sin θ)] / dθ = [1 / (1 − sin2 θ)] cos θ
= (1 / cos2 θ) cos θ = 1 / cos θ = sec θ
逆に言えば、sec θ を積分すると【C】になり、それを書き換えると【ヘ】になる(積分定数省略)。
2021-03-04 ∫sec x dx (その2)
【8】 グーデルマン関数 θ = arctan (sinh t) の逆関数
t = arsinh (tan θ) 【ナ】
は、sec θ の原始関数。それを確かめるため、前回は素直に、逆関数の微分法を使った。今回は【ナ】を直接 θ で微分してみる。
【ナ】を微分するには arsinh を微分しなければならない。y = arsinh x の導関数は何だろうか。x = sinh y, dx/dy = cosh y なので:
dy/dx = 1 / cosh y 【ニ】
【ニ】の右辺を x の式にすれば、その答えが得られる。そのためには、分母の cosh y を sinh y の式に変換すればいい(sinh y = x だから)。
恒等式 cosh2 y − sinh2 y = 1 から
cosh2 y = 1 + sinh2 y
cosh y = ±√1 + sinh2 y
実変数の cosh は常に正なので、複号のプラスを選んで【ニ】に代入すると:
dy/dx = 1 / √1 + sinh2 y = 1 / √1 + x2 【ヌ】
y = arsinh x の導関数は【ヌ】になることが分かった。
さっそく【ヌ】を使って本題の【ナ】を θ で微分する。(tan θ)′ = sec2 θ なので*2:
(arsinh (tan θ))′ = (1 / √1 + tan2 θ) sec2 θ = (1 / √sec2 θ) sec2 θ 【ネ】
考えている範囲 −π/2 < θ < π/2 では sec は正なので、符号の心配なく【ネ】の根号を外せる:
= (1 / sec θ) sec2 θ = sec θ
これで【ナ】を微分すると sec θ になること、すなわち sec θ の原始関数が(積分定数を無視して)【ナ】であることが直接、示された!
このやり方の方が、前回の方法より少し簡単かもしれない。
*2 証明は、(tan θ)′ = (sin θ / cos θ)′ に商の微分法を適用するだけ。
[cos θ cos θ − sin θ (−sin θ)] / cos2 θ = 1 / cos2 θ = sec2 θ
付記 グーデルマン関数の逆関数を使って sec の積分を考える方法は、比較的マイナーとはいえ、ネット上で検索すれば、有益な資料が見つかる。けれど【ナ】のバリエーションとして arcosh (sec θ) を採用しているテキストもある(例=ウィキペディアのロシア語版、Wolf Holzmann のPDFファイル)。arcosh の主値は負の値を取れないので、arcosh を使うなら θ が負の場合、arcosh を −arcosh に置き換えるべきだろう。
<補足> 通常のグーデルマン関数では、値域が −π/2 < θ < π/2 に制限されている。その逆関数【ナ】の定義域も、当然その範囲。従って、今のところ、その範囲では sec θ の原始関数は【ナ】…としか言えない。その範囲をはみ出して、例えば π/2 をまたぐような区間で sec を積分することはできないので(θ = π/2 では sec θ は定義されない)、その意味では、この制限には何の実害もない。一方、不連続点をまたがない形で、上記範囲外の積分区間を選ぶことは可能であり、それについては別途考える必要がある。arsinh 表現の場合、θ が任意だと、本文の「符号の心配なく根号を外せる」が成り立たなくなり、符号の調整が必要。これは、上の「付記」とは別の問題。
2021-03-03 ∫sec x dx グーデルマニアンの威力
sec x つまり 1 / cos x の積分は、いろいろな形で書き表されるものの、伝統的・教科書的な方法では、どれもこれも場当たり的・天下り的だった。グーデルマン関数の立場から眺めると、全てが明快に整理される。必要なのは、微積の初歩と好奇心だけ。
【4】 前回見たように、双曲線上の任意の点 S は、(sec θ, tan θ) と (cosh t, sinh t) の2通りに媒介変数表示される。もちろん、どちらも同一の点の別表記にすぎないので:
sec θ = cosh t 【カ】
tan θ = sinh t 【キ】
特に【キ】では、t と θ が1対1に対応する(双射)。そこで【キ】の両辺の arctan を取って、θ を t の関数 θ = f(t) と考えよう:
θ = arctan (sinh t) 【ク】
定義域は −∞ < t < ∞。arctan の値域は、通常の主値 −π/2 < θ < π/2 とする。
【キ】の両辺の arsinh を取れば、【ク】の逆関数 t = f−1(θ) を考えることもできる:
t = arsinh (tan θ) 【ケ】
【ケ】の意味は、前回の作図から一目瞭然。θ が上記の範囲(±90°)を動くとき、黄緑の点 Q が縦線上を自在に動く。それに対応して、青い点 S が双曲線上を動き、水色の面積の半分に当たる t が定まる。イメージの分かりやすさがいい。
以下で見るように、【ケ】の導関数は sec θ、従って【ケ】は sec θ の原始関数。三角関数の範囲で処理しようとすると不透明なトリックが必要になるが、グーデルマン関数を使うと、分かりやすい一本道になる。
【5】 双曲線関数の解析的な定義は cosh t = (et + e−t)/2, sinh t = (et − e−t)/2、従って:
(sinh t)′ = cosh t, (cosh t)′ = sinh t 【サ】
cosh2 t − sinh2 t = 1, 1 + sinh2 t = cosh2 t 【シ】
【サ】は (et)′ = et, (e−t)′ = −e−t による。【シ】が成り立つのは当然といえば当然だが(cosh t と sinh t は 双曲線 x2 − y2 = 1 の x と y なので)、定義からも容易に確認可能。
y = sinh t = (et − e−t)/2 の逆関数を t = arsinh y と書く。A = et と置くと:
y = (A − A−1)/2
両辺を 2A 倍して 2yA = A2 − 1, A2 − 2yA − 1 = 0
2次方程式を解いて A = y ± √y2 + 1
つまり et = y + √y2 + 1 (下記の理由で複号のマイナスを無視)
両辺の対数を取って arsinh y = t = log (y + √y2 + 1) 【ス】
−∞ < t < ∞ は実数なので A = et は正の実数であり、複号のマイナスは題意に適さない(y も実数)。
【6】 【ケ】の導関数 dt / dθ が sec θ であることを示したい。直接計算してもいいのだが、逆関数の微分なので、まずは素直に逆関数の微分法で。次の基本公式*1については既知とする:
d(arctan x) / dx = 1 / (1 + x2) 【タ】
とりあえず【ク】を t について微分。【タ】【サ】を使うと:
dθ / dt = [1 / (1 + sinh2 t)] cosh t (合成関数の微分法)
= (1 / cosh2 t) cosh t (【シ】より)
つまり dθ / dt = 1 / cosh t ……… (*)
従って dt / dθ = cosh t = sec θ (なぜなら【カ】)
レガシーな方法と比べると、あっけないほど簡単に、自然に結論が得られた。何よりいいこととして、「双曲線は (cosh t, sinh t) または (sec θ, tan θ) で表される」という認識さえあれば(前回の作図から、鮮明にイメージできる)、【カ】【キ】【ク】【ケ】は間違いようのない一本道。双曲線関数についての簡単な知識【5】や、逆関数の微分法【6】は、応用範囲の広い事柄であり、この方法なら「1/cos x の積分のやり方のトリック」を個別的に暗記する必要がない。
<参考> (*)によると、グーデルマン関数【ク】は、1 / cosh t = sech t の原始関数。グーデルマン関数のフォーマルな定義
gd u = ∫0t sech u du
は、この事実に対応している(t = 0 のとき【ク】の値が 0 であることから、積分定数は 0)。
【7】 【ケ】などを使って、sec θ の積分の伝統的表現(log | sec θ + tan θ | + C など)を導くことは、難しくない。【ケ】は arsinh の対数表現【ス】において y = tan θ としたものなので:
arsinh (tan θ) = log (tan θ + √tan2 θ + 1)
= log (tan θ + sec θ)
最後の等号については、前回の(☆☆☆)参照。…意味不明にも思える教科書の式 log | sec θ + tan θ | + C の正体は、【ケ】の arsinh (tan θ) を対数表現したものだった!
ただし、グーデルマン関数では θ の範囲が (−π/2, π/2) に制限されている。その範囲外のことは別途考える必要がある。
*1 検索すれば、説明ページがたくさん見つかる。
Derivative of arctan(x) - MIT OpenCourseWare (PDF)
Derivative of the Inverse of a Function - MIT OpenCourseWare (PDF)
2021-03-01 グーデルマン関数の可視化 円と双曲線 虹の懸け橋
【1】 cos θ の逆数 1 / cos θ を sec θ と書く(sec は secant の略)。cos θ が正なら sec θ も正。
図のように、単位円 x2 + y2 = 1 上の点 P を考える。三角関数の基礎によれば、P の座標は (cos θ, sin θ)、AQ の長さは tan θ。これは点 Q のy座標に当たる:
y = tan θ (☆)
恒等式 cos2 θ + sin2 θ = 1 の両辺を cos2 θ で割ると:
1 + tan2 θ = sec2 θ (☆☆)
さて、θ が −π/2 < θ < π/2 の範囲を動くとき、Q は黄緑の縦線上を動くが、「Q とy座標が等しい」点 S が、双曲線 x2 − y2 = 1 の右の枝(青い曲線)の上にも存在する。この点 S のx座標は 1 以上の正の数で、
x2 = 1 + y2
x = √1 + y2
を満たす。(☆)(☆☆)を使うと:
x = √1 + tan2 θ
= √sec2 θ
= sec θ (☆☆☆)
考えている範囲では sec θ は正の数なので、上記のように、単純に根号を外していい。
従って、双曲線 x2 − y2 = 1 の右の枝の上にある任意の点 S は、何らかの角度 θ を使って (sec θ, tan θ) と表される。ちなみに OQ の長さは sec θ なので、点 B は OQ を半径とする円上にある(図解)。
θ が −π/2 < θ < π/2 の範囲を動くとき、Q は黄緑の縦線上の全範囲を動き、それに対応して S は青い双曲線上の全範囲を動く。
一方、双曲角 t(それは水色の領域 SOA の面積の2倍に等しい)を使うと、点 S は (cosh t, sinh t) とも表される(水色の領域がx軸より下になる場合、その面積を負、つまり t を負とする)。
双曲角 t は、普通の意味での ∠SOA とは意味が異なる。普通の意味での ∠SOA 自体、θ = ∠QOA とは異なる角度。では θ と t は、どういう関係にあるのか? 点 S の座標を (sec θ, tan θ) と書くことも (cosh t, sinh t) と書くこともでき、それらは同じ値なのだから:
sec θ = cosh t 【ア】
tan θ = sinh t 【イ】
【イ】を使うと、θ の値を定めれば、自動的に t の値が定まる。逆に、t を定めれば θ が定まる。例えば【イ】の両辺の arctan を考えると:
θ = arctan (sinh t) 【ウ】
これによって、θ を t の関数 f(t) = arctan (sinh t) と考えることができる(グーデルマン関数と呼ばれる)。
【ア】を使ってもほぼ同様だが、【ア】は S のx座標なので常に正になり、それだけでは θ ないし t の正負を区別できない。【イ】は S のy座標なので θ と t が1対1対応(一方が正なら他方も正、一方が負なら他方も負)。だから、とりあえず【イ】を使うのが便利。
【2】 上記の関数 f は、sec の原始関数と関係している。自分の目で確かめてみよう。上の図では t = 1、つまり水色の面積は 1/2。このとき AQ の長さ(言い換えれば S のy座標)が 1 より少し大きいのは作図から明白。すなわち θ は π/4 = 45° より少し大きい。もし仮に θ = π/3 = 60° なら AQ = tan θ = √3 = 1.732… だが、図の AQ は、1.732… よりはだいぶ小さい。45° より少し大きいが、60° よりだいぶ小さいのだから、ざっと 50° くらいだろう。
さて、sec の原始関数のグラフ(下図の赤い曲線)を見ると、確かに縦座標が 1 のとき、横座標は π/4 より少し大きい。
グラフの縦線の間隔は π/12。一方、上記の目分量による 50° = 50π/180 = 5π/18 は π/12 を単位とすると 10/3 = 3.333… に当たる(5π/18 ÷ π/12 より)。縦座標が 1 の場所の赤曲線をじっくり見ると、確かに横座標 3.3 × π/12 くらい。50° というのは目分量なので誤差はあるが、「t = 1 のとき θ ≈ 3.3π/12」という対応は、sec の原始関数のグラフとよく一致している。…グーデルマン関数について、少し具体的な感触が得られた。
正確な計算によると【ウ】から
θ = arctan (sinh 1) = arctan 1.1752011… = 0.8657694… = 3.3069958… × π/12
この θ に対して
sec θ + tan θ = 2.7182818… = e
なので、教科書的な sec の原始関数を使っても:
log | sec θ + tan θ | = log e = 1
つまり上記の角度 θ と双曲角 t = 1 は対応していて、その対応関係は sec の原始関数で表される。このこと(グーデルマン関数の逆関数が sec の原始関数)については、次回、証明する。
【3】 これを考えるメリットは大きい:
いくらメリットが大きいからといって、積分を使って教科書的にグーデルマンを定義すると、その定義自体が天下り的に思える。上記の作図はこの欠点を補い、グーデルマン関数の意味を可視化したもの。アイデアの一部は The Weird World of the Gudermannian に基づく。内容を簡単化し、半径 OQ の円を考えることで OB = sec θ をイメージしやすくした。
「チラ裏」は、きちんとまとまった記事ではなく、断片的なメモです。
Map
の長所、splice
より速い要素挿入法も紹介。 〔最終更新: 2016年4月10日〕bdi
要素と Unicode 6.3 の新しい双方向アルゴリズム (2012-12-04)dir
属性は落とし穴が多い。HTML5 の <bdi>
は役立つ。近い将来、「ユーザー入力欄などの語句は、このタグで隔離」が常識になるかも。 〔最終更新: 2014年4月27日〕fad()
は濁りやすい。各種の代替手段を紹介。msystem.waw.pl
/ videolan.org