「Immersive Math」は、数学のうちベクトルや行列などの計算を研究する分野である「線形代数」についてインタラクティブな図を用意することでわかりやすさを向上させた無料の教科書サイトです。 Immersive Math https://immersivemath.com/ila/index.html サイトのトップページはこんな感じ。「完全にインタラクティブな図を備えた世界で最初の線形代数本」と述べられています。 中央に表示されている三角形の図はインタラクティブで、左上をクリックすることで回転・停止を切り替えられるほか、各頂点をクリックしてドラッグ&ドロップすることで位置を調整可能。自由に図を編集できるため理解しやすいというわけです。 ページをスクロールすると目次が現れました。まずは「Preface(序文)」をクリック。 「『百聞は一見に如かず』という言葉の通り、たくさんの言葉を重ね
三谷 純 Jun MITANI @jmitani 筑波大学 システム情報系 教授('75生)CG/折紙/幾何/プログラミング,一風変わった折り紙の設計,制作をしてます.令和元年度文化庁文化交流使としてアジア諸国をまわってきました.主に数学と折紙と日常のことについてツイートします.折紙作品の写真をこちらで公開しています instagram.com/mitani.jun/ mitani.cs.tsukuba.ac.jp/ja/ 三谷 純 Jun MITANI @jmitani 理工系の大学生1年生の多くは まずはじめの数学で「線形代数」を学ぶことになると思います。 僕が学生だった頃、 「結局これって何を勉強しているの?」 という疑問がずっと拭えなかった記憶があります。 同じような疑問を持っている学生向けに、線形代数で何を学ぶのか説明する文章を作ってみました pic.twitter.com/1j
「線形代数をBlenderで、やる」とはどういうことでしょう? とりあえずこの画像を見てください これだけではよくわからないと思いますが、 要するに下の画像と全く同じ計算をやっています 確かに「結果」がBlenderの画像で並んでいる数字と同じになっているBlenderのノードの側にもよく見ると、3,1,4…と、 WolframAlphaの画像と同じ値が並んでいるのが確認できます 左の3つのノードが左の行列を表し、右の3つのノードが右の行列を表しているさて、このBlenderのノードシステム(GeometryNodes)ですが、 本来は3DCGのジオメトリをプロシージャルに生成にするためのもので、 決して線形代数をするための機能ではありません! しかし、それをうまく悪用すれば使えば、 上のような行列の演算をさせて線形代数遊びができます! この記事の最後では、これを応用して次のGIFのような
連載目次 前回の番外編4では、図形的な意味や一次独立、一次従属といった線形代数の基本を踏まえて行列式について見てきました。今回も同様に、固有値と固有ベクトルの考え方について、ポイントを押さえながら説明します。また、行列の対角化を行うことにより、行列のべき乗を簡単に求める方法を紹介し、その応用としてマルコフ過程の事例を紹介します。 ポイント1 固有ベクトルは一次変換を行っても向きが変わらないベクトル ひと言でいうと、固有値や固有ベクトルは一次変換を特徴付ける値やベクトルです。しかし、以下のような式がいきなり登場して面食らってしまった人もいるのではないでしょうか。 「一次変換を表す行列をAとしたとき、 を満たす0でないベクトルxをAの固有ベクトル、λを固有値と呼ぶ」 というものです。確かに、式を見た瞬間に気を失いそうになりますね。しかし、Aが行列で、λが定数であることに注目すれば、ベクトルを一
連載目次 前々回は、行列をNumPyの配列として表し、要素ごとの四則演算を行ったり、ブロードキャスト機能を利用したりする方法、さらに、行や列の操作、集計などについても見ました。前回は、行列の内積について基本的な考え方から計算方法を簡単に紹介するとともにNumPyの配列による基本的なプログラミングの方法、さらに応用例を見てきました。今回は線形代数の難所である行列式と固有値/固有ベクトルを求める方法と応用例を紹介します。 この連載には「中学・高校数学で学ぶ」というサブタイトルが付いていますが、2012年施行の学習指導要領で数学Cが廃止され、行列が実質的に高校数学で取り扱われなくなったので、行列になじみのない方もおられるかもしれません。そこで、行列式と固有値/固有ベクトルについて、必要最低限の考え方と計算方法も併せて紹介します(なお、2022年度施行の学習指導要領では数学Cと行列が復活しました)
連載目次 前回は、漸化式の立て方と再帰呼び出しのプログラミングに取り組み、「現実の問題をどのようにして定式化するか」といった「考え方」についても学びました。 今回と次回は線形代数のプログラミングを見ていきます。前回と打って変わって、どちらかというと「計算をいかに効率よくこなすか」というお話が中心になります。そのために、NumPyの機能や関数を利用し、さまざまな計算を行う方法を紹介します。 この連載では既にNumPyの高度な機能も利用していますが、あらためて初歩から確実に身に付けていくことを目標とします。今回は主にベクトルを取り上げ、行列の取り扱いについては次回のテーマとします。 今回の練習問題としては、ある点から直線や平面までの距離を求めるプログラムと、視神経のニューロンの働きをシミュレートするプログラムに取り組みます。 なお、高校の数学ではベクトルを
連載目次 行列式や固有値、固有ベクトルの壁を越えられないのは、行と列を掛けたり足したりという成分の計算で力を使い果たしてしまい、図形的な意味や線形代数の体系の中での意味を考える余裕がないからではないでしょうか。今回は行列式について、計算で力尽きないようにするための裏技を見た後、図形的な意味などについて考えてきたいと思います。固有値、固有ベクトルについては番外編5で取り扱います。 ポイント1 行列式はスカラーである まず、大前提です。行列式が求められるのは行数と列数が同じ正方行列のみです。ここからのお話に登場する行列は全て正方行列です。 さて、2×2行列の行列式は平行四辺形の面積を表すとか、3×3の行列式は平行六面体の体積を表すといった話を聞いたことがある人も多いかと思います。面積とか体積であるということは、行列式はスカラーであるということです。 行列Aの行列式はdet Aまたは|A|と表し
はじめに 理工系の学生なら、学部で線形代数を習うことでしょう。学部での線形代数は、主に行列やベクトルの性質を調べるものとして学ぶと思います。そこで面倒な計算をして対角化とか固有ベクトルとか固有値とかやって、「なんで行列を対角化しなきゃいけないのか?」「固有ベクトルとか求めて何がうれしいのか?」がいまいちわからないまま卒業し、その後の機械学習ブームで「時代は線形代数!」とか言われて教科書を引っ張り出したは良いけど、でも結局よくわからないままそっと閉じる、なんて人も多いのではと思います。 線形代数は、代数学の一分野です。代数学とはその名の通り「具体的な数」の「代」わりに「記号」を使って式を表現し、その性質を調べる学問です。小学校で「つるかめ算」や「過不足算」をやったと思いますが、中学に入るとそれがすべて方程式や連立方程式で解けてしまうことを習ったと思います。一度方程式に落としてしまえば、もとが
連載目次 前回は、行列をNumPyの配列として表し、要素ごとの四則演算を行ったり、ブロードキャスト機能を利用したりする方法、さらに、行や列の操作、集計などについても見てきました。今回は行列の内積について基本的な考え方から計算方法、応用例について見ていきます。 この連載には「中学・高校数学で学ぶ」というサブタイトルが付いていますが、2012年施行の学習指導要領で数学Cが廃止され、行列が実質的に高校数学で取り扱われなくなったので、行列になじみのない方もおられるかもしれません。そこで、内積の計算方法についても簡単に説明することとします(なお、2022年度施行の学習指導要領では数学Cと行列が復活しました)。 行列の取り扱いについては内容が多岐にわたるので、少しずつ確実に理解できるよう、数回に分けて取り組むことにします。
※ 2020-09-06: 「アライメントの問題(C++17以上かつEigenバージョン3.4以上)」を追加。 線形代数ライブラリ(行列演算や行列分解などを行うライブラリ)には、有名どころだとPythonではNumpyがあり、C++ではEigenがあります。Eigenは強力なライブラリですが、気をつけなければいけないところがいくつかあるのでまとめます。 Eigenの特徴 ヘッダーオンリーでテンプレートが多用されており、汎用性が高い Expression Template(式テンプレート)を用いた遅延評価で高速(不要な計算を自動で除外する) 自動でSIMDやループ展開が適用され高速 静的にサイズを指定した行列はヒープを一切使用しない 疎行列のサポートがある 密行列・疎行列それぞれ様々な行列分解アルゴリズムが実装されている 以上のように、非常に高速で強力なライブラリですが、高速性のトレードオフ
連載の記事一覧: #1 図式の基礎と線形代数の基礎 #2 スペクトル分解と特異値分解 #3 テンソル積およびトレース・転置・内積 #4 行列が作るヒルベルト空間 番外編 列ベクトルや行列での微分 番外編その2 ベクトル解析 はじめに書籍「図式と操作的確率論による量子論」を22年10月に出版する予定です。本書の紹介を兼ねて,量子論を学ぶ際に役立つ線形代数の基礎を数回に分けて紹介したいと思います。線形代数に対して広く使える内容になっていますので,量子論に興味がない人にも役立つと思います。 この連載では,図式を活用することで線形代数の基礎のいくつかをわかりやすく説明することを目的とします。図式とは,数式の代わりに図形を用いて表現した式のことです。線形代数に関する多くの数式は図式により厳密に表すことができ,しばしば数式よりも直観的に理解しやすく楽に計算できるという利点があります(数式のほうがわかり
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く