gpt4 book ai didi

matlab - MATLAB 中矩阵指数的 W * diag(S) * W' 形式的矩阵的特征分解

转载 作者:行者123 更新时间:2023-12-02 17:54:12 27 4
gpt4 key购买 nike

W 是一个又高又瘦的实值矩阵,diag(S) 是一个由 +1 组成的对角矩阵>-1 在对角线上。我想要 A = W * diag(S) * W' 的特征分解,其中单引号表示转置。主要问题是 A 太大了。由于 A 是对称的,秩不足,而且我实际上知道 A 的最大秩(来自 W),我认为我应该能够有效地做到这一点。知道如何解决这个问题吗?

我的最终目标是在不使用 MATLAB 的 expm 的情况下计算 A 的矩阵指数,这对于大矩阵来说非常慢,并且没有利用秩缺陷。如果A = U * diag(Z) * U'是特征分解,则exp(A) = U * diag(exp(Z)) * U'

虽然找到一个正交的 U 使得 W * diag(S) * W' = U' * diag(Z) * U' 看起来很有希望有一个简单的算法,我在这里需要一些线性代数帮助。

最佳答案

我首先对 W 执行所谓的“薄”QR 分解,然后计算 R*diag(S)*R' 的特征值分解,然后用它来计算 eig 分解A.

N = 10;
n=3;
S = 2*(rand(1,n)>0.5)-1;
W = rand(N,n);

[Q,R] = qr(W,0);
[V,D] = eig(R*diag(S)*R');

%this is the non rank-deficient part of eig(W*diag(S)*W')
D_A = D;
V_A = Q*V;

%compare with
[V_full,D_full] = eig(W*diag(S)*W');

希望这有帮助。

A.

关于matlab - MATLAB 中矩阵指数的 W * diag(S) * W' 形式的矩阵的特征分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com