• 検索結果がありません。

付録C MATLABによる行列と数式の計算(pdf)

N/A
N/A
Protected

Academic year: 2021

シェア "付録C MATLABによる行列と数式の計算(pdf)"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

付録

C

MATLAB

による行列と数式の計算

C.1

MATLAB

の基本操作

MATLABは,行列計算を中心とした科学技術計算アプリケーションであり,各種領域 向けのツール群の他,プログラミング言語によるプログラム作りも可能である.以下は, 「バージョンR2020b」による実行例である1) MATLABを起動すると,画面の中央付近にプロンプト「>>」が表示されたコマンド ウィンドウが表示される.プロンプトに対してコマンドを入力し, を打てば結果が 「ans = 」に続けて表示される.このとき,「; 」とすれば,結果は表示されない.   >> 1+2+3 ans = 6 >> 1+2+3; >>   なお,プロンプトのもとでカーソルキーÒ と Ó が使えば,コマンド行に入力した履 歴が再表示される.

C.2

MATLAB

の基本事項

以下に,使用上,必要となる用語や記号について示す. 変 数 英字で始まる英数字(A„Z, a„z, 0„9)と特殊文字(_)の文字 列.大文字と小文字は区別される. ただし,処理系にあらかじめ登録されている関数名(i, j,char, mode, sizeなど)を変数とすることができない2).

データ型 int型(整数),real(実数),logical(論理型)

定 数 pi=3.1416.Infは8.

1)最新情報は,https://jp.mathworks.com/を参照のこと. 2)i, j は虚数単位として用いられるため,変数名として使用できない.

(2)

論理値 真ならば1,偽ならば0.trueとfalseも用いることができる. 算術演算子 加減乗除は,+, -, *, /,ベキ乗 は ^.演算子には優先順位あ り,2*3^2+4*5ùñ 38. 比較演算子 不等号・等号のą, ŕ, ă, ő, “, ­“は,順に>,>=,<,<=,==, ~=.計算結果は真ならば1,偽ならば0. 論理演算子 ^と_は,|と&.計算結果は真ならば1,偽ならば0. コメント記号 「%」はコメントのはじまりを表す.この記号から行末までは実行 されない.

C.3

行列の表し方

MATLABでは,行の要素は「空白」で区切り,行どうしは「;」で区切る.そのため, たとえば, M “ ˜ a11 a12 a13 a21 a22 a23 ¸ は, [a11 a12; a21 a22] と表す. 行列を表す主なコマンドを次表に示す. 項 目 コマンド 説 明 例 単位行列 eye(n) nˆn型の単位行列 eye(3) 零行列 zeros(m, n) mˆn型の零行列 zeros(3, 3)

C.4

行列の演算

行列の演算に関する主なコマンドを次表に示す. 項 目 コマンド 説 明 例 行列の和 A+B 行列ABの和 [1 2;3 4]+[1 -1;-2 1] 行列の積 A*B 行列ABの積 [1 2]*[3; 4] (A*AはA^2も可) [1 2; 3 4]^2 転置行列 M ’ 行列M の転置行列 [1 0; 0 1]’ 以下に,一般的な行列の演算例や,,0-1行列の演算例を本文で示した例題をとりあげな がら述べる.なお,紙面の都合上,処理系からの出力の一部(空白行など)を省略してい る3) 3)format compact を入力することで出力結果の行数が少なくなる.

(3)

【例C.1】行列の演算— 【例A.2】 >> [3 2;1 0]+[0 -1;3 -2] ans = 3 1 4 -2 >> [2 1;1 2]*[3 2;4 1] ans = 10 5 11 4 >> [1 2 3;2 0 1;3 1 0]*[1 0 0;0 2 0;0 0 3] ans = 1 4 9 2 0 3 3 2 0

C.5

0-1

行列の演算

0-1行列に対する演算‘とbにあたる演算子はMATLABにはなく,+と*による 計算結果は0と1とは限らない.そのため,各要素に対して「>= 1」かどうかの判定を することで計算結果を0-1行列にする(1以上である要素だけが1). 【例C.2】0-1行列の演算— 【例5.8】 >> MR = [1 1;0 0]; % M_R >> MQ = [1 1;0 1]; % M_Q >> MR+MQ % 関係の和(一般的な行列の和) ans = 2 2 0 1 >> MR+MQ >= 1 % 行列の和の各要素が >=1 かどうかの判定 ans = 2×2 の logical 配列 1 1 % 0-1行列としての計算結果 0 1 >> MR*MQ >= 1 % 関係の積(行列の積)の各要素が ans = %  >=1 かどうかの判定 2×2 の logical 配列 1 1 % 0-1行列の積としての計算結果 0 0

C.6

グラフの解析

第7章「グラフ」における隣接行列と連結行列を使った解析の計算例を示す.

(4)

【例C.3】グラフの行列演算— 【例7.18】 >> I4=eye(4); % 4×4の単位行列 >> A=[0 1 1 0;1 0 0 1;1 0 0 1;0 1 1 0]; % 隣接行列 >> I4+A+A^2+A^3 >= 1 % 連結行列の計算 ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 さらに,第9章「ネットワーク」における到達可能行列の計算例を示す. 【例C.4】ネットワークの到達可能行列— 【例9.17】 >> I4=eye(4); >> A=[0 1 0 0;0 0 1 0;0 1 0 1;0 0 0 0]; % 隣接行列 >> L=(A+I4)^3 >= 1 % 到達可能行列の計算 L = 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1

C.7

整数関数

第6章の「関数」で現れる整数関数(【例6.3】)のうち,MATLABの関数として次の ものが利用できる. 項 目 コマンド 例 床関数 floor(x) floor(3.14)ñ 3 天井関数 ceil(x) ceil(3.14)ñ 4 剰余関数 modl(x, y) ceil(10, 3)ñ 1

C.8

シンボリック計算

C.8.1

シンボリック変数

MATLABには,数値計算以外に,文字式,たとえば,px ` yq2をx2` 2xy ` y2と展 開するための数式処理の機能もある.この機能により,論理演算,多項式の演算,文字を 要素とする行列の演算などが行える.そのための変数はシンボリック変数とよばれ,次の ように宣言する.

(5)

syms var1 var2 ¨ ¨ ¨ varn type

これらの変数var1, var2, ¨ ¨ ¨ , varn はデータ型typeを値とする.なお,typeが省略さ

れた場合には,複素数を値とするシンボリック変数とされる.

C.8.2

命題論理

bool型を値とする変数をシンボリック変数として宣言することで,第1章の命題論理 に関する計算が行える.

【例C.5】命題論理の演算— 第1章「命題論理」

>> syms p q r bool % bool型のシンボリック変数の宣言 >> p | ~p % 【例1.6】 p∨(¬p) ans = symtrue % 真を表す(恒真) >> p & ~p % 【例1.6】 p∧(¬p) ans = symfalse % 偽を表す(恒偽) >> ~(p | q) % 1.3.5 ド・モルガンの法則 ¬(p∨q) ans = ~p & ~q >> ~(p & q) % 1.3.5 ドモルガンの法則 ¬(p∧q) ans = ~p | ~q >> p | ~(p & q) % [問1.10] p∨(¬(p∧q)) ans = symtrue % 真を表す(恒真) >> (p & q) & ~(p | q) % [問1.10] (p∧q)∧(¬(p∨q)) ans = symfalse % 偽を表す(恒偽)

C.8.3

多項式

文字x, y, z を変数とする多項式の計算は次のようにして行える. 【例C.6】多項式の演算 >> syms x y z real >> 2*x+x+y-3*y % 2x+x+y-3y の計算 ans = 3*x - 2*y >> expand((x+y)^2) % (x+y)^2 の展開 ans = x^2 + 2*x*y + y^2 多項式の計算により,第4章の母関数(4.8節)の計算が行える.

(6)

【例C.7】母関数— 【例4.10】 p1 ` x ` x2` x3` x4` x5qp1 ` xqp1 ` x ` x2` x3qを展開して得られる多項式 の係数は次のようにして求められる. >> expand((1+x+x^2+x^3+x^4+x^5)*(1+x)*(1+x+x^2+x^3)) ans = x^9 + 3*x^8 + 5*x^7 + 7*x^6 + 8*x^5 + 8*x^4 + 7*x^3 + 5*x^2 + 3*x + 1

参照

関連したドキュメント

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

チューリング機械の原論文 [14]

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算

各新株予約権の目的である株式の数(以下、「付与株式数」という)は100株とします。ただし、新株予約

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

①正式の執行権限を消費者に付与することの適切性

この場合,波浪変形計算モデルと流れ場計算モデルの2つを用いて,図 2-38

例: 12-○○株式会社△△ビル 設備カード.pdf 13-株式会社◇◇ 本社