C# 如何用迭代法求Moore-Penrose广义逆
通过ilnumerics可以得到矩阵a的Moore-Penrose广义逆吗?那么pinv在ilnumerics中是什么意思呢?pinv表示矩阵的逆矩阵?是的,使用ILNumerics是可能的 下面是一个示例:C# 如何用迭代法求Moore-Penrose广义逆,c#,ilnumerics,C#,Ilnumerics,通过ilnumerics可以得到矩阵a的Moore-Penrose广义逆吗?那么pinv在ilnumerics中是什么意思呢?pinv表示矩阵的逆矩阵?是的,使用ILNumerics是可能的 下面是一个示例: // Matrix A ILArray<double> A = new double[,] { { 1, 2 }, { 3, 4 } }; // The Moore-Penrose pseudoinverse ILArray<double> Ainv = pinv
// Matrix A
ILArray<double> A = new double[,] { { 1, 2 }, { 3, 4 } };
// The Moore-Penrose pseudoinverse
ILArray<double> Ainv = pinv(A);
// Check for: A * A^-1 = I
ILArray<double> AtimesAinv = multiply(A, Ainv);
// difference of I = eye(2,2) - the inverse
ILArray<double> diff = eye(2, 2) - AtimesAinv;
// max norm of the difference
double normalized = (double)norm(diff)[0];
// Arbitrary epsilon to make the comparison
double epsilon = 1e-10;
Assert.AreEqual(true, normalized <= epsilon);
//矩阵A
ILArray A=新的双[,]{{1,2},{3,4};
//摩尔-彭罗斯伪逆
ILArray Ainv=pinv(A);
//检查:A*A^-1=I
ILArray ATIMESAV=乘法(A,Ainv);
//I的差=眼睛(2,2)-相反
ILArray diff=眼睛(2,2)-AtimesAinv;
//差分的最大范数
双重标准化=(双重)范数(差异)[0];
//任意ε进行比较
双ε=1e-10;
Assert.AreEqual(true,规范化