当前位置:
首页 > Python基础教程 >
-
C#教程之C#求逆矩阵
采用单位矩阵行列式变换求逆矩阵,源码展示:
public static double[,] Inverse(double [,] Array) { int m = 0; int n = 0; m = Array.GetLength(0); n = Array.GetLength(1); double[,] array = new double[2*m+1, 2*n+1]; for (int k = 0; k < 2*m+1; k++) //初始化数组 { for (int t = 0; t < 2*n+1; t++) { array[k, t] = 0.00000000; } } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { array[i, j] = Array[i, j]; } } for (int k = 0; k < m; k++) { for (int t = n; t <= 2*n; t++) { if ((t - k) == m) { array[k, t] = 1.0; } else { array[k, t] = 0; } } } //得到逆矩阵 for (int k = 0; k < m; k++) { if (array[k, k] != 1) { double bs = array[k, k]; array[k, k] = 1; for (int p = k + 1; p < 2*n; p++) { array[k, p] /= bs; } } for (int q = 0; q < m; q++) { if (q != k) { double bs = array[q, k]; for (int p = 0; p < 2*n; p++) { array[q, p] -= bs * array[k, p]; } } else { continue; } } } double [,] NI = new double[m, n]; for (int x = 0; x < m; x++) { for (int y = n; y < 2*n; y++) { NI[x, y - n] = array[x, y]; } } return NI; }
测试代码:
static void Main(string[] args) { double[,] a = new double[3, 3] { { 1, 2, 3 }, { 2, 2, 1 }, { 3, 4, 3 } };//测试数组 double [,] dReturn = Inverse(a); for (int i = 0; i < a.GetLength(0);i++ ) { for (int j = 0; j < a.GetLength(1); j++) { Console.Write(dReturn[i,j]+ "\t "); } Console.WriteLine(); } Console.ReadKey(); }
测试结果展示:
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式