30歳になったしブログでも書くか

諸行無常である、というこのこと自体は、常である。『万物流転の法則』自体は流転しない。そんな流転しない物事をできるだけ見ていたいね、ということで数学や物理について学んだりしようと思っているブログです。

【AM変調の理論と数学的導出を解説して実装する】を解説する

 

以下の記事の解説を試みる記事を書く。

AM変調の理論と数学的導出を解説して実装する | 機械学習と情報技術

...[A]

この記事を[A]と名付ける。

この記事とそのリンク記事が読めれば、AM変調は怖くない、といった感じだと思う。一度読んでみてほしい。

読めて理解できれば、僕のこの記事はいらない。ただ、この記事は骨太で、けっこう難しいようにも思う。

というわけで、解説を試みる。

電波は目に見えないものであるため、
数学的に表現することが実はもっとも理解できるものだと思う。

前回の記事

vmvsvs.hatenablog.com

の話では数式による表現はしていなかったが、
今回はむしろ数学を前面に出していこうと思う。

キャリア

[A]の記事において搬送波(キャリア)は次のように定義される:

 c(t) = A_c \cos (2 \pi f_c t )

ここで、 A_cは搬送波の振幅、f_cは搬送波の周波数である。

さらなる注意として、
 c(t)と書いた場合、 c(t)は、時間(=time)[tex  :  t]によって変わるということを意味する。

 cはキャリア(=carrier)の頭文字である。

つまり、搬送波は時間によって変化する量である。

物理的には電場の強さになるかと思われる。この数式が何の物理量を表現しているかは、物理現象について詳しくならないとわからない、あるいはどういう物理現象を想定しているかによる。これを専門家は”物理を入れる”と言ったりもするっぽい。

 

では、電場とはなにか、というところだが、ここでは電圧みたいなものと考えておいてもらっていいと思う

そして、そのキャリアが時刻で変化する様子をイコール(=)の右側で具体的に記述している。

数式の右辺を解読していく。

  A_c \cos (2  \pi f_c  t)は、掛け算を明示的に書くと、

 A_c  × \cos  ( 2 × \pi × f_c × t  )

となる。

明示的に掛け算を書くと、非常にわずらわしい見た目になるため、
基本的に省略される。数式の約束事である。

振幅  A_cにおける  _cは「下付き添え字」とか「サフィックス」と呼ばれるもので、記号が何を表しているかのヒントを添える目的がある。

今の場合、  A_cはキャリア(=carrier)の振幅(=amplitude)であるから、
このような書き方となっている。

 f_cも同様で、キャリア(=carrier)の周波数(=frequency)だからである。

そして、

 \cos(ほにゃらら)であるが、これはコサインカーヴと呼ばれるもので、さまざまな物理現象を描写する関数である。(※ブランド名ではありませn)

 

等速円運動の影を表す関数であり

ばねの運動を記述する関数であり

割円八線表の余弦にも表れる関数であり

また今回の通り、波の記述にも使われる超実用的な関数である。

サイン、コサイン、タンジェントと共に登場するよく数学の役に立たなさの槍玉にあげられる関数であるがw

割円八線表に現れる理由は、江戸時代に測量計算に使用されていたからである

つまり、測量計算にも役立つ関数というわけである!

円運動でわかる通り、周期的な関数であり、同じ軌道を何度も何度も繰り返す。

行ったり来たり循環する軌道を表現する場合に使用される基本的な関数である。

したがってその挙動はよくわかっている関数である。

よくわかっている、どころではなく、いかなる時刻  tにおける \cos (t)の数値の大きさもわかっている。

  \cos(1)の数値も計算できるし、

 \cos(1.1)の数値も、

あなたが  423.634とか適当な数値を言っても、 \cos  (423.634)は値を教えてくれる。

さて、「周期的な関数である」と言ったが、
では、周期はどれくらいなのか?

月曜日は7日周期でやってくる。

地球は1日周期で自転している。

地球は太陽の周りを1年周期で公転している。

[tex : \cos(x)]は円運動を記述しているので、360度周期で繰り返す。

 \cos (2x)だったら、どうだろう? \cosの中身が2倍されているので、
 xのときよりも、動きが2倍速い。

すると、当然、1周する時間=周期は2倍短くなる。つまりは、180度になる。

さて、じゃあ、 \cos(2 \pi f_c)なら、、、、?

周期は 2 \pi f_c倍短くなる。

そういうわけで、 \cosの中身を適当に何倍かすることで、様々な周期の波を表現できるのである。なんと便利なことだろう。

 

 

さて、ここまででだいぶ

 c(t) = A_c \cos (2 \pi f_c t )

という数式に親しむことができたかと思われる。

長々と数学のお約束事のような記述の話を書いてきたところで、
より、本質的な内容に移る。

 

搬送波を c(t)と書いているが、より実際に即した書き方をすると、

 c(x,t)と書く方がよい。

時間  tに依存するが、位置 xにも波は依存している。

 c(t) と書いたとき、暗黙のうちにどこかひとつの場所を固定して、その波の動き方を見ている。お風呂のうえで上下に運動しているアヒルのおもちゃを見ているような視点だ。これを横軸を時間として、上下変動を縦軸として書けば、 c(t)のグラフになるであろう。

一方で、ある時刻を固定して、つまり、水面をカメラで撮影した時の波のグラフは、

c(x)とでも書くべき、空間の関数となっている。

波というのは、時間の軸から見ても、空間の軸から見ても、波打っているものなのである。

 

メッセージ信号

 x(t)をメッセージ信号とする。

情報を運ぶベースバンド信号とも言うらしい。

  x(t)という書き方は数学に馴れない人にはわかりづらいかもしれない。

ここでの xは空間というよりは、未知数の意味としてのXである。

なぜ、「 x(t)をメッセージ信号とする。」という不親切な物言いしかできないのか?

それは説明者自身、明確にかけないものだからである。

それには2つの理由がある。

1つには、 x(t)は、ラジオであれば音声信号に対応する信号である。それはコサインカーブのように物理法則に従う行儀のいい規則的な変化ではないし、信号の変化の仕方が複雑すぎて、具体的に書き下すことができない。理屈的な説明をする上では、べつに具体的に知っている必要もないということもある。

2つには、メッセージ信号一般の話をしているわけでもあるから、そもそもが抽象的なのである。スキマスイッチの『奏』の音声を扱っているというわけでもないし、オールナイトニッポンの音声かもしれないし、そうではないかもしれないし、音声一般として考えたいわけであるから、どうしてもその情報はぼやける。

わかっていることとしては、時間とともに変動する量ということである。

そして、逆に、そうでありさえすれば、なんでもいいぜ、ということでもある。

まあ、ここではAMラジオの話をしていると思ってもらって、音声のメッセージを表していることと思おう。

そして、コンプレッサで大きさが調整されて、 x(t)の大きさは1以下にできていると思っておいてよい。

またしれっとここで、「 x(t)の大きさは1以下にできている」というようなことを書くと、読者は振り落とされる。数学は、あるいは数式は、思考を極限にまで省略あるいは尖らせたものであるから、理解するにはなんどもしがんで柔らかくする必要がある。 x(t)は音声であるから、コンプレッサとかで音量を調整することができる。一定程度を超える大音量は音割れするため、カットしてしまおうというようなことだ。そして、どうせ、音声をそのまま流すわけではないから、扱いやすいように適当に適当なつまみを回して、電圧が1を超えないようにしておくというわけだ。その方が理論的にも扱い易い。

 

AM変調信号

さて、AM変調だが、上記の c(t)と、メッセージ信号x(t)を使って、以下のAM変調信号を作る:

 s(t)  = (1 +  x(t) ) * c(t) = A_c(1 + x(t))\cos(2  \pi f_t )

ここで、本質的に重要なことは、「掛算(*)」をしているということである。

数学的には、数式上で掛け合わせるだけだが、現実的に信号同士を掛け合わせるためには、非常に大変で、ダイオードが必要になる。

ダイオードは半導体で、電圧と電流の関係が以下のような指数関数の関係となる:

(電圧) = exp(電流)- 1

ここで、指数関数の性質として、

 \exp(x) =  1 + x + \dfarc{x^2}{2} + \dfrac{x^3}{3!} + \dots

というテイラー展開が存在する。

あとの計算で使用するので、詳しく説明してみる。指数関数はいわゆる超越関数と呼ばれる種類の関数で、簡単に言うと、1,2,3,...とか、xとかだけを使用して足したり、掛けたり、割ったりして、表せない関数なのである。

ちなみに\cos(x)もそうである。

だがしかし、足したり、掛けたりを、無限に行うことを許せば、超越関数も表せてしまうというのが、テイラー展開というやつである。

微分という数学演算を使用することで、そういうことが可能になる。

いろいろと芋づる式に数学の果実が現れてくるが、ブログを読んでいく上では余分な脂肪である。しかし、この芋づる式にいろんなものが出てくるというはそこを過去に掘った人類がいたというわけで、そして、その人も人間なのである。そうして、人類は生きてきたのである。豊かだ。

さて、テイラー展開の3つめの項に掛け算[tex : \dfrac{x^2}{2}]に着目しよう。

ここに、入力されたもの(x)が2回掛け算されていることが見て取れる。
ここに掛け算が存在するということにより、AM変調を行えている。ここが本質的である。

 

電気回路

さて、AM変調の本質部分が垣間見れたところで、

いったん、この記事は終了する。

 

次の記事では、電気回路を見てゆきたい。要するに、電気回路の内部で、どのようにダイオードを組み込んで、メッセージ信号と搬送波を変調しているのかというところを見てみたい。

 

今回は数式の解説を多めに、
AM変調について見てみた。

 

 

 

 

 

 

 

 

 

【AM変調】ビジュアライズしたいAM変調ブログ

 

こんにちは。

 

今日はLenovo thinkpad X1 carbon 9thにzorinOSを入れて、
カフェでノートPC作業をしたくなった理由を話そうと思います。

 

最近、「manim」というものに興味を持っています。

 

manimは、math animationの略で、
数学のアニメーションを作るためのpythonライブラリです。

 

pythonというプログラミングの力を土台として、数学アニメーションを作る道具箱のようなものです。

 

たとえば、有名なところでは、
3Blue 1Brown channelがmanimを用いて、非常に美しい数学アニメーションを作成して、Youtubeにアップロードしています。
(ぜひ、見てみて下さい!)

 

僕も、こういう数学のアニメーションを作りたいと思ったので、
そして、家でこういう作業をするのはどうも集中できないので、
カフェでPC作業をするために贅沢にも、
ノートPCを買ったのでした。

 

うーむ、めっちゃいいわ。
thinkpad X1!!

 

さて、UfoniumというYoutubeチャンネルのmanimの解説動画を3個見たので、
調子に乗って、
manimを使って自分もアニメーションを作成しようと思う。

 

お題としては、

「AM変調」

というものを取り扱おうと思う。

 

AMラジオとかいうときの「AM変調」である。

 

これが変調というものを理解する上で、
基本となる考え方なのだが、
いまいちまだしっくりと来ていないため、
アウトプットしていこうと思う。

 

友人と一緒にAM変調に関してはわりとこすったので、
なんとなく理解しているが、
本当にちゃんと理解している
かというと怪しいところである。

 

要するには、
AM変調とは、
amplitude modulation、
つまり、
振幅(amplitude)を変調(modulate)する情報伝達方式である。

 

以下でその簡単な仕組みを解説する。

 

仮に、日本が他国と戦争したとして、その勝敗を全国の日本人に伝えたいとする。

昔であれば飛脚なり斥候なりが走り回って伝達したことであろうが、
我々の手元には電気という近代文明がある。

狭い範囲であれば、大声を出して「日本が勝利した!」と叫べば、多くの人に伝わるだろうが、今したいことは、全国の日本人に伝えたいのである。
電気を利用するには、まず、「日本が勝利した!」という音声(空気の粗密波)を、電気振動に変換する必要がある。

その変換はここでは割愛し、音声を電気信号に変換できたとしよう。

そして、ここもまた割愛するが、音声を電気信号に変換した信号を電波として発射することができる。

しかし、そのまま電波として全国に向けて発射しても、音声の振動数に対応する電波では、とても遠くまでは届かない。

一般的に電波、つまり電磁波は、波長が長い(同じことだが、振動数=周波数が低い)ほど、エネルギーが弱い。

(波のエネルギー)=(プランク定数)✕(振動数)

という公式が示すとおり、波のエネルギーは振動数に比例する。

 

これは高い声がある場合にはガラスのコップを割ってしまうことことからもわかると思う。

上記の通り、音声をその周波数のままに電波に変換したとしても、エネルギーが遠くの距離まで到達するほど強くない、という問題が1つにある。

では、遠くの距離まで伝搬するエネルギーの強い(つまり振動数の高い)電波を使用したくなる。これがいわゆるキャリア(搬送波)である。

そして、搬送波に音声信号を乗せるときに必要になるのが、変調というものになる。

ここで注意したいことは、目的は、搬送波に音声信号を乗せることが目的であるので、その手段は、AM変調以外にも様々あり(たとえば、FM変調)、また、音声信号をそのまま送信していないため、受信側では搬送波と音声信号の混ざりものから、音声信号だけを取り出す操作が必要であるということである。したがって、送信側における変調と、受信側での信号抽出(復調)はセットで考えるべきものである。

さて、AM変調とは、

搬送波の振幅を、音声信号の波形に変化するものになる。

・一般的に波は以下の要素で構成されている:

(振幅)(位相)(周波数)

・搬送波は、下記のような構成になっている:

(一定値の振幅)(位相)(高い周波数)

・音声信号(音声の電波)は下記のような構成になっている:

(音声に依存した振幅)(位相)(低い周波数)

・AM変調でこれらを変調して、最終的に送信される混合波が下記のようになる:

(音声に依存した振幅)(位相)(高い周波数)

 

この混合波であれば、
・遠くまで伝達し、
・また、音声の情報を持っている
という2条件を満たす電波となる。

 

めでたし、めでたし。

 

次回は、数学的な表現によるAM変調を見ていこうと思う。

 

 

おわり

 

Lisp,Stallman,Emacs,Linux,zorinOS,,,最後に猫ちゃんが現れた

 

こんにちは。

zorinOSをlenovo thinkpad X1 carbon 9th 8GBに導入して、
エンジニア気取っているアラサーです。

調子乗って、linuxOSを使っているもんだから、
なにかこうエンジニアっぽいことをしたくなり、
いろいろ調べているうちに、
Lispというプログラミング言語に非常に関心を寄せるようになりました。

それから、
リチャード・ストールマン(Richard Stallman)というおっさんに巡り合うことになりました。

リチャード・ストールマン

この人は、とやかく説明するよりも、「2ちゃんねる創始者のひろゆき」が”尊敬している人”という認識でいいかと思います。

あのひろゆきが尊敬するおっさんって面白そうだなってなりますよね。

まだエンジニア気取りの僕がこのおっさんに関して説明すると、
MITという世界最高峰の頭脳が集まるアメリカの大学出身のソフトウェアエンジニアであり、GNUというディストリビューションやemacsというエディタを作成した人で、Lisp信者です。

けっこう思想的に強いっぽい人で、

「ソフトウェアは自由でなければならないんだぁ」

という考えの持ち主で、
オープンソース(みんなが読めて、ソースコードを編集できて、開発できて、再配布できる)という考え方をIT業界に持ち込んだ人っぽい。

GNUというのを学生時代から耳にしてきたのだが、
いまいちそれが何なのか、深堀りすることはなかったが、
なんとなく理解し始めてきちゃ。

たとえばこの僕が導入したzorinOSは、カーネルと呼ばれる中核となる機能と、シェルという核を取り囲む殻で構成されている。

カーネルはLinuxというカーネルを使用しており、
シェルにおいては、GNU(ツール)を使用している。

いろいろなアプリケーションはその核と殻の上に乗っかって動作しているらしい。

そのGNU(ツールの集合体)を創設したのが、このストールマンです。

zorinOSを導入してからというもの
コンピュータへの解像度が徐々に上がっている今日この頃です。

 

さて、とりあえず、なんとなくLispを触ってみたいなぁということで、
いろいろ調べて、Lispを扱っている人は、賢いがちなので、僕もバリバリLispを使ってみようというところにきている。

そして、このLisp信者のストールマンが開発したと言われるemacsというエディタをインストールしてみたり、sblcというLispのコンパイラ(翻訳者)を入れてみたりしている。

slyというLIspの開発環境(ターミナルとエディタが合体したようなもの)を導入しようとしているが、全然うまくいかない。

まず、emacsがよくわからない。

ワードやメモ帳なんかのエディタのような自然な操作性がない。

Ctrl + xや、Alt + xなどの謎のショートカットキーを使用して、ファイルを保存したり、バッファ?とかいうものを起動したりする。

(しかし、考えてみると、非常に整理された考え方なのかもしれない。文字を入力するという操作と、ファイルを保存するという操作は、質的に異なる操作である。メモ帳について考えてみると、ファイルを開く、保存する、閉じるという命令と、ファイルに文字を入力するのは違うもんな、)

 

とりあえず、僕は、いま、
melpa(というスマホにとってのApp StoreとかGoogle Playみたいなもの)に検索をかけて、
slcというソフトをインストールをしようとしているが、
「No Match」というエラーが出たりしてAIに聞いている。

最後に猫ちゃんが登場して

猫ちゃん

 

非常にイライラしてた脳が癒やされた。

今回の記事は、ソフトウェアの海に溺れて、
イライラして、最後猫ちゃんに癒やされたアラサーがコメダカフェの1角に存在したということを報告する記事です。

 

 

おしまい

【ZorinOS】Linux OSにデビューしてみた

 

こんにちは。

 

今回はLinux OSを初めて導入してみた件について書いていこうと思います。

 

令和8年の測量士の試験に合格し、合格祝いに何かを自分に与えてあげようと思った。

 

資格の勉強(=自称:しかべん)に、カフェに行くことが多く、カフェでの調べものをたくさんしたいため、ノートPCがほしいな、と思った。

 

しかし、現在、デスクトップPCを持っており、ゲーミングもできるそこそこいいPCだから、そんなにハイスペノートPCがいるわけでもないため、どちらかというと低スペックの最低限の機能を使用できるPCならそれでいいな、という感じだった。

 

とはいえ、PCなんてハイスペに越したことはない。

 

Geminiと色々と話しているうちに、LinuxOSは、OSが占めるデータサイズが少ない、という情報を得た。

 

ざっくりと、

windows OSで、core i5のものと、

Linux OS で、core i3が同等

という情報を得た。

 

え、そんなハックがあるのか?と思い、色々調べるうちに、

OSの挿し替えなんかも面白そうだな、と思い、この度、

「低スペノートPCに、Linux OSを入れて、サクサク動かそう計画」

が始動した。

 

計画としては、

4GB, core i3で1万円〜2万円の限界ギリギリのノートPCを購入して、

windoswOSを削除して、zorinOSを導入する。

 

OSの軽さのおかげで、サクサク動作!!(⤴)

 

というものだった。

 

windowsOSは、贅肉のようなプロセスがバックグラウンドで動いており、

そのせいでコアなりスレッドなりを消費して、動作を遅くなっているということだった。

ハイスペPCであれば、そういう贅沢も気にせず、ぐんぐん動くわけだが。

しかし、こちらとしては、

「低スペノートPCに、Linux OSを入れて、サクサク動かそう計画」

なのでした。

 

さて、では、実際の結論としてはどうだったかというとだが。

 

オンラインで買ったほうがよかったのかもしれないが、

実機のキーボードタイプ感を知りたかったというのもあり、実店舗に行った。

 

大阪の秋葉原と呼ばれる「日本橋」に行った。

 

PCコンフルというやけに接客がいい店を何軒もはしごして、

結局、中古の

Lenovo thinkpad X1 carbon 9th 8GBを4万円ちょうど、で購入した。

 

最近、なにか、こう、中古というものに惹かれておる。

新品であるということはそれほど重要でないな、と思い始めている。

自分はどちからというと衛生観念が低く、ものの扱いもそれほど丁寧な方ではないため、新品で購入しても、劣化する間隔が早い。

 

僕の手にわたり、使用した瞬間に中古になるのであれば、

もはや最初から中古でいいな、というわけである。

 

そういうわけで、

ビジネスバッグや、夏用のスラックスを購入して、

そしてノートPCまでも中古で購入したわけである。

 

 

Lenovo thinkpad X1といえば、9thであるにせよ、

Lenovoのフラッグシップ機である。

 

それがこの一つ前の8thのX1が4.5万円で売っている中、

(メモリ16GBだったが)

これは4万円ちょっきりだった。

 

理由としては、windowsを入れるなら、8GBでは心もとないという意見から、

在庫として残り続けていたらしい。

 

店側としても早く在庫をはきたいということもあり、

かなり破格(と言ってもいいような値段)で売られていた。

 

まあそれでもなお、

2万円台で購入したかった僕は、

windowsを入れずに、LinuxOSを入れて使用するので、

windowsのライセンスキーいらないので、

2万円ほど値引きしてください、と交渉した。

 

しかし、ライセンスキーはこの端末のこのマザボに紐付いているため、ライセンスを解除することができないということで、

LinuxOSを使用するから、windowsOSは削除するというのに、

ライセンスキー代も購入して、

泣く泣く、(しかし、ときめいていたので)4万円で購入することになった。

 

ま!Linux入れるなら、メモリ8GBであっても気にならないし、

Linuxを導入する意味があるなと思ったし、

Lenovoのthinkpad X1の画面の縦の長さが少しだけ(文1-2行分)長い、というユーザーフレンドリー具合や、

キーボード中央の赤いまるポチも気に入ったので、

この端末を購入することとなった。

 

ときめいていたので、

購入した際は、満足感がかなり高かった。

 

今、このブログもこのPCで書いている。

 

さて、zorinOSをインストールする段階である。

色々調べていると、Linux mintも初心者用らしくて、良さそうだったのだが、

まあとりあえずzorinOSにしてみた。

 

USBにrufusでisoファイルを書き込み、

thinkpadに挿して

USB bootを選択して、

zorinを起動して、インストール。

 

日本語入力ができないので、

LinuxにおけるIMEのようなものを設定して、

なんとか今、日本語入力できるようになった。

 

AI時代で、なんでもAIに聞けば答えてもらえる時代だからこそ、

OSの変更なんてことができているみたいなところがある。

 

なにもかも調べながらでないと、Linuxは進めないので、

自分で検索していたら、なかなか進めなかっただろうな。。。

 

以上、Linux OSのzorinOSデビューを果たしたという話でした。

 

おしまい

 

最小二乗法と測量網平均!誤差をどのように捉えるか?

 

測量の現場、あるいは、観測データの解析において、毎回僕らは「観測誤差」というものに向き合うことになる。

 

トータルステーションを設置するときに、求心作業と整準作業を行い、器械高をメジャーで計測するが、その各々の作業に誤差が付きまとう。

 

ミラーを持って水泡管を見ながら水平にプリズムを立てて、観測するにしても、2回観測すれば、その2個の観測値は同じにならなかったりする。

 

もちろん誤差は、それほど大きな量ではないけれども、器械設置にも誤差があり、観測にも誤差があり、そもそもの基準点にも誤差があり、

 

誤差、誤差、誤差…と散り積もって、実際の観測値にどれほど真実味があるのかわかったものではない。

 

そんな観測値・計測値の捉えどころのなさを、体系立てて説明してくれている本についに出会った。

 

田嶋稔/小牧和雄

『最小二乗法と測量網平均の基礎』

(東洋書店)

である。

 

最小二乗法という考え方は、はじめ、ルジャンドルが水星の軌道を天体観測値から計算するときに使用されたらしい。

 

最小二乗法というのは、平たく言えば、平均を取る、ということである。

 

たとえば、3と5の平均は(3+5)÷2で、4である。

足して2で割るってやつである。

なんか小栗旬とゴリラを足して2で割ったような顔だねーのやつである。

 

もう少し一般的に言えば、データの合計をデータの個数で割るというやつである。

 

漢字から説明すれば、「たいらに、ならす」ということである。飛び出たところを削って、足りないところにあてる。

 

しかし、平均値には、別の見方があるんだよ、というのがこの本の最初の主張である。

 

その主張とは、

平均値は誤差の二乗の合計を最小にするんだよ。

誤差の2乗の和を最小にする値こそが、平均値なんだよ。

というものである。

 

詳らかに見ていこうッ。

先ほどの例、3と5の平均は4を、最小二乗法的に見てみよう。

 

平均値が何か知らない人(万田くん(仮))が、平均値は誤差の集積を最小にするものなんだよ、という定義を聞いて、計算してみようとしたと仮定してほしい。

 

万田くんは平均値は足して2で割れば算出できることを知らないが、めちゃくちゃ賢いので、以下のように計算を始めた。

 

私は平均値がわからないから、とりあえず、xとおく。わからないものを文字にして、数式に組み込む、この考え方こそが代数学だ。

 

誤差の二乗を最小にするってわけだし、まず誤差を計算すると、

x-3、x-5

が誤差だな。

その二乗だから、

(x-3)^2、(x-5)^2

これが誤差の二乗。

 

これを足して、

(x-3)^2+(x-5)^2

これが、最小となるxの値が平均値だということか。

万田くんは考えた。

これは、xがいろいろな値を取る時、二次関数になる。放物線を描く。

(x-3)^2+(x-5)^2=2x^2-16x+34

で、xの二次式だからな。

グラフを描いてみると、以下のようになる。

f:id:vmvsvs:20260516115115j:image

上の式を平方完成すると、

2(x-4)^2+2

となる。

 

グラフの1番お尻のところの情報が平方完成でわかる。

1番お尻のところの点は、

(4, 2)

だ。

f:id:vmvsvs:20260516115115j:image

つまり、x=4のときに、最小の値2をとる。

つまり、平均値は4だー!

 

かなり、まどろっこしいが、上記のように平均値を求めることもできる。

ここで使ったのは、平方完成という数式のテクニックだけである。

平均値が足して2で割る、ことで求まる理由が数式によって如実に現れている。

結局、一般的に、データa,bの平均値となると、

(x-a)^2+(x-b)^2=2x^2-2(a+b)x+a^2+b^2

が最小となるxを求めるわけだが、

もうこの式の展開の時点で見えちゃってるよね?

パンドラの箱、開けちゃってるよね?

平均値が「足して2で割る」、の「足して」の部分がこの時点で現れちゃってるよね?

x^2の係数2で括っていい?括るね?

2\{x^2-(a+b)x\}+(a^2+b^2).

平方完成するってなったら、もう足して2で割るしかないやん?

2\{x-\dfrac{(a+b)}{2}\}^2+ごちゃごちゃ

ってなるよね?

ここに、足して2で割るが出てきちゃってる。

 

こうして、万田くんは理解する。

あー、平均値って足して2で割ればいいんか。

これ、データの個数増えても一緒だな、データ全部出して、個数で割るんやわ。

 

平均値には、誤差の二乗の合計を最小にするという裏事情があったのだが、僕らは、足して2で割るという表層の計算部分しか見ていなかったようだ。

 

***

 

最小二乗法は、誤差の二乗の合計を最小にする、という考え方である。

平均値はこの考え方から生まれた値だ。

最小二乗法という基本原則に立ち返って、誤差を見つめてゆくことにする。

 

それにしても、なぜ、武器「足して2で割る」だけではだめなのか。基本原則に立ち返らなければならない理由が、次のようなどうしようもない問題と戦うためにある。

 

 

 

問。

線分AB上に1点Cを設ける。

線分AC、CB、ABを観測して、

観測量 l_1=165.250 , l_2=150.146 , l_3 =315.401を得たとする:

f:id:vmvsvs:20260516115449j:image

最小二乗法により、線分AC、CB、ABの長さを求めよ。

 

l_1+l_2=315.396

l_3=315.401

だいたい同じだけど、ちょっと…ズレてる……💦

 

これが測量誤差ってやつよ。

この誤差をどう処理するかが、誤差論。

どう処理しようか?

 

これ、最小二乗法の考え方を知らずに、平均値だけで戦おうとしてもきついものがある。

まあ、どれが真実の値かわからんけど、平均しとくか、では済まされない。

結局平均は、同じ対象を測っていないと平均値が意味をなさない。

 

たとえば、1番長い線分ABの長さは、

\dfrac{(l_1+l_2)+l_3}{2}とでもなる?

でも、 l_1,l_2を足したものより、一気に計測したl_3の方が精度高い、、、よな?

じゃあ少し、l_3を効かしたほうがよくないか?

 

線分ACの計測時に誤差が出て、

線分CBの計測時に誤差が出て、

それを足し合わせたら二回計測分の誤差が出る。

1発で測ったl_3の方が精度が高いから信頼した方がいい。

 

でも、計測距離は短い方が距離に比例した誤差が出ないよな。l_1,l_2の値も無視するわけにはいかんよな、、。

 

、、、困惑、、。

 

平均値も使えない、でも精度に違いがあるからある程度どちらを信頼すべきかわかる、でも、誤差は出てる…。誤差出るなよ。誤差ゼロで測りたい。でも、そんなことは現実的には不可能だ。くそ。

な、ん、と、も、と、っ、つ、き、づ、ら、い、、測量!!

 

となるわけだ。

俺だってそーなる。

誰だってそーなる。

 

そんな中、一貫して誤差を取り扱う最小二乗法というものが編み出されたわけである。

次の記事で上記の問題を最小二乗法を用いて、解決してみよう。

 

 

 

 

回転楕円体の子午線曲率半径と卯酉(ぼうゆう)線曲率半径の導出の仕方

 

国土地理院の作業規定の準則の計算式集にある

「1.2 楕円体の諸公式」

にある子午線曲率半径 Mおよび、卯酉(ぼうゆう)線曲率半径 Nを導出する記事である。

 

これから、ガウス・クリューゲル等角投影法などを理解しようと試みる人への手助けである。

 

 

子午線および卯酉線

子午線曲率半径および卯酉線曲率半径の意味

微分幾何学の空間曲線論の話になる。

数学では、曲率を以下のように定義している。

 

空間内のある曲線のある点での曲率とは、

その点において、曲線を円で近似したときの半径逆数である。

 

円で近似したとき、その円の半径を曲率半径といい、

その円を、曲率円という。

 

 

つまり、

曲率=1/(曲率半径)

である。

 

例としては、

直線は、曲率0である。

曲率半径は、無限大。

つまり、直線は、半径無限大の円と考えるわけである。

 

真円は、

曲率円はその円であり、曲率半径はその円の半径である。

 

道路などにあるR=400は、

次のカーブは半径400mの円の円弧ですよ、

という意味である。

 

逆数の1/400が曲率になる。

 

子午線曲率半径と卯酉(ぼうゆう)線曲率半径の導出

それでは、(地理学的、測地学的)緯度 \phiにおける子午線曲率半径 Mを求めていく。

(地理学的)緯度 \phiは、地球楕円体上の点 Pにおける接平面に直行する線(法線)と赤道面とのなす角である。

楕円をパラメトライズするときの、パラメータ \thetaとは異なるので注意。

これが話をややこしくしている。

(なんで緯度と楕円のパラメタをわざわざ別のものにするのだろう?)

 

地球を回転楕円体と見立てて、

下図のように座標を入れて考える。

 

地球回転楕円体

子午線・平行圏・卯酉線(ぼうゆうせん) | 地理空間情報技術ミュージアム Museum of GIS Technolog.

から拝借

 

しかし、子午線曲率半径を考えるには、子午線だけを考えればよく、

結局のところ、楕円だけを考えればいいことになる。

 

というわけで、楕円の曲率を求める。

楕円の曲率を導出する

弧長パラメタとは限らない任意のパラメタに関して、

空間曲線 \gamma = c(t)の曲率 \kappa(t)は以下のように書ける。

 \displaystyle \kappa (t) = \frac{\det ( c'(t), c''(t) ) } { c(t)^{3/2}}

この公式を利用する。

楕円 Eを、

 E(\theta) = ( a \cos \theta , b \sin \theta ), a \gt b \gt 0 , 0 \le \theta \lt 2 \pi

とパラメトライズする。

1階と2階の微分を計算して、

 E'(\theta) = ( - a \sin \theta , b \cos \theta )

 E''(\theta) = ( a \cos \theta , b \sin \theta )

空間曲線の曲率の公式に代入して、

 \displaystyle \kappa (\theta) = \frac{ ab } { ( a^2 \sin ^2  \theta + b^2 \cos ^2 \theta )^{3/2}}

となる。

ここで、

離心率 \displaystyle e = \sqrt{\frac { a^2 -b^2}{a^2}}と、

 \cos ^2 \theta + \sin ^2 \theta = 1

を用いて、ルートの中を整理すると、

 \displaystyle \kappa (\theta) = \frac{ b }{a^2 (1 - e^2 \cos ^2 \theta)^{3/2}}

となる。

ここで、 \sinを消去して \cosで整理したが、これは後で楕円のパラメタ \thetaから緯度 \phiに戻すときに、

作業既定の準則の付録の計算式集の、

 W = \sqrt { 1 - e^2 \sin ^2 \phi}

とつじつまが合うので、どちらで整理してもよい。

 

これで楕円の曲率(したがってその逆数の曲率半径)が求められた。

 

楕円のパラメタと緯度の換算式

この楕円のパラメタ \thetaに関する曲率の式を、

緯度 \phiに関する式に換算するために、 \theta \phiの関係式を求める。( \cos \thetaさえ \phiの式で表せればいい)

 

緯度 \phiと回転楕円体の接平面が直行するので、

接ベクトル E'(\theta) = (-a \sin \theta , b \cos \theta)と、

緯度の方向ベクトル (\cos \phi ,\sin \phi)が直行することを使って、

 

緯度とパラメタ

内積 -a \sin \theta \cos \phi + b \cos \theta \sin \phi = 0

となる。

 a \sin \theta \cos \phi = b \cos \theta \sin \phi

だから2乗して、 \sin \theta \cos \theta に直して、

 a^2 (1 - \cos ^2 \theta ) \cos^2 \phi = b^2 \cos ^2 \theta \sin ^2 \phi

より、

 \displaystyle \frac { a^2  \cos ^2  \theta  }{ b^2 \sin ^2 \phi } ( 1- \cos ^2 \theta) = \cos ^2 \theta

だから、

 \displaystyle  \cos ^2 \theta = \frac { \frac {a^2 \cos ^2 \phi }{b^2 \sin ^2 \phi}}{1 + \frac{a^2 \cos ^2 \phi }{b^2 \sin^2 \phi }} = \frac{a^2 \cos ^2 \phi }{a^2 \cos ^2 \phi + b^2 \sin ^2 \phi } = \frac {\cos ^2 \phi}{1- e^2 \sin ^2 \phi}

となる。

 

結局、

 \displaystyle  \cos ^2 \theta = \frac {\cos ^2 \phi}{1- e^2 \sin ^2 \phi}

を得る。

 

(厳密なことを書くと、 \sin \phi = 0のとき、 \theta = \phiとなるので、 \theta \ne \phiとしておく。ゼロ割防止のため)

 

子午線曲率半径 Mを求めよう

以上により得られた楕円の曲率

 \displaystyle \kappa (\theta) = \frac{ b }{a^2 (1 - e^2 \cos ^2 \theta)^{3/2}}

とパラメタと緯度の換算式

 \displaystyle  \cos ^2 \theta = \frac {\cos ^2 \phi}{1- e^2 \sin ^2 \phi}

より、緯度 \phiにおける子午線曲率は、

 \displaystyle \kappa (\phi) = \frac{b}{a^2 (1- e^2 \cdot \frac{\cos ^2 \phi}{1- e^2 \sin ^2 \phi})^{3/2}} = \frac { b (1 - e^2 \sin ^2 \phi)^{3/2} }{a^2 (1-e^2)^{3/2} }=\frac{(1-e^2 \sin ^2\phi)^{3/2}}{a(1-e^2)}

となる。

ここで、

離心率 \displaystyle e = \sqrt{\frac { a^2 -b^2}{a^2}}より、

 \displaystyle   1-e^2 = \frac{b^2}{a^2}を使って、

 b を消去した。

 

卯酉線曲率半径 Nを求める

卯酉(ぼうゆう)線が何かということと、卯酉円曲率半径が以下の図の赤線部になることは前提として、この赤線部の長さを求めていく。

卯酉線曲率半径

経度 \phiと楕円のパラメタ \thetaの換算式が求まった今、それほどややこしいことはない。

流れとしては、赤線を表示するベクトル方程式を求めて、

 y軸との交点を求めて、線長を計算するだけである。

赤線のベクトル方程式は、

楕円上の点 E(\theta)=(a \cos \theta , b \sin \theta)を通り、

傾きは、接ベクトル E'(\theta)=(-a \sin \theta , b \cos \theta)を反時計回りに90度回転させたものになるので、

 (X, Y) = t \cdot ( -a \cos \theta, -b \sin \theta) + (a \cos \theta , b \sin \theta)

となる。( tは任意の実数)

 X  = 0を代入して、

 t= \dfrac{a }{b}を得る。

よって、赤線部の線長 Nは、

 \begin{align} \displaystyle N  = \int_{0}^{\dfrac{a }{b}}  \sqrt{ (\frac{dX}{dt})^2+(\frac{dY}{dt})^2 }dt \\ = \int_{0}^{\dfrac{a }{b}} \sqrt{b^2 \cos ^2 \theta + a^2 \sin ^2 \theta}dt  \\  =  \frac{a}{b} \sqrt{b^2 \cos ^2 \theta + a^2 \sin^2 \theta} \\  = \frac{a^2}{b} \sqrt{1- e^2 \cos ^2 \theta} \\  =  \displaystyle \frac{a^2}{b} \sqrt{1- \frac{ e^2 \cdot\cos^2 \phi}{1 - e^2 \sin ^2 \phi}} \\  =   \frac{a^2}{b} \sqrt{\frac{1 - e^2}{1 - e^2 \sin ^2 \phi}}\\ =  \displaystyle \frac{a}{\sqrt{1 - e^2 \sin ^2 \phi}} \\ \end{align} 

 

(数式の=をそろえられなくてすいません。)

 

まとめ

子午線曲率が、

 \displaystyle \kappa (\phi) = \frac{(1-e^2 \sin ^2\phi)^{3/2}}{a(1-e^2)}

だから、

子午線曲率半径 Mはその逆数

 M = \dfrac{a(1-e^2)}{(1-e^2 \sin ^2\phi)^{3/2}}

卯酉線曲率半径 Nは、

 N =  \displaystyle \frac{a}{\sqrt{1 - e^2 \sin ^2 \phi}}

となる。

 

 

 

空の色を深堀りする

 

空の色を深掘りしていく。

 

空が青い理由の簡単な説明

 

「空 青い 理由」で検索すると、
学研キッズネットの記事がヒット。

 

kids.gakken.co.jp

 

要約すると、

  1. 太陽光が地球を取り囲む空気に当たって散乱する
  2. 波長が短い光のほうが波長が長い光よりも散乱しやすい
  3. 青い光は赤い光に比べて波長が短く、散乱しやすいため空は青く見える

ということだった。

 

夕焼けが赤い理由もこの記事で説明されていた。

夕焼けが赤い理由は、太陽の光が空気中を通る距離が長く、青い光は空気中で散乱されつくしてしまい、赤い光だけが多く残るということらしい。

それで私たちの目には夕焼けは赤く映るそうである。

 

 

では、ここでさらに疑問が生ずる。

 

「なぜ、赤色よりも青色のほうが散乱されやすいのか?」

 

ということだ。

 

深掘りしてみよう。

 

なぜ波長の短い光のほうが散乱されやすいのか?

 

「波長 短い 散乱 されやすい 理由」で検索してみた。

 

iec.co.jp

 

記事によると、

散乱とは、電磁波が進んでいるときに、障害物に当たり、進行方向を変えること、とある。

 

そして、波長の大きさと障害物の大きさの関係により、散乱のされやすさが決まるということらしい。

 

記事の中では、
「波長の短い青色の光のほうが散乱されやすい理由」
が以下のように書かれている。

散乱のされやすさは、波長と障害物の大きさの関係で決まります。この場合の障害物は空気分子で、大きさは決まっています。波長の短い波の方がより障害物が大きく感じられるので、散乱されやすいということになります。波長の短い青の方が散乱されやすく、波長の長い赤の方が散乱されにくくなります。

 

調べてみると、

大気中の約78%を占める窒素分子(N_2)の大きさは、

0.364nm

大気中の約21%を占める酸素分子(O_2)の大きさは、

0.364nm

である。(ほとんど違いがないんだ、、)

 

そして、

青色の光の波長が 430-490 nm
赤色の光の波長が 640-770 nm

である。

 

青色の波長の中央値を取ると、460nm、

赤色の波長の中央値を取ると、705nmで、

その差、235nmである。

 

全然大差ないように見えるが、
青のほうが赤よりも約10倍近く散乱されやすいらしい!

 

まじか。

 

記事によると、このように、

波長のほうが、障害物の大きさよりもかなり大きい場合
(今の場合、100~200倍くらい大きさが違う)
この散乱を

レイリー散乱

と呼ぶらしい。

 

もう少し、レイリー散乱について、深掘りしてみよう。

 

レイリー散乱とは?

 

レイリー散乱 とは」で検索したところ、

 

理科年表オフィシャルサイトの記事がヒット。

 

official.rikanenpyo.jp

 

レイリー散乱の特徴は以下の3つ。

  1. 短い波長ほど多く散乱させる
  2. 前方散乱と後方散乱が最も強く、光に直角な方向が最も弱い
  3. その直角方向への散乱は偏光している

 

いろいろとレイリー散乱について、詳しく書いているサイトがあるものの、
物理を専攻していなかった自分にはすぐに理解できるものは少ない。

 

説明の仕方としては、光=電磁波は電場の波(磁場の波)であり、
その波によって、分子内の電子が作用を受けて、
電磁波を出す。それが散乱光。

 

その条件により、電磁気学的な
理論を使うことによって、光強度の数式が導出される。

 

その数式を解読することにより、
上のような事柄がわかるみたいである。

 

うーむ。

 

物理学的成熟度が足りないな。

 

 

このブログでは、日常の身近な当たり前な現象を、当たり前ではないと思って深掘りしていく記事を書いています。

 

そういうことを考えている人と知り合いになれたらいいなと思っています。