0

AX=bMATLAB の共役勾配法を使用して、逆問題 を解きます。MATLABで関数を使用したいのですがpcg、知っているように、行列の代わりにA関数を使用できます。

たとえば、afunいくつかのエントリを持つ関数があります。ドキュメントでは、エントリなしで関数afunに関数が入力されているのを見ましたpcgが、同じことをするとエラーnot enough input argumentsが表示されます。次のようなコードを使用します。

b = afun(ent1,ent2);
x = pcg(@afun,b,tol,max_iter);

で関数をどのように使用すればよいpcgですか?

4

1 に答える 1

0

ドキュメントによると、関数ハンドルには署名afun(x)と戻り値が必要A*xです。

あなたの関数は明らかに2つの入力を取ります...次のように、匿名関数を使用して呼び出しをラップする必要があります。

% I dont know what these ent1/ent2 represent exactly,
% so you must complete the ".." part first
fcn = @(x) afun(x, ..)

% now you can call PCG
x = pcg(fcn, b, tol, maxiter);

関数ハンドルを使用して追加の引数を渡すために関数をパラメーター化する方法を説明するドキュメント ページがあります。

于 2016-03-26T16:57:21.400 に答える