C#矩阵运算类库

这个类库是本人参考许多相关资料之后做出的C#矩阵运算类库,因为C#的数值计算库相对比较少,所以希望这个类库能够给大家带来一些帮助。

源码github网址:https://github.com/JoshuaHe2015/MatrixLibrary

功能介绍:(持续更新中)

1、矩阵的基本运算:

  矩阵的加、减、乘、除、求逆、求幂、求秩、求行列式、转置。运算包括矩阵与矩阵的运算,矩阵与向量的运算和矩阵与标量的运算。

 1 using System;
 2 using LinearAlgebra;
 3 namespace MatrixLibraryTest
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Matrix A = Matrix.Create(2, 2, new double[] { 1, 2, 3, 4 });
10             Matrix B = new double[,] {
11                 { 5, 6 },
12                 { 7, 8 } };
13             Matrix C = A + B;
14             Matrix D = A * 2;
15             Matrix E = A * B;
16             Matrix F = E.Inverse();
17             Console.WriteLine(C);
18             Console.WriteLine(D);
19             Console.WriteLine(E);
20             Console.WriteLine(F);
21             Console.ReadKey();
22         }
23     }
24 }

 

2、矩阵分解:

  LU分解、QR分解

 1 using System;
 2 using LinearAlgebra;
 3 namespace MatrixLibraryTest
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Matrix A = new double[,]
10             {
11               {1,2,3 },
12               {2,5,2 },
13               {3,1,5 }
14             };
15             var lu = A.LU();
16             Console.WriteLine(lu.L);
17             Console.WriteLine(lu.U);
18             Matrix B = new double[,]
19             {
20                 {1,1,-1 },
21                 {2,1,0 },
22                 {1,-1,0 },
23                 {-1,2,1 }
24             };
25             var qr = B.QR();
26             Console.WriteLine(qr.Q);
27             Console.WriteLine(qr.R);
28             Console.ReadKey();
29         }
30     }
31 }

 

3、IO操作:

  支持从文本文件中读取矩阵、将矩阵写入文本文件

 1 using System;
 2 using LinearAlgebra;
 3 namespace MatrixLibraryTest
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Matrix A = Matrix.Load("D:\\mat_A.txt");
10             Console.WriteLine(A);
11             Matrix B = Matrix.Random(3, 3);
12             B.Save("D:\\mat_B");
13             Console.ReadKey();
14         }
15     }
16 }

 

4、特殊运算:

  求Hessen Berg矩阵,求解矩阵特征值

5、线性方程组的求解:

  高斯消元法求解线性方程组、QR分解求最小二乘解、共轭梯度法求对称正定方程组6、特殊矩阵:

  生成零矩阵、一矩阵、单位矩阵

7、提取矩阵子集:

  可以提取矩阵的行、列或对角

8、其他:

  支持复数运算与向量运算

 

参考文献:

  1、数值分析(第5版)/李庆扬 著/清华大学出版社

  2、C#数值计算算法编程/周长发 著/电子工业出版社

 

转载于:https://www.cnblogs.com/HeYanjie/p/5707283.html

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值