次のように定義された関数があるとします。
関数 (f, df, x0)
ここで、f は関数、df はその導関数、x0 は初期点です。コマンドラインで f をどのように定義しますか? インライン定義を使用していますか? df と x0 はどうですか? df が勾配の場合はどうなりますか? また、x0 が順序付きペアの場合、コマンド ラインでどのように定義しますか?
次のように定義された関数があるとします。
関数 (f, df, x0)
ここで、f は関数、df はその導関数、x0 は初期点です。コマンドラインで f をどのように定義しますか? インライン定義を使用していますか? df と x0 はどうですか? df が勾配の場合はどうなりますか? また、x0 が順序付きペアの場合、コマンド ラインでどのように定義しますか?
関数を変数として渡すには、関数ハンドルを使用する必要があります。これを示す簡単な方法は、関数ハンドルを無名関数に使用することです。単純な無名関数は、次のように定義できます。
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 は順序付けられたペア」で少し混乱しました。