MATLAB专门开发了针对稀疏矩阵的算法,因此对于稀疏矩阵的运算速度也变得非常快。下面比较采用稀疏矩阵求解与采用满秩矩阵求解的运算速度:
在命令窗口中输入下面的命令行,用稀疏矩阵进行求解。
code.matlab
>> n=1500;
>> e = ones(n,1);
>> A = spdiags([e -2*e e], -1:1, n, n);
>> B=ones(n,1);
>> tic; %开始计时
>> x=A\B;
>> t1=toc %终止计时
t1 = %运算时间
1.7720
接上例在命令窗口中输入下面的命令行,用满秩矩阵进行求解。
code.matlab
>> C=full(A);
>> tic; %开始计时
>> x=B\C;
>> t2=toc %终止计时
t2 = %运算时间
41.6800
由以上结果可见,采用稀疏矩阵求解的运算速度比采用满秩矩阵求解的运算速度快很多。