主要内容

最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英語でご覧になれます。

非線形関数の演算

関数ハンドル

任意の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