MATLAB Release Notes    

数学機能

MATLAB 6.5 は、以下の数学機能が追加されています。

これらの機能を以下に示します。この節の最後に、MATLAB数学関数の変更点をまとめた表を示します。

遅延微分方程式

MATLABは、定数遅延をもつ遅延微分方程式(DDEs)を解く機能を提供します。DDEソルバ、dde23は、MATLAB ODEソルバインタフェースと同様のインタフェースを提供し、使いやすいものです。補助関数ddeset, ddeget, devalを使って、問題の解にえいきょうを与える積分プロパティを設定し、dde23で得られる数値解を評価することができます。

詳細は、Initial Value Problems for DDEsとMATLABドキュメントの関数の記述を参照してください。

特異値境界ODE問題

関数bvp4cは、のときの区間で

の形式の特異BVPのクラスを解きます。 関数bvpsetは、新規の'SingularTerm'積分プロパティを提供し、これを利用して、定数行列bvp4cに渡すことができます。

詳細は、Solving Singular BVPsとMATLABドキュメントの関数の記述を参照してください。

体積の積分

新規関数triplequadは、3次元長方形領域において、関数 fun(x,y,z) として渡した三重積分を実行します。デフォルトとして、triplequadは求積関数quadを利用して積分を行います。代わりにquadlを選択したり、ユーザ独自の求積関数を使うことができます。

Gamma関数の対数微係数

新規関数psiは、digamma関数としても知られる関数を、配列Xの各要素に対して実行します。psiを使ってk次微係数を計算したり、Xの要素について他の次数の一連の微係数を計算することができます。

スパース行列LU分解と解法

LU分解とスパース行列の解法は、UMFPACKを利用します。UMFPACKは、Unsymmetric MultiFrontal法を利用して、非対称スパース線形システムを解くためのルーチンです。これらの行列に対する計算は、かなり速くなります。

関数lu.   関数luは、スパース行列に対する2つの新規シンタックスを提供します。これらのシンタックスは、分解に対してUMFPACKを利用します。

シンタックスは、単位下三角行列L、上三角行列U、置換行列PQを出力します。P*X*Q = L*Uとなります。

\ (バックスラッシュ).   行列の左除算(\)は、正方スパース行列に対してUMFPACKを利用します。

UMFPACKに関する情報は、http://www.cise.ufl.edu/research/sparse/umfpack/からオンラインで入手可能です。UMFPACK Version 4.0 User Guide は、http://www.cise.ufl.edu/research/sparse/umfpack/v4.0/UserGuide.pdfで入手可能です。

行列の数学パフォーマンスの改良

Aが上三角または下三角行列であり、Bmn列行列のとき、線形システムAX = Bを解く速度は、最適化 Basic Linear Algebra Subroutines (BLAS)の利用により改良されています。最適化BLASは、Automatically Tuned Linear Algebra Software (ATLAS)で提供されます。

BLASは、行列*ベクトル、ベクトル*行列、行ベクトル*列ベクトルのような行列の乗算のパフォーマンスを改良するためにも用いられます。

ATLAS BLASは、WindowsおよびLinux双方のオペレーティングシステムにおいて、Pentium 4 に対してはじめて適用され、線形代数コア関数の速度を改良しています。

キャッシュをより適切に利用することにより、行列の転置の速度はすべての行列に対して増加していますが、特にサイズが2のベキ乗である行列に対して増加しています。

新規関数のまとめ

関数
目的
dde23
定数遅延をもつ遅延微分方程式(DDEs)の初期値問題を解く
ddeget
ddesetにより作成されたオプション醸造体からプロパティを取得
ddeset
ソルバ積分プロパティを含むDDEオプション構造体の作成/変更
psi
Psi (polygamma)関数(gamma関数の対数微係数)
triplequad
三重積分の数値評価

変更された関数のまとめ

関数

機能強化されたあるいは変更された点
bvp4c
bvpset

新規オプション'SingularTerm'を使って、特異なBVPの特異項として行列を指定することができます。このオプションは、以下の形式の方程式に対して定数行列を指定します。


corrcoef
3つの新規シンタックスを提供します。
[R,P] = corrcoef(...)は、非相関の仮説の検証に対するp値からなる行列であるPを出力します。

[R,P,RLO,RUP] = corrcoef(...)は、各係数の95%の信頼区間に対する上限および下限を含む行列RLORUPを出力します。

[...]=corrcoef(...,'param1',val1,'param2',val2,...)は、デフォルトの信頼区間を変更し、NaNを含むXの行をどのように扱うかを指定することが可能なパラメータと値の組を受け取ります。

deval
dde23からの出力も受け取ります。
gallery
house

新規シンタックス[v,beta,s] = gallery('house',x,k)は、xのノルムを出力します。sの符号を制御するために新規引数kを使うことができます。


leslie
gallery('leslie',a,b)は、平均の出生数a(1:n)と生存率b(1:n-1)をもつnn列のLeslie行列を出力します。

orthog
gallery('orthog',n,k)は、行列の新規タイプkを追加しています。k = 6 は、Q(i,j) = sqrt(2/n)*cos((i-1/2)*(j-1/2)*pi/n)のように、離散余弦変換として生じた対称行列を指定します。

randsvd
大きい次元に対して、新規引数methodを使って、(より多くのflopsを利用しても)大きい次元に対してより高速な方法を指定することができます。
legendre
新規シンタックスlegendre(n,X,'norm')は、正規化随伴Lengendre関数を計算します。
lsqr
新規シンタックス[x,flag,relres,iter,resvec,lsvec] = lsqr(...)は、各繰り返しでのスケーリングされた標準の残差を推定してベクトルlsvecに出力します。
lu
UMFPACKを使って、スパース行列の分解の速度を改良したり、スパース行列に対して2つのシンタックスを追加します。
[L,U,P,Q] = lu(X)
[L,U,P,Q] = lu(X,thresh)
新規出力Qは、スパースな場合の空きを削減するため利用される列転置行列です。Pは、数値安定性を目的として利用される行転置行列です。UNFPACKに関する詳細は、スパース行列LU分解と解法を参照してください。
qrdelete
qrinsert

これらの関数の2つの新規シンタックスは、QR分解での行および列の削除ならびに挿入に対して提供されます。
[Q1,R1] = qrdelete(Q,R,j,'col')
[Q1,R1] = qrdelete(Q,R,j,'row')
[Q1,R1] = qrinsert(Q,R,j,x,'col')
[Q1,R1] = qrinsert(Q,R,j,x,'row')
オリジナルのシンタックスqrdelete(Q,R,j)およびqrinsert(Q,R,j,x)のデフォルトは、'col'です。
(スラッシュ)
(バックスラッシュ)

正方スパース行列の左除算および右除算に対してはUMFPACKを利用します。
(スラッシュ)
(バックスラッシュ)

左(\)または右(/)除算を使った、特異な下三角または上三角行列のその他の行列による除算の結果は、変更されている場合があります。従来は、rcond(A) = 0である特異な正方行列Aに対して、毛かkあh常にInfの行列でした。この変更は、上記のパフォーマンスの改良の結果です。
例題は、Mathematics Upgrade Issuesを参照してください。


  開発環境の機能 プログラミングとデータタイプの機能