C#矩阵运算类库
这个类库是本人参考许多相关资料之后做出的C#矩阵运算类库,因为C#的数值计算库相对比较少,所以希望这个类库能够给大家带来一些帮助。
源码github网址:https://github.com/JoshuaHe2015/MatrixLibrary
功能介绍:(持续更新中)
1、矩阵的基本运算:
矩阵的加、减、乘、除、求逆、求幂、求秩、求行列式、转置。运算包括矩阵与矩阵的运算,矩阵与向量的运算和矩阵与标量的运算。
using System;
using LinearAlgebra;
namespace MatrixLibraryTest
{
class Program
{
static void Main(string[] args)
{
Matrix A = Matrix.Create(, , new double[] { , , , });
Matrix B = new double[,] {
{ , },
{ , } };
Matrix C = A + B;
Matrix D = A * ;
Matrix E = A * B;
Matrix F = E.Inverse();
Console.WriteLine(C);
Console.WriteLine(D);
Console.WriteLine(E);
Console.WriteLine(F);
Console.ReadKey();
}
}
}
2、矩阵分解:
LU分解、QR分解
using System;
using LinearAlgebra;
namespace MatrixLibraryTest
{
class Program
{
static void Main(string[] args)
{
Matrix A = new double[,]
{
{,, },
{,, },
{,, }
};
var lu = A.LU();
Console.WriteLine(lu.L);
Console.WriteLine(lu.U);
Matrix B = new double[,]
{
{,,- },
{,, },
{,-, },
{-,, }
};
var qr = B.QR();
Console.WriteLine(qr.Q);
Console.WriteLine(qr.R);
Console.ReadKey();
}
}
}
3、IO操作:
支持从文本文件中读取矩阵、将矩阵写入文本文件
using System;
using LinearAlgebra;
namespace MatrixLibraryTest
{
class Program
{
static void Main(string[] args)
{
Matrix A = Matrix.Load("D:\\mat_A.txt");
Console.WriteLine(A);
Matrix B = Matrix.Random(, );
B.Save("D:\\mat_B");
Console.ReadKey();
}
}
}
4、特殊运算:
求Hessen Berg矩阵,求解矩阵特征值
5、线性方程组的求解:
高斯消元法求解线性方程组、QR分解求最小二乘解、共轭梯度法求对称正定方程组6、特殊矩阵:
生成零矩阵、一矩阵、单位矩阵
7、提取矩阵子集:
可以提取矩阵的行、列或对角
8、其他:
支持复数运算与向量运算
参考文献:
1、数值分析(第5版)/李庆扬 著/清华大学出版社
2、C#数值计算算法编程/周长发 著/电子工业出版社
C#矩阵运算类库的更多相关文章
- 【原创】开源Math.NET基础数学类库使用(02)矩阵向量计算
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- 开源Math.NET基础数学类库使用(02)矩阵向量计算
原文:[原创]开源Math.NET基础数学类库使用(02)矩阵向量计算 开源Math.NET基础数学类库使用系列文章总目录: 1.开源.NET基础数学计算组件Math.NET(一)综合介绍 ...
- Eigen库矩阵运算使用方法
Eigen库矩阵运算使用方法 Eigen这个类库,存的东西好多的,来看一下主要的几个头文件吧: ——Core 有关矩阵和数组的类,有基本的线性代数(包含 三角形 和 自伴乘积 相关),还有相应对数组的 ...
- Matlab高级教程_第二篇:MATLAB和C#对应数据类型的讲解(多讲一点儿C#的矩阵运算)
1. MATLAB对应C#的数据类型主要在引入的父类库MWArray当中.有如下对应规则 .NET TYPE MWArrayTYPE MATLAB Type System.Double MWNumer ...
- .NET Core 系列5 :使用 Nuget打包类库
NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...
- Xamarin+Prism开发详解一:PCL跨平台类库与Profile的关系
在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]中提到过以下错误,不知道大伙还记得不: 无法安装程序包"Microsoft.Identity.Client 1.0. ...
- C#创建dll类库
类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它.这样一来,就节省了我们的内存空间.而想要在类库添加什么类,还需取决于类库要实现哪 ...
- .Net Core上用于代替System.Drawing的类库
目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径. 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各 ...
- 拥抱.NET Core,如何开发一个跨平台类库 (1)
在此前的文章中详细介绍了使用.NET Core的基本知识,如果还没有看,可以先去了解“拥抱.NET Core,学习.NET Core的基础知识补遗”,以便接下来的阅读. 在本文将介绍如何配置类库项目支 ...
随机推荐
- libev学习(一)
一.libev简介 Libev是一个事件循环:你注册感兴趣的特定事件(比如一个文件可以读取时或者发生超时时),它将管理这些事件源,将这些事件反馈给你的程序.为了实现这些,至少要在你的进程(或线程)中执 ...
- iredmail安装脚本分析(二)---get_all.sh 文件所在目录为PKGS
经过上面的一系列分析后,进入到获取安装包的步骤,作者在此处单独写了一个脚本,get_all.sh,我们继续分析这个脚本 _ROOTDIR="$(pwd)" CONF_DIR=&qu ...
- NSUserDefaults
一.了解NSUserDefaults以及它可以直接存储的类型二.使用 NSUserDefaults 存储自定义对象1.将自定义类型转换为NSData类型2.将自定义类型数据存入 NSUserDefau ...
- Entity Framework search sequnce
sql express, then (LocalDb)\v11.0 (LocalDb)\mssqllocaldb sqllocaldb i could list all the local db i ...
- 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN
offload 现在,越来越多的网卡设备支持 offload 特性,来提升网络收/发性能.offload 是将本来该操作系统进行的一些数据包处理(如分片.重组等)放到网卡硬件中去做,降低系统 CPU ...
- sublime Text3 编写java
安装好jdk,并且配置好环境变量后(也可以放到sublime 中去配置) 2.一般的sublimetext 已经有了javac的buildsystem, 不过默认的配置不尽人意. 下面进行修改. 在S ...
- Repeater 根据某一列的值加颜色
//排队中 protected void rptOrdersList_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterIt ...
- React(JSX语法)----动态UI
1.React honws how to bubble and capture events according to the spec,and events passed to your event ...
- Scrolliview
package com.example.scrollview; import android.os.Bundle;import android.app.Activity;import android. ...
- 打造IE6的position:fixed整理篇
fixed真的是一个很好的属性.特别是做弹层的时候.可惜的是“国内主流浏览器”IE6大大不支持. 一般的我们都会通过CSS中的表达式来解决这个问题. .fixed { position:absolut ...