0

我将AX=b在 MATLAB 中使用共轭梯度法解决一个逆问题。我想在 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)和 return A*x

您的函数显然需要两个输入...您需要使用匿名函数来包装调用,如下所示:

% 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 回答