行列

数値計算

MATLAB,Python,Scilab,Julia比較 その22【行列演算⑤】

行列の転置について説明。転置自体は、行列の行と列を入れ替えるだけの話。具体的な利用シーンというのは特になく、計算都合で使うことがほとんど。良く使う処理なので、名前が付いていた方が利便性が良いという考え方が妥当そう。
数値計算

MATLAB,Python,Scilab,Julia比較 その21【行列演算④】

行列の除算について。行列は原則的に除算は存在しないが、「逆行列を掛ける」がそれに該当する。さらに行列の積は結合法則はあれど、交換法則はない。上記に伴い、左除算、右除算と言う概念が出てくる。逆行列の位置が変わる。数式上ではあまり出て来ないが、各ツール、言語がサポートしていることが多い。
数値計算

MATLAB,Python,Scilab,Julia比較 その20【行列演算③】

今回はアダマール積について。演算子がいろいろあり、アダマール積かどうかは文脈で読み解くしかない。しかし、特殊な状況でしか登場しないので、そういうものがあるという程度で留めておいてもよいかも。画像処理の畳み込みで出てくることは多い。
数値計算

MATLAB,Python,Scilab,Julia比較 その19【行列演算②】

行列の乗算(内積)について説明。上記はなぜそのような演算になるか不明(太郎くん談)。これを理解するには線形代数の基礎部分を理解する必要がある。線形代数すべてを説明するとなると大変だが、基礎部分を可能な限り簡単に説明予定。
数値計算

MATLAB,Python,Scilab,Julia比較 その18【行列演算①】

代表的な行列演算を列挙。基本的な四則演算に加えて、アダマール積、べき乗、転置。まずは加算、減算。各要素単位で加算、減算すればOK。当然、「次元を一致させる」必要がある。
数値計算

MATLAB,Python,Scilab,Julia比較 その17【基本的な使い方⑦】

Juliaでスライシングを実施。基本的にはMATLABと似た感じ。ただし、配列添え字用のカッコが違う。あと、スライシングの結果、ベクトルとなった場合は列ベクトルになる。行列としてスライシングした場合は、元の行と列の関係は維持される。
数値計算

MATLAB,Python,Scilab,Julia比較 その16【基本的な使い方⑥】

Python(Numpy)でスライシングを実施。0オリジンのためMATLABと設定する数値が異なる。加えて、区間演算子の終端は範囲に指定範囲には含まれない点に注意。Scilabでスライシング。MATLABと同一。
数値計算

MATLAB,Python,Scilab,Julia比較 その15【基本的な使い方⑤】

基本的な使い方の続きとしてスライシングについて。特定の要素、特定範囲を抽出可能。区間演算子start:step:endを元に範囲抽出するが、step=1なことがほとんどなので、stepを省略したstart:endの書き方になることが多い。
数値計算

MATLAB,Python,Scilab,Julia比較 その14【基本的な使い方④】

Juliaの基本的な使い方。Juliaは列ベクトルがデフォルト。MATLAB、Scilabは行ベクトルがデフォルトであるため、扱いに気を付ける必要がある。列ベクトルがデフォルトになっている理由としては、数式との一致性を考慮した結果と推測される。
数値計算

MATLAB,Python,Scilab,Julia比較 その13【基本的な使い方③】

Juliaの基本的な使い方・・・の前にいろいろクセが違うのでそれの調査。start:step:endの形式(区間演算子)で等差数列を表現できるが、この状態ではメモリ上に実態を持っていない。よって、読み出しはできるが、書き込みはできない。区間演算子に実態を持たせるにはVectorに渡すことで解決。