左逆行列と右逆行列の一致
こんにちは.simulo(simulo (@simulo_) / Twitter)です.
今日はほぼすべての理系大学生が学ぶ,線形代数の基礎の基礎である逆行列に関する記事です.
逆行列の定義は,以下のものです.
を体上の行列であるとする.この時,ある上の行列について, \begin{align} AB=BA=E_n \end{align} をみたすなら,はの逆行列であるという.
この定義を素直に受け入れると,だからといってはの逆行列とは限らないでしょう.なぜならば,であるときにである,というのは正しいかどうかわからないし,仮に正しかったとしても(数が並んだ行列の見方をする限りは)自明ではないからです.しかし,ならはの逆行列である,という議論を疑問に思うことなくしてきた方が多いのではないでしょうか.あるいはならばはの逆行列であるということは事実であるので,何気なくしてきた議論自体に問題はありません.多くのインターネット上の線形代数の資料や(少なくとも自分が受けた)大学での授業では,自明ではないこの重要な事実は証明されない,あるいは触れられすらしない傾向にあります.この記事では,その証明をします.
基本変形・基本行列
まず,行基本変形や列基本変形について復習しましょう.証明に使います.
まず,行基本変形とは 行列に対し,
- 行目の 倍を行目に加えること
- 行目と行目を入れ替えること
- 行目を 倍すること
のいずれかを言います.
同様に,列基本変形とは 行列に対し,
- 列目の 倍を列目に加えること
- 列目と列目を入れ替えること
- 列目を 倍すること
のいずれかを言います.
このように定義したとき,行基本変形の1から3の操作はそれぞれ,行列に左から \begin{pmatrix} 1 & & & & & & \\ & \ddots & & & & & \\ & & 0 & \cdots& 1& & \\ & & \vdots& \ddots &\vdots & & \\ & & 1& \cdots& 0 & & \\ & & & & & \ddots&\\ & & & & & & 1 \end{pmatrix} \begin{pmatrix} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & & & & \\ & & \vdots& \ddots & & & \\ & & c& \cdots& 1 & & \\ & & & & & \ddots&\\ & & & & & & 1 \end{pmatrix} \begin{pmatrix} 1 & & & & & \\ & 1 & & & & \\ & & \ddots & & & \\ & & & c & & \\ & & & & \ddots & \\ & & & & &1 \end{pmatrix} をかけることと同じです(実際に計算するとわかる).数字が書いていない要素は全て0です.ただし,1つ目の行列は番目の要素がで番目の要素が,2つ目の行列は番目の要素が,3つ目の行列は番目の要素がであるような行列です.これらには逆行列が存在し, \begin{pmatrix} 1 & & & & & & \\ & \ddots & & & & & \\ & & 0 & \cdots& 1& & \\ & & \vdots& \ddots &\vdots & & \\ & & 1& \cdots& 0 & & \\ & & & & & \ddots&\\ & & & & & & 1 \end{pmatrix} \begin{pmatrix} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & & & & \\ & & \vdots& \ddots & & & \\ & & -c& \cdots& 1 & & \\ & & & & & \ddots&\\ & & & & & & 1 \end{pmatrix} \begin{pmatrix} 1 & & & & & \\ & 1 & & & & \\ & & \ddots & & & \\ & & & c^{-1} & & \\ & & & & \ddots & \\ & & & & &1 \end{pmatrix} です.実際に左右から掛けてみるとわかります.
列基本変形も同様に特定の形の行列を右からかけることに対応していて,それらの行列には逆行列が存在しています.これらの行列を基本行列とよび,基本行列は正則行列(逆行列が存在する行列)であることを示したわけです.
証明
証明に取り掛かる前に,右逆行列,左逆行列という言葉を定義します.
定義
を体上の行列であるとする.この時,ある上の行列について,
\begin{align}
AB=E_n
\end{align}
をみたすなら,はの右逆行列であるという.また,
\begin{align}
BA=E_n
\end{align}
をみたすなら,はの左逆行列であるという.
すると,示すべき事実は,をの正方行列としたときに,
が成立することであることがわかるでしょう.さえ示せれば逆は同様に示せるので,のみ示します.以下,証明の間は常体で日本語を表記します.
に関する帰納法で示す.のときは明らかに成立している.以下,とすると,は基本変形を繰り返すことによって, \begin{align} C=\begin{pmatrix} 1&{}^to\\ o&A_1 \end{pmatrix} \end{align} という形になる.つまり,基本行列の積で表されるを用いて,となる.ここで,は正則行列である基本行列の積であるので,また正則である.ここで,とし, \begin{align} D=\begin{pmatrix} u& {}^tz\\ y&B_1 \end{pmatrix} \end{align} と表す.このとき,で, \begin{align} E_n=\begin{pmatrix} 1& {}^to\\ o&E_{n-1} \end{pmatrix} \end{align} \begin{align} E_n=CD=\begin{pmatrix} u& {}^tz\\ A_1y&A_1B_1 \end{pmatrix} \end{align} よって,帰納法の仮定より,は正則で,である,また,と,は正則もわかり, \begin{align} D=\begin{pmatrix} 1& {}^to\\ o&B_1 \end{pmatrix} \end{align} で, がわかる.よって,は正則で,も正則である.
注意
左逆行列と右逆行列が一致することを以上のように証明できました.行列の要素が体の元である限りはこの事実は成り立つのですが,行列の要素が非可換環だと一般には左逆行列と右逆行列は一致しないようです.
有理数のmodを駆使して数オリの有名整数問題を解く
こんばんは、simulo_yuiです。
simulo_yui (@simulo_yui) | Twitter
今回は、有理数のmodに関する記事です。合同式の基本的な知識を前提にします。 合同式をご存じでない方は下の記事をご覧ください。
問題
数列をで定義する。このとき、の全ての項と互いに素となるような自然数を全て求めよ。(IMO 2005 problem 4)
一般的な解答
をと以外の素数とする。以下、法は明記されない限りとする。
ここで、を示す。
(i)のとき
Fermatの小定理より、 である。を解き、である。
同様に、
であり、
が確かに成立する。
(ii)のとき
(i)と同様に、
はを除く素数であるので、(i),(ii)の場合で尽くされている。よって、がを除くすべての素数で成り立ち、より、全ての素数について、それと互いに素でない項が存在する。つまり、以上の全ての整数についても同様にそれと互いに素でない項が存在する。
また、については、全ての整数と互いに素なので、要件を満たす。よって、求める自然数は、のみである。
解説
まず、多くの素数についてそれと互いに素でないの項が存在するならば、それらを素因数に持つ全ての整数もその項と互いに素ではない上、素数は扱いやすい様々ないい性質を持つので、素数のみについて考えようと思うのは自然でしょう。つまり、素数と互いに素でない項の存在を具体的な構成をするなりして示せばいいのです。すると、整数の乗と素数に関する問題に変わるので、似た形である、Fermatの小定理を使いたくなるのは自然でしょう。でもなぜ、乗でなく、乗を考えるのでしょうか。
ある人は、様々な素数で試していった結果乗でうまくいくことに気づくのだ、というのかもしれません。実際、試験でこの問題が出てきたのならば、それが一番現実的でしょう。しかし、何か理由を考えたくなるのが、数学が好きな人の定めではないでしょうか。考えていきましょう。
Fermatの小定理について
ご存じの方はこの項を読み飛ばしていただいて結構です。
Fermatの小定理とは以下のようなものです。
Fermatの小定理
を素数、をと互いに素な数とすると、
が成立する。
簡単な証明をします。
一般に、を自然数とするとき、なので、の場合を考える。
について、
なので、 であり、これを繰り返し用いて、であり、とは互いに素なので、最左辺と最右辺をで割るとが得られる。証明終。
有理数のmodについて
合同式の概念は整数の世界で導入され、整数の合同式をご存じの方は多いと思います。実は、合同式は有理数の世界にも拡張できるのです。具体的には、
を整数として、有理数が、とを満たすを用いて表されるとき、をみたすを以て、と定義されます。
つまり、既約分数の形で表したとき、分母がと互いに素になる有理数について、合同式が定義されました。このようなが合同な数を除いて一意に存在することは簡単に示せます。
このように定義された有理数のmodにおいても、整数の世界で成り立つ合同室の性質、つまり、法を、を定義に出てきた条件を満たす有理数として、
をと互いに素な整数とするとき、
を整数、または分母がnと互いに素な係数をもつ多項式とするとき、
などといった性質がなりたちます。これは簡単に証明できます。
また、参考として、分母がと互いに素でない有理数に拡張してしまうと次のような問題が生じることも書いておきます。 その問題というのは、上の定義で、がと互いに素でないとき、となるようなが一般には存在しないことです。などとすると、分かると思います。とが互いに素でないとき、の世界でははの要素(=の素因数)を含んでいるから、こんな不都合が生じる、という感覚的な説明もできます。
問題への適用
先程の問題に有理数のmodを適用してみましょう。
フェルマーの小定理より、より、が成立します。 すると、となります。この式を見ると、なぜ乗を考えるのか、なんとなくわかった気になりませんか?つまり、の式にを代入すると、になることに気づくので、の世界でも逆元(=かけてになるもの。ここではに対する)である、乗を考えよう、というモチベーションがあったのです。
こうやって書くと、何だか数オリの問題が可愛く見えますね。とても可愛い。綺麗でかわいいなんて最高ですね。
終わりに
誤りなどありましたら教えてください。
こうやって記事を書き終わってみると、この問題の作問者はきっと、小学生でも知っているという等式をどれだけドラマチックなものに昇華できるかを考えていたんじゃないかな、と思います。最後に、改悪した問題を貼って記事を終わりにします。
冒頭の問題のをと定義して、の全ての項と互いに素となるような自然数を全て求めよ。
Hint(なのか?):6も28も嬉しい性質が成り立っているので、この問題はうまくいきます。
サイクロイドと等積変形 ~カヴァリエリの原理の面白い応用~
こんばんは、simulo_yuiです。
simulo_yui (@simulo_yui) | Twitter
現在の日本の学習指導要領では数Ⅲで学ぶことになっているサイクロイド。最速降下曲線(スロープのようにしたときに一番早くボールが下りてくる曲線)であることや、その等時性などさまざまな面白い性質を持っています。数Ⅲを学習したことがある方なら、その長さや、サイクロイドとx軸で囲まれる面積をいやというほど計算した記憶があるのではないでしょうか。今回はそんなサイクロイドとx軸で囲まれる面積を数Ⅲを使わずとも中学生でも出すことができる、というお話です。
サイクロイドとは?
サイクロイドとは円が直線上を滑らずに転がるときに、直線と接していた円上の点がまた直線と接するまでに動く軌跡のことを言います。口で説明するよりも下の図を見てもらった方が理解が早いと思います。
上の図では半径1の円が転がっています。中心がにあるとき、点 の座標は以下のようにパラメータ表示されます。
サイクロイドとx軸で囲まれる部分の面積
ここで、サイクロイドとx軸で囲まれる部分の面積、すなわち上の図の赤線部の面積を考えると、パラメータ表示を利用して、
となり、求める面積はであったことが分かる。
カヴァリエリの原理を用いて面積を求める
上の図の横線部の面積を考えます。真ん中の円の面積はなので、を示すには、になることを示せばよさそうです。。
真ん中の円の中心を、円上の点でがx軸と平行になるような点をとし、となるような円上の点をとり、サイクロイド上の点をとなろようにとり、とします。
このとき、が成立しています!
今からこれを示します。
上の図のように、動円がを通るときの中心をすると、
が成立しています。ここで、動円が円の位置から円の位置に動くまでには、円は回転しているので、は、円の中心角がの弧の長さに等しく、で、である。
同様に、となる。よって、でが確かに成立します。
ここで、面積を求めるために次のような操作をします。
の線で図形を切り、上の部分を横に持ってきます。操作後の図が下図です。
そしてこれをカヴァリエリの原理を用いて等積変形するとより、底辺が高さがの長方形になります。
よって、が分かりました。よって、になることも分かりました。
カヴァリエリの原理について
カヴァリエリの原理とはある2つの立体や平面図形を同じ面で切断した時の面積や長さが常に等しいならば、二つの立体や平面図形の体積や面積は等しいというものです。詳しくはWikipediaを参照してください。
定規のみを用いて与えられた線分に平行な直線を引けるのか?
こんばんは、simulo_yuiです。
simulo_yui (@simulo_yui) | Twitter
A. 引けません
これで記事を終わりにすると、とてつもなくつまらないので、もう少しだけお付き合いください。
世の中には定規とコンパスによる作図という概念があります。これについては以下のurlを参照してください。 定規とコンパスによる作図 - Wikipedia
この定規とコンパスによる作図、中学生の時にやったことがある方もいらっしゃるのではないでしょうか。正三角形の作図だったり、角の二等分線の作図だったり、垂直二等分線の作図だったり。その作図の要領で、与えられた線分に平行な直線を引けるか?という問題です。この場合、定規は二定点を通る直線を引くことか、あるいは無作為に平面上に直線を引くことにしか使えません。
あるいは、コンパスを使用していいルールだったら、与えられた線分に平行な直線を引く方法を知っている方も多いかも知れません。では、定規しか使えない場合はどうなのでしょうか。この場合、以下の定理が成り立ちます。
定理
定規のみを用いて与えられた線分に平行な直線を引くことはできない。
この定理の証明に移る前に、次の補題の証明をしておきましょう。
補題
平面上に円がすでに与えられているとする。この際、定規のみを用いて円の中心を得ることはできない。
補題の証明
平面で考える。 平面上に与えられている円をとする。以下の条件を満たす、からへの射影を考える。
(1)直線を直線に移す
(2)円を円に移す。
(3)円の中心を、円の中心に移さない。
このようなが確かに存在すると仮定する。さらに、平面上に円がすでに与えられているとき、定規のみを用いて円の中心を得ることができると仮定する。このとき、円の中心を作図するような直線の列が存在する。このとき、直線の列の移る先の直線の列も円の中心を作図する。(は2曲線が交わる/接する/共有点を持たないといった性質を保存し、定規は二定点を通る直線を引くことか、あるいは無作為に平面上に直線を引くことにしか使えないため。)しかし、これは(3)に矛盾する。
さて、仮定したようなは確かに存在する。 例として、をに移すような射影はの条件を満たす。
よって補題が証明された。定理の証明に移る。 定規のみを用いて与えられた線分に平行な直線を引けると仮定する。ここで、平面上に円があるとする。円と2点で交わるような、互いに平行で異なる3直線を考える。また、と平行ではなく、と2点で交わるような、互いに平行で異なる3直線を考える。ここで、と円の4交点のなす四角形の対角線の交点を、と円の4交点のなす四角形の対角線の交点をとすると、は円の中心を通る。同様に、と円の4交点のなす四角形の対角線の交点を、と円の4交点のなす四角形の対角線の交点をとすると、は円の中心を通る。このとき、との交点は円の中心を通る。これは、補題に矛盾する。
以下の図では、線や点の名前などは違いますが、状況を模しています。
Javaにおけるクラスのアップキャストについて分かったこと
こんばんは、simulo_yuiです。
simulo_yui (@simulo_yui) | Twitter
主にタイトルの通りのことについて語ります。
以下の記事を読んでいて不思議に思う部分があったことがきっかけです。
その部分とはこちらです。
サブクラスのオブジェクトをスーパークラス型のオブジェクトでアップキャストする際、注意点があります。スーパークラスとサブクラスに、同じ名前のフィールド変数やメソッドがある場合には、フィールド変数はスーパークラス、メソッドはサブクラスが優先される、という点です。
この文章中に出てくる単語で分からないものがあったとしたら、上記の記事を読むことを推奨します。
なぜフィールドとメソッドに対して違う扱いがされるのでしょうか?上記の引用文の事柄について初めて知った方の多くがその疑問を持つと思います。本記事はそれについて調べました。
本編
Javaにおいて(おそらくは多くのオブジェクト指向言語において)クラスの継承はどのように内部で実現されてるのでしょうか。以下に図を用意しました。
継承される側のクラスをスーパークラス、する側のクラスをサブクラスと呼びます。
サブクラスはその最初の部分にスーパークラスのコピーを持っています。継承時にスーパークラスからサブクラスへとコピーされます。オーバーライドではないサブクラス独自のメソッドやサブクラス内で宣言される変数たちはそのコピーのあとに追加されます。この追加された部分を以降、便宜上非共有部分と呼びます。サブクラスからスーパークラスへとアップキャストをするときは、このコピーの部分が抜き取られます。スーパークラスへキャストされたサブクラスからは非共有部分に入っている情報を得ることはできません。
※抜き取られる、は適切な表現ではありません。その部分以外へのアクセスが制限される、という表現が適切だと考えられますが、直感的なので用いています。
サブクラスからスーパークラスへのキャストは行うことができますが、一般的にはスーパークラスからサブクラスへのキャスト(ダウンキャスト)は行うことができません。サブクラスはスーパークラスが持っているすべてのフィールド変数とメソッドを持っていることを保証できますが、スーパークラスがサブクラスの持っているすべての変数とメソッドを持っていることが保証できないためです。
クラスはフィールドとメソッドから構成されています。一般にフィールド変数はプリミティブ型なら変数の値、参照型なら変数のアドレスへの参照を持っています。対して、クラスはメソッドそのものを格納しません。メモリ内のどこかほかの場所に格納されているメソッド本体への参照を持っています。上の図における参照の矢印を見て下さい。
サブクラスにおいて、スーパークラスの持っているメソッドのオーバーライドを行った場合、コピーされた部分にあるスーパークラスのそのメソッドへの参照がオーバーライドされたメソッドへの参照に切り替わります。メソッドの名前が同じでも中身(参照先)が違うのです。こちらも上の図における関数ポインタb、メソッドb、メソッドb'を見ていただきたいです。
また、これは推奨されるコードではないですが、サブクラス内においてスーパークラスと同名の新しい変数を宣言した場合、その変数は非共有部分に置かれます。この際、サブクラス内に同名の変数が二つあるような状況に思えますが、そこは闇の処理が行われてサブクラスとして扱う際には非共有部分に入っている変数を使われるようになります。
ここで私が最初に疑問に思ったことに戻ります。サブクラスからスーパークラスへのキャストが行われる際、同名のフィールド変数やメソッドがある場合はフィールド変数はスーパークラスのものが優先され、メソッドはサブクラスのものが優先されるのはなぜでしょうか?
アップキャストが行われる際、サブクラス内にあるスーパークラスのコピーの部分が抜き取られるという話をしました。スーパークラスとサブクラスに同名の変数があっても、その変数は非共有部分に入っているため切り取られず、コピー部分に入っていたスーパークラスのコピーの変数(=スーパークラスのものと同じ変数)が抜き取られるのです。対してスーパークラスとサブクラスに同名のメソッド(つまりオーバーライドされたメソッド)が存在する場合でも、サブクラス内のオーバーライド後のメソッドへの参照はコピー部分に入っているため、サブクラスのメソッドがそのまま抜き取られます。
抜き取られたオーバーライド後のメソッドの中でサブクラス内で新しく宣言された非共有部分にあるスーパークラスに同名の変数がある変数が使用されている場合は、アップキャストされた後でもそのメソッド内では非共有部分にある変数を用います。これはその変数への参照先にあるメソッドの内部では非共有部分にある変数への参照が入っているためです。(サブクラスとして扱われているうちは非共有部分にある変数が使われるため。)
感想その他
ややこしいですね。
数の構成❶ ペアノの公理を満たす集合の存在
こんばんは、simuloです。
自分はここしばらく独学でペアノの公理について勉強しています。参考にしている文献(PDF)はこちらです。
https://mathematics-pdf.com/pdf/construction_of_numbers.pdf
もともと数学に対する素養もなく、独学なので間違いも多いかと思われますが、間違いを見つけられましたらコメントにて教えていただけると幸いです。 集合論もあいまいにしか勉強してないので、集合論における間違いが一番心配です。
また、今回の記事は上の文献に記述がなかった部分なので、自分で証明をしています。なおのこと心配ですね。
今回はZFC公理系からペアノの公理を満たす集合の存在を示します。必要となる公理は以下の二つです:
1.無限公理:
空集合を要素にもち、xを要素にもつならx∪{x}を要素に持つ集合Aが存在する。
2.正則性公理:
空でない集合は必ず自分自身と交わらない要素を持つ。
また、これからの話題の中心となるであろうペアノの公理についてまとめます。
集合がペアノの公理を満たすとは、集合が以下の条件を満たすことを指す。
僕らが慣れ親しんでいる自然数という集合はこのペアノの公理を満たすとされています。というより、このような公理を満たす集合として自然数の存在を示していくわけです。自分も読んでいて驚いたのですが、これだけの公理(定義?)から足し算と同じ性質を持つ写像、掛け算と同じ性質を持つ写像があっという間に構成されていくのです。さて、ペアノの公理を満たす集合の存在の証明をしていきます。
証明
命題
ペアノの公理を満たすような集合が存在する。
まず次の補題が正則性公理から導かれることを示す。
補題1:
任意のに対してと続く無限降下列が存在しない。
証明: 無限降下列が存在したとし、ある一つの無限降下列を用意し、それらすべてを含む集合を考える。 このとき任意の要素に対し、となり、正則性公理: に矛盾。 よって無限降下列は存在しない。Q.E.D.
補題2: 無限公理における集合がペアノの公理の条件1.~4.を満たす。またとする。
- 無限公理における集合の条件より、。
- に対してを対応させる写像をとすれば、無限公理の集合の構成の仕方より写像が存在する.。
- 、すなわちとなるの存在を仮定する。すると、より、なので、である必要がある。同様に、である。つまり、 となり、補題1に反する。
- とすると、ある要素によってと表せることになり、矛盾。
を要素に持つとき、を要素に持つような集合を帰納的集合とよぶ。無限公理は、空集合を要素に持つ帰納的集合の存在を示している。つまり、0を要素に持つ帰納的集合は存在し、補題2でそのような集合はペアノの公理の条件1. ~4.を満たすことを確認した。
を要素に持つ帰納的集合をとし、そのような全体の集合をとする。また、とする。補題2はに対し成り立つのであった。このとき、はペアノの公理を満たす集合であることを示す。
- について、なので、
- について、なので、をと取ることが出来る。
- ここで、1.と2.より、集合は無限公理における集合の一つであることが分かる。補題2より、また、上で取った写像の取り方が補題2の2.の写像と一致しているので、写像は単射である。
- 3.と同様に、であることが確かめられるので、
- 集合はその取り方からである。ここで、集合はその取り方より、 となるので、。これと、より、。
つまりこれでペアノの公理を満たす集合が存在する、ということが示されたわけです。あとは少しこのペアノの公理を満たす集合に関する性質を証明すれば安心して自然数を扱えますね。これからも数の構成に関する記事を何個か書いていこうと思います。
ご拝読いただきありがとうございました。