2

次のように定義された関数があるとします。

関数 (f, df, x0)

ここで、f は関数、df はその導関数、x0 は初期点です。コマンドラインで f をどのように定義しますか? インライン定義を使用していますか? df と x0 はどうですか? df が勾配の場合はどうなりますか? また、x0 が順序付きペアの場合、コマンド ラインでどのように定義しますか?

4

1 に答える 1

1

関数を変数として渡すには、関数ハンドルを使用する必要があります。これを示す簡単な方法は、関数ハンドルを無名関数に使用することです。単純な無名関数は、次のように定義できます。

handle = @(arglist)anonymous_function

したがって、2 つの数値を加算する無名関数を作成するには、次のようにします。

f = @(a,b)a+b;

これは他の関数と同じように使用できます

>> f(1,2)

ans =

     3

df が単純な数値である場合、次のように定義できます。

df = 0.4

値のペアを定義するには、次のようにします。

X0=[1 2]

最後に、このサンプル関数を使用してすべてをまとめることができます (これを myfunc というファイルに入れます) 。. .

function out = myfunc(f,df,x0)

out = df * f(x0(1), x0(end));

これは、あなたの望むことですか?「x0 は順序付けられたペア」で少し混乱しました。

于 2012-04-26T06:46:34.053 に答える