ドキュメンテーション

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

無名関数

この例では、無名関数を使用してコマンド ラインで関数を定義する方法を示します。

関数の積分

関数 10*x があるとします。

$$h(x) = 10x$$

10 だけではなく、x に任意の乗算を行う場合、変数 g (g が最初に 10 に設定されます) を作成し、新しい関数を作成します。

$$h(x) = g * x$$

関数ハンドル h を作成して MATLAB® 上でこの計算を行いましょう。

g = 10;
h = @(x) g*x;

ハンドルを関数 INTEGRAL に渡すことで関数の積分が可能です。

integral(h,1,10)
ans =

  495.0000

別の関数を想定します。

$$f(x) = sin(\alpha x)$$

alpha = 0.9 として、この関数への関数ハンドルを作成します。

alpha = 0.9;
f = @(x) sin(alpha*x);

関数をプロットしてその下の領域を塗りつぶします。

x = 0:pi/100:pi;
area(x,f(x)); % You can evaluate f without feval
title('f(x) = sin(\alpha x), \alpha =.9');

値の区間で関数の下の領域を、関数 INTEGRAL を使って計算できます。

integral(f,0,pi)
ans =

    2.1678

関数の最小化

以下の関数を想定します。

$$f(x) = a x^2 + bx + c$$

ただし、a = 1, b = -2, and c = 1 です。

この関数に対する関数ハンドルを作成します。

a = 1;
b = -2;
c = 1;
f = @(x)(a*x.^2+b*x+c);
ezplot(f); % Plot the function
title('f(x)=ax^2+bx+c, a=1,b=-2,c=1');
hold on;

% Find and plot the minimum
minimum = fminbnd(f,-2,2);       % We can pass the function handle directly
                                 % to the minimization routine
plot(minimum,f(minimum),'d');    % We can evaluate the function without
                                 % using feval
grid;
hold off;

2 次元関数

多変数の関数へのハンドルを作成することが可能です。

a = pi;
b = 15;
f = @(x,y) (a*x+b*y);
ezsurf(f);
title('f(x,y) = ax+by, a = \pi, b = 15');

関数構成

関数の関数ハンドルも作成することができます。

f = @(x) x.^2;
g = @(x) 3*x;
h = @(x) g(f(x));
h(3)
ans =

    27

この情報は役に立ちましたか?