R12 Release Notes | ![]() ![]() |
数学関数
MATLAB 6.0では以下の数学機能が追加、または機能強化されています。
これらの機能を以下に説明します。この節の終わりには、MATLABの数学関数の変更点をまとめた表があります。
廃版関数に関する情報は、旧リリースからのアップグレードを参照してください。
MATLAB 6.0の行列計算
MATLAB 6.0の行列計算は、数値線形代数の大規模FortranサブルーチンライブラリであるLAPACKに基づきます。LAPACKは、MATLABの行列計算機能を拡張し、大規模問題の速度を向上させます。行列引数のプロパティに基いた選択肢から多くのクラスのアルゴリズムをMATLABに提供します。すべてのMATLABプラットフォームにおいて最適化されたBasic Linear Algebra Subroutines(BLAS)は、行列の乗算およびLAPACKルーチン自身を高速化します。最適化されたBLASは、Automatically Tuned Linear Algebra Software(ATLAS)によって提供されます。
The LAPACK Users' Guide, Third Editionは、http://www.netlib.org/lapack/lug/lapack_lug.htmlからオンラインで入手可能です。
結果の相違 MATLABの旧バージョンの行列関数は、MATLAB 6.0と同様の方法で操作されますが、結果は異なる場合があります。ほとんどの行列計算において、丸め誤差の変更が見られます。数学的に一意に値が決定されない場合は、結果は次数および正規化において異なる場合があります。
rcond
は、逆数条件の良い推定です。lu
は、長方形フル行列の分解に利用することができます。固有値アルゴリズムの増加 MATLAB 6.0では、以下によって決定される8個の固有値アルゴリズムをもちます。
対称およびエルミート問題に対して、固有値は実数で、昇順に並べられ、固有ベクトルはつぎのように正規化されます。
V'*V or V'*B*V = I
実数行列に対する新規の分解 QZアルゴリズムは、実数行列に対して実数分解を新たに出力します。A
およびB
は実数で非対称である場合、
[AA,BB,...] = qz(A,B,'real')
は、実数三角行列BB
と共役複素値の組に対応する2行2列の対角ブロックをもつ実数擬似三角行列AA
を出力します。MATLABの旧バージョンは、複素数の固有値がある場合は、複素三角行列AA
とBB
を出力しました。以下によってこの挙動を得ることができます。
[AA,BB,...] = qz(A,B)
[AA,BB,...] = qz(A,B,'complex')
T = schur(A,'complex')
関数flops LAPACKの組み込みにより、浮動小数点演算をカウントすることは実用的でなくなりました。結果として、関数flops
はMATLAB 6.0では機能しません。将来のバージョンでは廃止される予定です。
現在のコンピュータアーキテクチャでは、浮動小数点演算カウントは、実行時間の良い指標ではありません。メモリ参照のカウントやキャッシュの利用パターンのほうがより重要です。
多次元Delaunay-Type機能
新規のQhulベースの関数は、Delaunay-typeの機能を拡張します。
delaunayn
およびdelaunay3
convhulln
voronoin
griddatan
およびgriddata3
微分方程式ソルバ
bvp4c
は、選点によってODEに対する2点境界値問題を解きます。サポート関数を使うことにより、問題の解に影響を与え、初期推定を作成し、bvp4c
で得られる数値解を評価するオプションを設定することができます。pdepe
は、1次元の放物線-楕円PDE初期境界値問題を解きます。サポート関数を使ってpdepe
によって得られる数値解を評価することができます。ODEソルバは、関数ハンドルを利用し、ODEファイルを使わずに問題を解くことができます。新規のシンタックスは、以下の通りです。
solver
(@odefun,tspan,y0,options,p1,p2,...)
ここで、odefun
, tspan
,y0
は必須の引数です。詳細は、ODEソルバおよびodeset
リファレンスページを参照してください。
MATLAB 6.0は、下位互換性のためODEファイルの利用をサポートしますが、新機能は、新規シンタックスによってのみ利用可能です。
スパース行列の計算
新規およびアップグレードされたルーチンにより、新機能が提供され、計算速度を向上させます。
eigs
およびsvds
は、FortranライブラリARPACKを利用します。symmlq
, minres
,lsqr
は、繰り返して対称不定システムおよび最小二乗問題を解きます。colamd
とsymamd
は、スパース因子のfill-inを削減するために最小度合い置換近似を提供します。condest
は、より正確な条件推定を行うことができます。高速フーリエ変換
高速フーリエ変換(FFT)関数は、MIT FFTWライブラリに依存します。これは、composite, prime, 大規模prime factor配列長に対して高速になります。
求積法
quad
および新規関数quadl
の新規の求積法アルゴリズムは、特異性の扱いが向上している点でより高速、正確、ロバストになっています。quadl
は廃版関数quad8
を置き換えたものです。
内挿
区分的キュービックHermite内挿多項式を基にした新規の1次元内挿関数pchip
は、基礎となるデータの形状、および単調性を保存します。
ファンクション関数
すべてのファンクション関数は、関数ハンドルを引数として受け取ることができます。また、ほとんどは、引数として渡す関数に渡すパラメータをもちます。
関数ハンドルに関する詳しい情報は、function_handle
(@
), func2str
, str2func
リファレンスページと、MATLABドキュメントの"プログラミングとデータタイプ"のFunction Handles"を参照してください。
基本的フィッティングインタフェース
MATLABは、基本的フィッティングインタフェースによってカーブフィッティングをサポートします。このインタフェースを用いて、使いやすい同じ環境において多くのカーブフィッティング作業を迅速に行うことができます。インタフェースは、以下を実行できるように設計されています。
特定のカーブフィッティングアプリケーションに応じて、polyfit
とpolyval
あるいはそれらの両方のようなコマンドライン機能や、基本的フィッティングインタフェースを利用することができます。
データ統計インタフェース
MATLABは、新規の視覚的なインタフェースをサポートします。
MATLAB figureウィンドウのツールメニューからデータの統計を選択すると、MATLABはグラフにプロットされた各データセットに対する統計を計算し、結果をデータの統計ダイアログボックスに表示します。統計をグラフにプロットするには、その値の隣のチェックボックスをクリックしてください。統計をワークスペース変数として保存するには、ワークスペースに保存...ボタンをクリックしてください。データ統計ツールは、個々の統計量を構造体として保存します。以下の図は、このダイアログボックスの構造を示します。
数学関数の表のまとめ
これらの関数の詳しい情報は、対応するリファレンスページを参照するか、あるいはMATLABコマンドウィンドウで
help function
とタイプします。ここで、function
は情報を知りたい関数名です。
注意 廃版関数に関する情報は、旧リリースからのアップグレードを参照してください。 |
関数 |
目的 |
|
選点法によりODEに対する2点境界値問題を解く |
|
BVP options構造体からオプションを取得 |
|
bvp4c 用の初期推定を行う |
|
BVP options構造体の作成と修正 |
|
bvp4c で計算される解の評価 |
|
列の最小度合い置換近似 |
|
N次元の凸包 |
|
3次元Delaunay分解 |
|
N次元のDelaunay分解 |
|
N次元の最近傍点探索 |
|
3次元データ用のデータのグリッド化とハイパーサーフェスフィッティング |
|
2次元以上のデータに対するデータのグリッド化とハイパーサーフェスフィッティング |
|
正規方程式での共役勾配法の実現 |
|
最小残差法を使って方程式を解く |
|
区分的エルミート内挿多項式(PCHIP) - データの単調性と形状を保存します。pchip は、interp1(x,y,xi,'cubic') で使用されます。 |
|
1次元の放物型-楕円型PDEにおける初期境界値問題を解く |
|
pdepe で計算される解を内挿を使って評価 |
|
適応Lobatto求積法を使った積分の数値評価 |
|
対称な近似最小度合いの置換 |
|
対称LQ法を使って方程式を解く |
|
N次元Voronoi線図の計算 |
関数 |
目的 |
|
[c,v] = condest(A,t) は、繰り返し行列の中の列数に等しい正の整数t を新規引数として指定します。列数の増加は、通常、条件数が良くなりますが、コストは多くなります。デフォルトは、t = 2 で、ファクタ2の範囲で良い推定を与えます。 |
|
dblquad は、fun に渡す引数p1,p2,... をもちます。たとえば、dblquad(fun,xmin,xmax,ymin,ymax,tol,... @quadl,p1,p2,...) |
|
対称行列A と対称正定行列B に対して、eig(A,B,'chol') は、B のCholesky分解を使って、A とB の一般化固有値を計算します。'chol' はデフォルトです。eig(A,B,'qz') は、対称性がある場合は無視し、QZアルゴリズムを使用します。 |
|
ARPACKのサブセットへのインタフェースを提供します。拡張シンタックス、引数に関する情報は、sigma およびoptions eigs リファレンスページを参照してください。MATLAB 5で任意であった入力B , k , sigma , options の順番は任意ではありません。 |
|
|
|
新規のDisplay オプションパラメータ値'notify' は、関数が収束しない場合にのみ出力を表示します。これらの関数に対して、'notify' はデフォルトです。 |
|
MATLAB Version 5では、fzero に対する呼び出しシーケンスを変更しました。MATLABドキュメントの"ファンクション関数"のコードの変換の指示を参照してください。 |
|
2つの新規オプションが、以下のテスト行列を生成します。'randcolu' - 正規化した列と設定した特異値をもつランダム行列'randcorr' - 設定した固有値をもつランダムな相関行列 |
|
interp1(x,y,xi,method,'extrap') は、指定した方法を利用してx で設定された区間外にあるxi の要素を外挿します。
|
lu |
|
|
ODEソルバは、ODEファイルを利用せずに問題を解くことができます。問題の成分は、引数として直接ソルバに渡されるか、あるいはオプション構造体のパラメータを使って与えられます。詳細は、ODEソルバおよびodeset リファレンスページを参照してください。MATLAB 6.0は、下位互換性のためにODEファイルの利用をサポートしますが、新機能は新規シンタックスでのみ利用可能です。 |
|
polyfit のオプション出力引数およびpolyval のオプション入力引数は、中心化とスケーリング、つまり個々の値の平均の減算と標準偏差の正規化を提供します。. |
quad |
quad(fun,a,b) は、新規のデフォルト許容誤差 10-6を利用します。新規の求積アルゴリズムの利用のため、結果( q )および関数評価(trace(1) = fcnt )の数は、MATLAB 5と異なる場合があります。新アルゴリズムは、より正確な結果を与え、通常、性能は向上しています。 |
|
実数のA とB に対して、[AA,BB,Q,Z,V] = qz(A,B,'real') は、擬似三角行列AA を使って実数分解を行います。[AA,BB,Q,Z,V] = qz(A,B,'complex') は、三角行列AA を使って複素分解を行います。 |
|
実数X に対して、schur(X,'real') は、実固有値を対角要素上に、複素固有値を2行2列ブロックで、対角線上に配置します。schur(X,'complex') は、X が複素固有値の場合、三角行列で、複素数になります。 |
|
sort(S) は、たとえばint32 のような異なるデータタイプに対しても動作し、doubleに対して高速になるよう書き直されています。sort(S,dim) は、dim で指定した次元においてフル行列、およびスパース行列の両方の要素をソートすることができます。 |
|
|
|
std([]) は、空行列を出力しません。NaN およびメッセージ警告: ゼロ割です を出力します。 |
![]() | 開発環境の機能 | プログラミングおよびデータタイプの機能 | ![]() |