MATLAB1:对任意一个常数矩阵,求其所有实可交换矩阵的MATLAB算法

这是一个关于MATLAB算法的博客,作者分享了如何找到任意常数矩阵的所有实可交换矩阵。尽管算法效率有待提高,但作者认为其结果具有美感。该内容源于作者的期末作业,未包含数学证明。作者希望获得读者的点赞和支持,以继续在CSDN发布更多作品。
摘要由CSDN通过智能技术生成

(以下是matlab算法,我觉得这个算法的结果我觉得还是比较有美感的,但是中间有点效率不行,但我没时间改进,希望大家能指点一下。这是我的期末作业。虽然我也觉得这算法没多大用,但我还是先公开发布一波吧。数学证明不难,我也就不发布了。大家要的话可以私信我)
举个例子:

>> A=[0 1 0 0 0 0 0;0 0 1 0 0 0 0;0 0 0 1 0 0 0 ;0 0 0 0 1 0 0;0 0 0 0 0 1 0;0 0 0 0 0 0 1;0 0 0 0 0 0 0];
>> commat(A)
时间已过 18.127244 秒。
ans =
[ x7_7, x6_7, x5_7, x4_7, x3_7, x2_7, x1_7]
[    0, x7_7, x6_7, x5_7, x4_7, x3_7, x2_7]
[    0,    0, x7_7, x6_7, x5_7, x4_7, x3_7]
[    0,    0,    0, x7_7, x6_7, x5_7, x4_7]
[    0,    0,    0,    0, x7_7, x6_7, x5_7]
[    0,    0,    0,    0,    0, x7_7, x6_7]
[    0,    0,    0,    0,    0,    0, x7_7]
function [ result ] = commat( A )
 tic
 g=1;
 [n,n]=size(A);
X=sym('x',[n,n]) ;
 b=A*X-X*A; 
B= zeros(n^2,n^2);
[r,c] = size(b);    
for i = 1:r       
    for j = 1:c
        b(i
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值