最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英語でご覧になれます。
任意のMATLAB®関数にハンドルを作成し,関数を参照するための手段としてそのハンドルを使用することができます。関数ハンドルは、一般に、他の関数に引数リストの中で渡され、そこで、ハンドルを使った関数を実行したり“計算“します。
MATLABの中で,関数ハンドルは,関数名の前に符号@
を使って作成します。次の例は,関数罪
に対する関数ハンドルを作成し,それに,変数fhandle
を割り当てたものです。
fhandle = @sin;
関数名で関数を呼び出すのと同じ方法で,関数ハンドルによって関数を呼び出すことができます。その構文は次のとおりです。
fhandle (__arg1,最长,…);
以下に示す関数plot_fhandle
は関数ハンドルとデータを受け取り,その関数ハンドルを使ってy軸のデータを生成しプロットします。
函数plot_fhandle(fhandle, data)
下に示す関数罪
へのハンドルと引数と共にplot_fhandle
を呼び出すと,計算結果は正弦波プロットとして表示されます。
plot_fhandle (@sin -π:0.01:π)
“関数を引数とする関数”と呼ばれる関数クラスは,スカラー変数の非線形関数と共に機能します。すなわち1つの関数が他の関数上で機能するものです。次のような事柄を含んでいます。
零点の検出
最適化
求積
常微分方程式
MATLABでは,非線形関数を,それを定義するファイルによって表します。たとえば,matlab /演示
フォルダーに含まれている関数的线条
の簡単なバージョンを以下に示します。
函数y = 1 /(x- 3)。^2 + 0。01 + 1 /(x- 0。9)^2 + 0。04)- 6;
区間0≤x
≤1でこの関数を計算します。
x = 0: .002:1;y =驼峰(x);
そして,関数をプロットします。
情节(x, y)
グラフは,関数がx = 0.6近傍で局所的最小値をもつことを示しています。関数fminsearch
は,関数の最小値をもつxの値,“最小点“を探索します。fminsearch
への最初の引数は,最小化される関数の関数ハンドル,2番目の引数は最小値の位置のラフな推定値です。
p = fminsearch(@humps,.5) p = 0.6370
最小点で,関数を計算するには,
驼峰(p) ans = 11.2528
数値解析は,定積分の数値的近似と常微分方程式の数値積分とを区別するため”“求積と“積分“の項を使います。MATLABの求積法は,四
とquadl
です。ステートメント
Q = quadl (@humps 0 1)
は,グラフ曲線の下の領域を計算し,その結果を出力します。
Q = 29.8583
最終的に,グラフは,関数がこの区間で0にならないことを示しています。それで,次のステートメントで0の位置を探索します。
z = fzero (@humps。5)
結果,区間の外に見つかりました。
z = -0.1316