解决“转置”李雅普诺夫方程AX + X ' b =问
5视图(30天)
显示旧的评论
答案(2)
马特·J
2020年10月31日
编辑:马特·J
2020年10月31日
我不知道你的系统有多大,但是如果不是超大型可以使用
func2mat
,
重塑它作为常规线性系统,
(nx、mx) = (A)大小;
X =重塑(func2mat (@ (X) * + X”* B的(mx nx)) \ Q (:), [mx, nx]);
2的评论
约翰D 'Errico
2020年10月31日
编辑:约翰D 'Errico
2020年10月31日
它总是重要的事情要告诉细节像的大小问题。但实际上,你的问题是没有一个规模1024,因为真的是1048576未知数。
布鲁诺陈德良
2020年10月31日
编辑:布鲁诺陈德良
2020年10月31日
Sove来
真正的
方程。
可能需要几分钟的矩阵规模1024人,但这段代码使用迭代解算器似乎能够回馈一个解决方案。
根据A和B,这个问题可能是不适定的,所以你可能会遇到所有的问题解决不适定的线性系统。但这是另一个话题。
% = n x n的矩阵
% B = n x n矩阵
% Q是* X + X”* B的矩阵
%求出X
麦克斯特= 10000;如果需要增加%
x = lsqr (@ (x,国旗)Lyap (x,国旗,A, B)、问(:),1 e-6,麦克斯特);
深圳=大小(A);
X =重塑(X, sz);
%检查剩余
规范(* X + X”* B-Q,“摇来摇去”)/规范(Q,“摇来摇去”)
%
函数y = Lyap (x,国旗,A, B)
n =√长度(x));
深圳= (n, n);
X =重塑(X, sz);
如果比较字符串(国旗,“notransp”)
Q = * + X”* B;
elseif比较字符串(国旗,“透明”)
Q =“* X + B * X”;
结束
y = Q (:);
结束
我相信不再是线性方程对于复杂的情况。