标签:
概述:本教程为您介绍.Net唯一的数学与统计学运算库NMath,实现矩阵分解的两种方法。
Nmath中包括用于构造和操作矩阵QR和奇异值分解的分解类。QR分解如下表示:
1
|
AP=QR
|
其中P是一个可置换矩阵,Q是正交的,且R为上梯形。矩阵A的奇异值分解(SVD)的形式表示为:
1
|
A=USV*
|
其中U和V是正交的,S是对角的,和V *表示一个真正的矩阵V或一个复杂的矩阵V的条目沿对角线S的共轭转置的奇异值。
接下来带来一个矩阵分解类的实例,下面代码示例为从FloatMatrix创建FloatQRDecomp这个分解类:
1
2
3
|
FloatMatrix A =
new
FloatMatrix(
"5x3 [ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 ]"
);
FloatQRDecomp qr =
new
FloatQRDecomp( A );
|
还有一种比较复杂的分解类的实例代码为:
1
2
3
4
5
6
7
|
DoubleComplexQRDecompServer qrs =
new
DoubleComplexQRDecompServer();
qrs.Pivoting =
false
;
int
rows = 10, cols = 3;
DoubleComplexMatrix A =
new
DoubleComplexMatrix( rows, cols,
new
RandGenUniform( -1, 1 ) );
DoubleComplexQRDecomp qr = qrs.GetDecomp( A );
|
标签:
原文地址:http://my.oschina.net/u/2003526/blog/379195