2019.11.23行列の積や転置行列についてNumpyの関数を使えば簡単ですが、関数を使わない方法も紹介します。PythonのFEMの書籍はまだ少ないため、CやFORTRANのコードを読むときに役に立ちます。熟語を覚えるような感覚でコードを覚えれば簡単です。FEMなど数値解析シリーズこの記事は「FEMなど数値解析シリーズ」の記事です。一連の記事は、以下のリンク集を参照してください。Python♪FEMなど数値解析シリーズ1.行列の積X=ABという行列の積を考えてみます。例としてAは3行3列、Bは3行2列です。行数、列数は1から始まりますが、Pythonのfor文が0から始まることを考慮して、添え字を00から始めています。慣れない方は以下のような図で計算をイメージするとわかりやすいです。図のポイントは以下の通りです。行列の計算では下図のkaとkbの大きさは同じです。赤や青の点線で囲った部分同士の内積を求めるのですから、同じ長さでなければ計算できません。図下側の計算式をを参考に、AやBのどの位置のベクトルを使うのか確認してください。計算結果である行列Xの行数、列数はそれぞれi行、j列となります。ABの行列の積の計算例です。11行目の.dot()を使えば行列計算も1行で終了です。Pythonはfor文の処理が遅いので、行列処理はできるだけnumpyの関数を使うべきです。67.]]コード02はnumpyの関数を使わない方法です。b)に相当する部分です。この部分のコードは熟語を覚えるようなつもりでコードを覚えておいても損はありません。Pythonでは使うことはないかもしれませんが、他のプログラム言語ででこの形を見たときに、行列の積であるとわかれば読みやすくなります。67.]]2.行列、ベクトルの積と内積コード03は1行3列の行列と、3行1列の行列の積です。]で囲まれた[14.]が出力されます。b)print(x)#出力03[14.]だたし、numpyのdot関数では、コード04のようにベクトルの内積を求めることもできます。行列計算であれば、aの行数とbの列数が異なるので計算できないことになりますが、エラーにはならず内積が求められます。dot関数では要素数が同じ1次元配列同士の計算では行列の積ではなく内積が計算されます。]はなく、14.0という値が出力されます。b)print(x)#出力0414.0なお、書籍やサイトで「行列の積」を「行列の内積」と表現しているケースが散見されますので注意してください。内積は対応する成分の積の全ての和のことであり1つの値となります。式も積はX=AB、内積はX=A・Bです。行列の内積」となっていますが、これは「内積」ではなく「積」です。転置行列は行と列を入れ替えた行列であり、下図のようになります。転置行列は行と列を入れ替えた行列であり、下図のようになります。赤色の点線でひっくりかえしたような行列になります。実際に下図の計算を行い、行列XをPythonで求めてみましょう。コード05はnumpyの.Tメソッドを使った計算方法です。10行目でcの転置行列としてc.Tを用いています。67.]]コード06はnumpyのメソッドを使わない方法です。c[j][k]となっていることに注目してください。転置行列は行と列の入れ替えなので、jとkを入れ替えているのです。その概要を理解しておきましょう。以下、私が実際に購入したPythonの教材をまとめてみました。Pythonを学習する上で、少しでもお役に立つことができればうれしいです。June関連記事PythonPython♪基本:変数の数値の変更とパソコン内での参照先アドレス。中1のゆうちゃんに、どこまで説明するか迷ったけれど、変数への値の代入とパソコン内での参照先アドレスについて説明することにしました。コンピューターのメモリー上でのデータの扱いを、ほとんど意識しなくてもよい言語もあります。私はPyrho...PythonPython♪基本:まず、最初はint型、float型、str型と算術演算子ですね。中1のゆうちゃん(偽名で~す)との勉強会の2回目です。データ型はあるけれど、最初に覚えなくちゃいけないのは、int()、float()、str()と算術演算子ですね。網羅的に覚えるのなら本を読めばよいわけで、ゆうちゃんには優先順...PythonPython♪用語集:モジュール、パッケージ、ライブラリの違い「モジュール」「パッケージ」「ライブラリ」「標準ライブラリ」「外部ライブラリ」という用語は、Pythonの解説書などでも頻繁に出てきます。文の前後からなんとなく意味は分かるけれど明確には説明できない。そんな時には、一度、その違いを整理して...PythonPython♪基本:キーボードのキーの名前ゆうちゃんとプログラムの勉強をしているのですが、「あっ、そこ、割るじゃなくて、かける」「えっ、かけるってどれ」「あ~、アスタリスク・・・じゃなくて雪みたいなマークの・・・え~と、これ(直接キーボードを押す)」「リターンキー押して」「リター...PythonPython♪format()メソッドの基本的な使い方str.format()メソッドでは、キーワードによる指定、表示幅の指定などが可能ですが、どのように組み合わせて記述すればよいのでしょうか。「ディクショナリの要素の出力は?」「vars()関数とは?」など、具体例がなければ分かりにくい...PythonPython♪FEM:微小変形の仮定と人の感覚の違い有限要素法のプログラムの自作にチャレンジするなら、「微小変形」は必ず理解しましょう。人間の感覚とずれているので知らなければ苦労します。解析では常識に近い初歩的な内容なので書籍やサイトなどでも説明が省略されていることが多いです。Studioが遅いときの対策2020.01.11Kotlin♪環境設定「HAXMがインストールされていません」2020.01.052020.01.08Python♪FEM:部材座標系の要素剛性マトリクス2020.01.04Kotlin♪スマホアプリの言語は、Kotlin、Java、C#、Dart?2020.01.012020.01.13スポンサーリンクスポンサーリンク。