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と同様の方法で操作されますが、結果は異なる場合があります。ほとんどの行列計算において、丸め誤差の変更が見られます。数学的に一意に値が決定されない場合は、結果は次数および正規化において異なる場合があります。

たとえば、

固有値アルゴリズムの増加 MATLAB 6.0では、以下によって決定される8個の固有値アルゴリズムをもちます。

対称およびエルミート問題に対して、固有値は実数で、昇順に並べられ、固有ベクトルはつぎのように正規化されます。

実数行列に対する新規の分解 QZアルゴリズムは、実数行列に対して実数分解を新たに出力します。AおよびBは実数で非対称である場合、

は、実数三角行列BBと共役複素値の組に対応する2行2列の対角ブロックをもつ実数擬似三角行列AAを出力します。MATLABの旧バージョンは、複素数の固有値がある場合は、複素三角行列AABBを出力しました。以下によってこの挙動を得ることができます。

または

実数行列のSchur分解に対する同様のオプション

は、Aが複素数の固有値をもつ場合は、複素分解を行います。

関数flops LAPACKの組み込みにより、浮動小数点演算をカウントすることは実用的でなくなりました。結果として、関数flopsはMATLAB 6.0では機能しません。将来のバージョンでは廃止される予定です。

現在のコンピュータアーキテクチャでは、浮動小数点演算カウントは、実行時間の良い指標ではありません。メモリ参照のカウントやキャッシュの利用パターンのほうがより重要です。

多次元Delaunay-Type機能

新規のQhulベースの関数は、Delaunay-typeの機能を拡張します。

微分方程式ソルバ

新規の微分方程式ソルバは、MATLABの機能を拡張します。

ODEソルバは、関数ハンドルを利用し、ODEファイルを使わずに問題を解くことができます。新規のシンタックスは、以下の通りです。

ここで、odefun, tspan ,y0は必須の引数です。詳細は、ODEソルバおよびodesetリファレンスページを参照してください。

MATLAB 6.0は、下位互換性のためODEファイルの利用をサポートしますが、新機能は、新規シンタックスによってのみ利用可能です。

スパース行列の計算

新規およびアップグレードされたルーチンにより、新機能が提供され、計算速度を向上させます。

高速フーリエ変換

高速フーリエ変換(FFT)関数は、MIT FFTWライブラリに依存します。これは、composite, prime, 大規模prime factor配列長に対して高速になります。

求積法

quadおよび新規関数quadlの新規の求積法アルゴリズムは、特異性の扱いが向上している点でより高速、正確、ロバストになっています。quadlは廃版関数quad8を置き換えたものです。

内挿

区分的キュービックHermite内挿多項式を基にした新規の1次元内挿関数pchipは、基礎となるデータの形状、および単調性を保存します。

ファンクション関数

すべてのファンクション関数は、関数ハンドルを引数として受け取ることができます。また、ほとんどは、引数として渡す関数に渡すパラメータをもちます。

関数ハンドルに関する詳しい情報は、function_handle (@), func2str, str2funcリファレンスページと、MATLABドキュメントの"プログラミングとデータタイプ"のFunction Handles"を参照してください。

基本的フィッティングインタフェース

MATLABは、基本的フィッティングインタフェースによってカーブフィッティングをサポートします。このインタフェースを用いて、使いやすい同じ環境において多くのカーブフィッティング作業を迅速に行うことができます。インタフェースは、以下を実行できるように設計されています。

特定のカーブフィッティングアプリケーションに応じて、polyfitpolyvalあるいはそれらの両方のようなコマンドライン機能や、基本的フィッティングインタフェースを利用することができます。

データ統計インタフェース

MATLABは、新規の視覚的なインタフェースをサポートします。

MATLAB figureウィンドウのツールメニューからデータの統計を選択すると、MATLABはグラフにプロットされた各データセットに対する統計を計算し、結果をデータの統計ダイアログボックスに表示します。統計をグラフにプロットするには、その値の隣のチェックボックスをクリックしてください。統計をワークスペース変数として保存するには、ワークスペースに保存...ボタンをクリックしてください。データ統計ツールは、個々の統計量を構造体として保存します。以下の図は、このダイアログボックスの構造を示します。

数学関数の表のまとめ

本節では、以下についてまとめます。

これらの関数の詳しい情報は、対応するリファレンスページを参照するか、あるいはMATLABコマンドウィンドウで

とタイプします。ここで、functionは情報を知りたい関数名です。

新規数学関数
関数
目的
bvp4c
選点法によりODEに対する2点境界値問題を解く
bvpget
BVP options構造体からオプションを取得
bvpinit
bvp4c用の初期推定を行う
bvpset
BVP options構造体の作成と修正
bvpval
bvp4cで計算される解の評価
colamd
列の最小度合い置換近似
convhulln
N次元の凸包
delaunay3
3次元Delaunay分解
delaunayn
N次元のDelaunay分解
dsearchn
N次元の最近傍点探索
griddata3
3次元データ用のデータのグリッド化とハイパーサーフェスフィッティング
griddatan
2次元以上のデータに対するデータのグリッド化とハイパーサーフェスフィッティング
lsqr
正規方程式での共役勾配法の実現
minres
最小残差法を使って方程式を解く
pchip
区分的エルミート内挿多項式(PCHIP) - データの単調性と形状を保存します。pchipは、interp1(x,y,xi,'cubic')で使用されます。
pdepe
1次元の放物型-楕円型PDEにおける初期境界値問題を解く
pdeval
pdepeで計算される解を内挿を使って評価
quadl
適応Lobatto求積法を使った積分の数値評価
symamd
対称な近似最小度合いの置換
symmlq
対称LQ法を使って方程式を解く
voronoin
N次元Voronoi線図の計算

新規または変更された機能をもつ関数
関数
目的
condest
[c,v] = condest(A,t)は、繰り返し行列の中の列数に等しい正の整数tを新規引数として指定します。列数の増加は、通常、条件数が良くなりますが、コストは多くなります。デフォルトは、t = 2で、ファクタ2の範囲で良い推定を与えます。
dblquad
dblquadは、funに渡す引数p1,p2,...をもちます。たとえば、
    dblquad(fun,xmin,xmax,ymin,ymax,tol,...
            @quadl,p1,p2,...)
    
eig
対称行列Aと対称正定行列Bに対して、eig(A,B,'chol')は、BのCholesky分解を使って、ABの一般化固有値を計算します。'chol'はデフォルトです。
eig(A,B,'qz')は、対称性がある場合は無視し、QZアルゴリズムを使用します。
eigs
ARPACKのサブセットへのインタフェースを提供します。拡張シンタックス、引数に関する情報は、sigmaおよびoptionseigsリファレンスページを参照してください。MATLAB 5で任意であった入力B, k, sigma, optionsの順番は任意ではありません。
fftshift, ifftshift

fftshift(X,dim)およびifftshift(X,dim)は、dimによって指定された次元に沿ってシフト操作を適用します。

fminbnd, fminsearch, fzero, lsqnonneg
新規のDisplayオプションパラメータ値'notify'は、関数が収束しない場合にのみ出力を表示します。これらの関数に対して、'notify'はデフォルトです。
fzero
MATLAB Version 5では、fzeroに対する呼び出しシーケンスを変更しました。MATLABドキュメントの"ファンクション関数"のコードの変換の指示を参照してください。
gallery
2つの新規オプションが、以下のテスト行列を生成します。
'randcolu' - 正規化した列と設定した特異値をもつランダム行列
'randcorr' - 設定した固有値をもつランダムな相関行列
interp1

interp1(x,y,xi,'cubic')およびinterp1(x,y,xi,'pchip')は、pchipを利用して内挿を行います。新規フラグ'v5cubic'は、MATLAB 5で利用されていたキュービック内挿を提供します。デフォルトの方法は'linear'です。

interp1(x,y,xi,method,'extrap')は、指定した方法を利用してxで設定された区間外にあるxiの要素を外挿します。

interp1(x,y,xi,method,extrapval)範囲外の値に対してスカラextrapvalを出力します。

lu

lu(X)は、長方形行列の分解に利用することができます。

ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb
ODEソルバは、ODEファイルを利用せずに問題を解くことができます。問題の成分は、引数として直接ソルバに渡されるか、あるいはオプション構造体のパラメータを使って与えられます。詳細は、ODEソルバおよびodesetリファレンスページを参照してください。
MATLAB 6.0は、下位互換性のためにODEファイルの利用をサポートしますが、新機能は新規シンタックスでのみ利用可能です。
polyval, polyfit
polyfitのオプション出力引数およびpolyvalのオプション入力引数は、中心化とスケーリング、つまり個々の値の平均の減算と標準偏差の正規化を提供します。.
quad
quad(fun,a,b)は、新規のデフォルト許容誤差 10-6を利用します。
新規の求積アルゴリズムの利用のため、結果(q)および関数評価(trace(1) = fcnt)の数は、MATLAB 5と異なる場合があります。新アルゴリズムは、より正確な結果を与え、通常、性能は向上しています。
qz
実数のABに対して、[AA,BB,Q,Z,V] = qz(A,B,'real')は、擬似三角行列AAを使って実数分解を行います。
[AA,BB,Q,Z,V] = qz(A,B,'complex')は、三角行列AAを使って複素分解を行います。
schur
実数Xに対して、schur(X,'real')は、実固有値を対角要素上に、複素固有値を2行2列ブロックで、対角線上に配置します。schur(X,'complex')は、Xが複素固有値の場合、三角行列で、複素数になります。
sort
sort(S)は、たとえばint32のような異なるデータタイプに対しても動作し、doubleに対して高速になるよう書き直されています。sort(S,dim)は、dimで指定した次元においてフル行列、およびスパース行列の両方の要素をソートすることができます。
sqrtm

[X, alpha, condest] = sqrtm(A)は、安定因子alphaXの行列の平方根の条件数の推定値condestを出力します。

std
std([])は、空行列を出力しません。NaNおよびメッセージ警告: ゼロ割ですを出力します。


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