【问题标题】:No output while using "gmres" in Matlab在 Matlab 中使用“gmres”时没有输出
【发布时间】:2017-05-18 16:03:31
【问题描述】:

我想求解Ax = b+u 类型的线性等式系统,其中Ab 是已知的。我在 MATLAB 中使用了这样的函数:

x = @(u) gmres(A,b+u);

然后我使用fmincon,其中u 的值被赋予此表达式并计算x。例如

J = @(u) (x(u)' * x(u) - x^*)^2

[J^*,u] = fmincon(J,...);

将点作为等式和不等式的矩阵和向量。 我的问题是,MATLAB 始终提供有关命令gmres 的信息的输出。但我不知道如何才能阻止它(这会使程序变慢)。

希望你知道答案。 帕奇

【问题讨论】:

标签: matlab


【解决方案1】:

在文档中有点隐藏,但是it does say

如果指定了flag 输出,则不会显示任何消息。

所以你需要调用gmres 至少有两个输出。您可以通过制作包装函数来做到这一点

function x = gmresnomsg(varargin)
    [x,~] = gmres(varargin{:});
end

并将其用于创建句柄

x = @(u) gmresnomsg(A,b+u);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多