Core Concepts
MATLAB のスクリプト言語では、大規模な問題を解くためには、ループ内の演算をベクトル化することが重要である。しかし、ベクトル化を行うと、コードの可読性が失われる。本論文では、ベクトル化と数学的な方法論を分離することで、可読性の高いコードを書くことができる基本線形代数パッケージを提案する。
Abstract
本論文では、MATLAB における高速な数値計算のためのベクトル化された基本線形代数パッケージについて説明している。
まず、線形代数の背景について説明する。ホモモルフィズム空間、テンソル積、行列の表現、ページ単位の演算などについて解説する。これらの概念に基づいて、ベクトル化された基本線形代数パッケージの関数を定義する。
次に、幾何学的な計算や有限要素法の例を示し、パッケージの使用方法を説明する。幾何学的な計算では、法線ベクトルや体積の計算を行う。有限要素法では、剛性行列や質量行列の組み立てを行う。これらの例では、数学的な定式化とコードの関係を明示的に示す。
最後に、パッケージの性能評価を行い、従来のコードと比較して大幅な高速化が実現できることを示す。ベクトル化とアルゴリズムの分離により、可読性の高いコードを書くことができる。
Stats
3次元球面領域の体積評価において、メッシュサイズに対して2次の収束性が得られる。
3次元球面領域の法線ベクトル評価において、メッシュサイズが大きくなるにつれて計算時間が増加する。
トーラス領域の慣性モーメントの評価において、メッシュサイズに対して指数関数的に計算時間が増加する。