(以下是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