MATLAB 无法求出左特征值的一个解决方案

文章讨论了在MATLAB中遇到无法直接求得矩阵左特征值的情况。作者提供了一个曲线救国的方法,通过计算矩阵转置的特征向量来获取原矩阵的左特征向量。具体做法是先计算A的转置A的特征向量,然后这些向量即为A的左特征向量。这种方法在处理特定形式的矩阵时可能更为有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般来说,我们可以使用下面的代码来求矩阵的特征值和特征向量

A = magic(3);
[V,D,W] = eig(A)

在这里插入图片描述

但是我最近遇到了无法求左特征值的情况

clc,clear,close all
syms rho1 rho2 rho c1 c2 u
A = [rho2/(rho1+rho2)*u -rho1/(rho1+rho2)*u rho1/(rho1+rho2)
    -rho2/(rho1+rho2)*u rho1/(rho1+rho2)*u rho2/(rho1+rho2)
    c1^2-u^2 c2^2-u^2 2*u];
[V,D,W] = eig(A);
V = simplify(V)
D
W

在这里插入图片描述
求出的特征值居然是 [1,2,3],这显然是不对的。

对于这种情况,我采用了曲线救国的策略。众所周知:矩阵 A A A的右特征向量是 A T A^T AT的左特征向量。

所以我们可以求 A T A^T AT 的右特征向量,从而得到 A A A 的左特征向量。

clc,clear,close all
syms rho1 rho2 rho c1 c2 u
A = [rho2/(rho1+rho2)*u -rho1/(rho1+rho2)*u rho1/(rho1+rho2)
    -rho2/(rho1+rho2)*u rho1/(rho1+rho2)*u rho2/(rho1+rho2)
    c1^2-u^2 c2^2-u^2 2*u];
[V,D] = eig(A.');
V = simplify(V)

在这里插入图片描述
矩阵 V V V 中的每一列都是矩阵 A A A 的一个左特征向量


2023年3月1日11点02分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值