A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
置換行列の定義が。
ちょっとあいまいな様な気もします。任意の整数を与えたとき、転置行列のリストを返す関数を以下に掲げます。引数で、Debug->Trueをあたえると、計算の途中結果を見ることができます。置換行列の解釈が私と違う場合、最初の関数を書き直してください。
Options[generatePList] = {Debug -> False};
generatePList[n_, OptionsPattern[]] :=
Module[{i, j, d, J, elm, idxList, idx, mList, debug},
(* 各行に、1が一つだけ、他は0の行列のリストをつくる *)
(* 行列のインデックスの表を作る {{i1,j1},{12,j2},...}をつくる。
Det(P)は逆行列を持たねば張らないから、jk \[NotEqual] jm ( j \[NotEqual] m) *)
debug = OptionValue[Debug];
J = Permutations[Range[n]];
idxList = {};
For[i = 1, i <= Length[J], i++,
j = 1; elm = Map[{j++, #} &, J[[i]]];
idxList = Append[idxList, elm]];
If[debug, Print["idxList = ", idxList ]];
(* 行列を作る *)
idx = Map[# -> 1 &, idxList, {2}];
If[debug, Print[" idx = ", idx]];
mList = Map[Normal[SparseArray[#]] &, idx];
If[debug, Map[Print["matrix = ", MatrixForm[#]] &, mList]];
mList
]
(* 次に PAP^(-1)を計算する部分です.これも計算結果を返してくれます *)
(* 正方行列が、与えられたとき置換行列をすべて計算し、PAP^-1のリストを返す *)
Options[compulePAInverseP] = {Debug -> False};
compulePAInverseP[A_, OptionsPattern[]] /; MatrixQ[A] :=
Module[{debug, dim, pList, i},
debug = OptionValue[Debug];
dim = Dimensions[A];
If[dim[[1]] != dim[[2]], Print["Not Square Matrix"]; Return[Null]];
pList = generatePList[dim[[1]], Debug -> debug];
For[i = 1, i <= Length[pList], i++,
Print[" P = ", MatrixForm[pList[[i]]], " , INV(P) = ",
MatrixForm[Inverse[pList[[i]]]], ",PAP^(-1) = ",
MatrixForm[Simplify[pList[[i]] A Inverse[pList[[i]]]]]]
;
];
Map[# A Inverse[#1] &, pList]
]
A = Array[a, {3, 3}]
compulePAInverseP[A]
(* とすると、お望みの結果が得られます。*)
No.1
- 回答日時:
同類のソフトのMapleでできますのでMathematicaでもできると思います。
参考URLに行列の積や逆行列の取り方の例がありますので参考にしてやってみてください。
参考URL:http://www.alpha-works.com/math/mathematica/chap …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 計算機科学 Mathematica 行列の積(内積) Mathematicaで行列の積(内積)を計算したいのです 1 2022/12/05 01:41
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- 数学 線形代数 正則 階数 3 2023/03/22 07:52
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- 数学 行列(I-βG)の逆行列が存在することの証明について 1 2023/06/23 01:33
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- 数学 行列式について。 行列式の問題(手計算でできるもの)の中には文字が含まれていて尚且つn次行列式になっ 3 2023/02/21 23:42
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3行3列の行列の和と積の計算...
-
線形代数です。 正方行列A,BがA...
-
回転行列の4行4列の意味について
-
Aはn次正方行列で、どんなn次...
-
行列の階数(rank)を求める
-
基本行列の積
-
matlabで条件をみたしたデータ...
-
3x3行列の固有値の求め方
-
大学数学を忘れました。3×3行列...
-
行列の消去法のコツなど教えて...
-
線形の行列式
-
行列 連立一次方程式
-
掃き出し法は、行の基本変形と...
-
複素数を含む行列の逆行列は存...
-
複雑な割り勘の計算方法
-
直交補空間の問題が分かりませ...
-
4×4行列の逆行列について
-
主成分分析の固有ベクトルの求め方
-
3Dゲームにおける微分・積分・...
-
ある行列とその転置行列の積の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3行3列の行列の和と積の計算...
-
線形代数です。 正方行列A,BがA...
-
連続的ポストごめんなさい
-
数学「行列」の実生活への応用
-
matlabで条件をみたしたデータ...
-
行列を分割するメリットを教え...
-
基本行列の積
-
高校数学で教わる行列っていっ...
-
行列の式の英語読み方について
-
行列の平方根?のようなもの
-
逆行列(AB)^-1について
-
掃き出し法は、行の基本変形と...
-
3行3列の逆行列(ルートを含む)
-
Aが2次正方行列とする。 (1)A...
-
Aはn次正方行列で、どんなn次...
-
回転行列の4行4列の意味について
-
零行列 O のことも 零因子 と呼...
-
複素数を含む行列の逆行列は存...
-
[☆急いでます!!☆] 基本変形の解...
-
ansatzとは
おすすめ情報