Maple における線形代数に関するコマンド

Maple 13 における、線形代数の計算に関するコマンド。

ベクトルの作成

列ベクトル

> w := <1, 2, 3>;

行ベクトル

> v := <1| 2| 3>;

行列の作成

> A := Matrix([[1, -1, -1], [4, 0, 2], [-2, 1, 1]]);
> A := convert([[1, -1, -1], [4, 0, 2], [-2, 1, 1]], Matrix);
> A := Matrix(3, 3, [1, -1, -1, 4, 0, 2, -2, 1, 1]);
> f := (i, j) -> i + j:
  B := Matrix(3, 3, f);

列ベクトルを並べて作成

> A := <<1, 4, 2>| <-1, 0, 1>| <-1, 2, 1>>;
> u := <1, 4, 2>: v := <-1, 0, 1>: w := <-1, 2, 1>:
  A := <u| v| w>;
> A := Matrix([<1, 4, 2>, <-1, 0, 1>, <-1, 2, 1>]);
> A := convert([<1, 4, 2>, <-1, 0, 1>, <-1, 2, 1>], Matrix);

行ベクトルを並べて作成

> A := <<1| -1| -1>, <4| 0| 2>, <-2| 1| 1>>:
> u := <1| -1| -1>: v := <4| 0| 2>: w := <-2| 1| 1>:
  A := <u, v, w>;

対角行列

> E := LinearAlgebra[ScalarMatrix](1, 3);  # 3次単位行列

転置行列

転置行列

> LinearAlgebra[Transpose](A)
> A^+
> A^%T

随伴行列

> LinearAlgebra[HermitianTranspose](A)
> A^*
> A^%H

2つのベクトルまたは行列が等しいかどうか

ベクトルが等しいかどうか (v, w: ベクトル)

> LinearAlgebra[Equal](v, w);

行列が等しいかどうか (A, B: 行列)

> LinearAlgebra[Equal](A, B);

行列が相似かどうか

> A := Matrix([[-1, 4], [-1, 3]]):
> B := Matrix([[1, 1], [0, 1]]):
> LinearAlgebra[IsSimilar](A, B);  #=> true
> P := LinearAlgebra[IsSimilar](A, B, output = 'C');  # 変換行列
> LinearAlgebra[Equal](A, P^(-1).B.P);  #=> true

行列の成分

> A[1, 2]   # 行列 A の (1, 2)-成分
> LinearAlgebra[Row](A, 2)  # 2行目
> LinearAlgebra[Column](A, [1, 3])  # 1列目と3列目
> LinearAlgebra[Column](A, [1..3])  # 1列目から3列目

各成分への作用

> LinearAlgebra[Map](a->a^2, A);
> MTM[Map](a->a^2, A);

行列の大きさ

> LinearAlgebra[Dimension](A)  #=> 行数,列数
> LinearAlgebra[RowDimension](A)     #=> 行数
> LinearAlgebra[ColumnDimension](A)  #=> 列数
> MTM[size](A)     #=> [行数 列数] (Array型)
> MTM[size](A, 1)  #=> 行数
> MTM[size](A, 2)  #=> 列数
> ArrayTools[Size](A) #=> [行数 列数] (Array型)
> ArrayTools[Size](A, 1)  #=> 行数
> ArrayTools[Size](A, 2)  #=> 列数

ベクトルの長さ

> v := <1, 2, 3>:
  LinearAlgebra[Dimension](v);
> w := <1| 2| 3>:
  LinearAlgebra[Dimension](w);

行列の積

> A := Matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]):
> B := Matrix([[9, 8, 7], [6, 5, 4], [3, 2, 1]]):
> A.B;
> LinearAlgebra[Multiply](A, B);

行列とベクトルとの積

> A := Matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]):
> v:=<1, 2, 3>:
> A.v;
> LinearAlgebra[Multiply](A, v);

ベクトルの内積

> v:=<1, 2, 3>: w:=<4, 5, 6>:
> v.w;
> LinearAlgebra[DotProduct](v, w);

行列式

> LinearAlgebra[Determinant](A);
> MTM[det](A);

連立方程式を解く

> A := Matrix([[-1, 4], [-1, 3]]):
  b := <1, 1>:  # 列ベクトル
  LinearAlgebra[LinearSolve](A, b);

階数を求める

> LinearAlgebra[Rank](A);
> LinearAlgebra[Modular][Rank](p, A);  # mod p での階数

基底を求める

> u:=<1, 2, 0>: v:=<1, 0, 1>: w:=<2, 2, 1>:
> LinearAlgebra[Basis]([u, v, w]);

Gram-Schmidt の直交化

> u:=<1, 4, 2>: v:=<-1, 0, 1>: w:=<-1, 2, 1>:
> LinearAlgebra[GramSchmidt]([u, v, w], normalized);

固有値

> LinearAlgebra[Eigenvalues](A);
> MTM[eig](A);

固有ベクトル

> VAL, VEC := LinearAlgebra[Eigenvectors](A);
  vals := seq(VAL[i], 
    i = 1 .. LinearAlgebra[Dimension](VAL));
  vecs := LinearAlgebra[Column](VEC, 
    [1 .. LinearAlgebra[ColumnDimension](VEC)]);

固有多項式

> LinearAlgebra[CharacteristicPolynomial](A, x);
> MTM[poly](A);
> MTM[poly](A, 'x'); # 変数を明示

最小多項式

> LinearAlgebra[MinimalPolynomial](A, x);

Jordan 標準形

行列 A の Jordan 標準形 J を求める

> J := LinearAlgebra[JordanForm](A);
> J := MTM[jordan](A);

変換行列 P を求める

> P := LinearAlgebra[JordanForm](A, output='Q');
> P,J := MTM[jordan](A);
> LinearAlgebra[Equal](J, P^(-1).A.P);  #=> true

【theme : 数学
【genre : 学問・文化・芸術

プロフィール

よしいず

Author:よしいず
MATHEMATICS.PDFというウェブサイトを運営しています。

管理の都合上、トラックバックとコメントはオフにしてあります。ブログ経験者なら分かっていただけると思いますが、スパム(アダルトやその他の宣伝)ばかりなのが現実です。

リンクは自由です。当サイトの記事に対する間違いの指摘・意見・感想などを述べた記事からのリンクは歓迎です。ただし、ブログ記事アップ直後はミスが多く、頻繁に修正します。場合によっては削除する可能性もあります。その際、何も断りもなく修正・削除しますがご了承ください。内容を参考にする場合には投稿後一週間ほど様子を見てからにしてください(笑)。

記事の間違いを指摘するときは、その具体的箇所、理由(仕様に反するなど)・根拠(参考にした文献など)、代替案(同じ結果を得るための正しいやり方)も教えてください。そうしないと、(指摘される側および第三者はその時点では無知の状態なので、)どこが間違いなのか分かりませんし、本当に間違っているのかどうかが判断・検証できません。実際、間違いだと指摘されたことが結局は正しかったというケースもありますので。

このブログのタイトル一覧

リンク
月別アーカイブ
カテゴリ
最新記事
検索フォーム
RSSリンクの表示