解复矩阵方程

时间:2019-04-28 15:29:26

标签: matlab matrix equation equation-solving

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

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

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

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

1 个答案:

答案 0 :(得分:0)

如果方程是非线性的,并且可以访问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]);