概要

MATLABの言語に使用される行列の基本概念と計算方法を説明します。

1 基本概念

MATLABの言語では、基本的な計算ユニットは「行列」です。例えば、$x=1.0$という変数$x$は$1\times 1$行列として扱っています。

以下はベクトルや行列の作成方法、成分のアクセス、行列のサイズの取得など基本的な概念を説明します。

1.1 ベクトルの操作・演算

長さが$n$であるベクトルは$n \times 1$の行列又は$1 \times n$の行列と考えられます。 ベクトルの生成、演算は特別な命令が用意されています。

以下の例を試してみてください。 

注意:各行の「%」の後の部分はコメントとなります。

1.2 変数の出力

各行の最後に「;」で終了する場合、該当行の結果は画面に出力されません。

変数を指定されるフォマットで出力したい場合、printfを使用すること。

以下の命令を実行してみてください。

説明

1.3 行列の作成

演習1 

  • 以下の行列を入力してください。 $$ A=\left( \begin{array}{cccc} 2 & 1 & 0 & 0 \\ -1 & 2 & 1 & 0 \\ 0 & -1 & 2 & 1 \\ 0 & 0 & -1 & 2 \end{array}\right) $$
  • 区間$[0,2\pi]$の等分割を作成する。分割数(分割される小区間の数)を$20$とする。

1.4 ベクトル・行列成分のアクセス

ベクトルまたは行列の成分をアクセスするために、演算子「()」を使用します。例えば、「x(3)」はベクトルの第3成分を取ります。 演算子「()」を使って、ベクトルの成分の値の修正もできます。

行列の成分を取るために、「A(i,j)」という形を使用します。 また、行列の部分行列をアクセスするために、「A(i_list, j_list)」という命令を使用します。ここで、i_listは行の番号のリスト、j_listは列の番号のリストです。

ベクトルまたは行列のすべての成分をとるために、「:」を使います。特に、以下の行列のすべての成分を取るとき、出力の結果の並び順番を確認してください。

1.5 ベクトルの成分を1つづつアクセスする方法

for文を使って、ベクトルの成分を1つづつアクセスすることができます。

for文の使用:以下の例では、ベクトルの各成分を取って、xに格納して、表示します。

for x = vec
   display(x)
end
以下の例では、vecの各成分の2乗の和を計算しています。

演習 2

ベクトルxの各成分の並びを逆にしなさい。つまり、xの第1成分を最後に移動し、xの第2成分を後から2番に移動し、...という作業です。

1.6 特殊な行列の作成

以下は幾つかの特殊な行列を作成するための命令を紹介する。

$5\times 5$単位行列の作成

すべての要素が0である行列の作成

すべての要素が1である行列の作成

ベクトルによる対角行列を作成する。

0から1までの一様乱数がなす乱数行列の作成

1.7 ベクトルのノルム

長さが$n$であるベクトル$x$のユークリッドノーム($\|x\|_2$と書く)は $$\|x\|_2 =\sqrt{\sum_{i=1}^n x(i)^2}$$ である。

$x$の最大値ノルム($\|x\|_\infty$)は $$ \|x\|_\infty =\max (|x(i)|) $$ である。

レポート課題 1 

以下の条件を満たす行列をMATLABの言語で作成しなさい。

コーヒーブレイク

以下のコードによってどのような行列がつくれますか?

x=zeros(10,10)
x(:)=1:100

また、以下の命令は上記のコードと同じ行列を作っています。その理由を考えてください。

reshape(1:100,[10,10])