如何在 MATLAB 中使用带有函数的 pcg
How to use pcg with a function in MATLAB
我将在 MATLAB 中使用共轭梯度法求解一个反问题 AX=b
。我想在 MATLAB 中使用 pcg
函数,据我所知,我可以使用一个函数来代替矩阵 A
。
我有一个函数,例如 afun
,它有一些条目。在文档中,我看到 afun
函数在没有条目的 pcg
函数中输入,但是,当我这样做时,出现错误 not enough input arguments
。我使用这样的代码:
b = afun(ent1,ent2);
x = pcg(@afun,b,tol,max_iter);
我应该如何在 pcg
中使用我的函数?
根据文档,函数句柄应具有签名 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);
有一个文档页面解释了如何 parameterize functions to pass extra args using function handles。
我将在 MATLAB 中使用共轭梯度法求解一个反问题 AX=b
。我想在 MATLAB 中使用 pcg
函数,据我所知,我可以使用一个函数来代替矩阵 A
。
我有一个函数,例如 afun
,它有一些条目。在文档中,我看到 afun
函数在没有条目的 pcg
函数中输入,但是,当我这样做时,出现错误 not enough input arguments
。我使用这样的代码:
b = afun(ent1,ent2);
x = pcg(@afun,b,tol,max_iter);
我应该如何在 pcg
中使用我的函数?
根据文档,函数句柄应具有签名 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);
有一个文档页面解释了如何 parameterize functions to pass extra args using function handles。