【问题标题】:Solve complex matrix equation求解复矩阵方程
【发布时间】:2019-09-17 09:29:02
【问题描述】:

我有一个涉及矩阵的复杂方程:

R = expm(X)*A + (expm(X)-I)*inv(X)*B*U; 

其中RBU 是已知矩阵。
I 是单位矩阵。

我需要解决X。有什么办法可以在 MATLAB 中解决这个问题?

【问题讨论】:

  • A 应该是已知矩阵之一吗?
  • 是的。 A 也是一个已知的矩阵。

标签: matlab matrix equation equation-solving


【解决方案1】:

如果您的方程是非线性的并且您可以访问 MATLAB 优化工具箱,则可以使用 fsolve 函数(您仍然可以将它用于线性方程,但它可能不是最有效的方法)。您只需将方程重新格式化为 F(x) = 0 的形式,其中 x 是向量或矩阵。例如,如果 X 是长度为 2 的向量:

定义要求解的函数:

function F = YourComplexEquation(X)
Fmatrix = expm(X)*A + (expm(X)-I)*inv(X)*B*U - R
% This last line is because I think fsolve requires F to be a vector, not a matrix
F = Fmatrix(:);

然后用初始猜测调用 fsolve:

X = fsolve(@YourComplexEquation,[0;0]);

【讨论】:

    猜你喜欢
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2020-07-12
    • 1970-01-01
    相关资源
    最近更新 更多