模板-->求逆矩阵(利用初等变换求解)
如果有相应的OJ题目,欢迎同学们提供相应的链接
相关链接
简单的测试
INPUT:
3
2 1 0
1 2 1
1 1 1
OUTPUT:
0.5 -0.5 0.5
0 1 -1
-0.5 -0.5 1.5
代码模板
inline vector<double> operator *(vector<double> a,double b){
int N=a.size();
vector<double> res(N,0);
for(int i=0;i<N;i++)
res[i]=a[i]*b;
return res;
}
inline vector<double> operator -(vector<double> a,vector<double> b){
int N=a.size();
vector<double> res(N,0);
for(int i=0;i<N;i++)
res[i]=a[i]-b[i];
return res;
}
/*
* AB=BA=I,B is the inverse of matrix A.
* SO,AB=I,A->I,I->C,thus IB=C,IB=B=C.
*
* TIME COMPLEXITY:O(n^3)
* PARAMS:
* A Raw matrix.
* C Inverse of raw matrix.
* N order.
*/
inline void inverse_matrix(vector<double> A[],vector<double> C[],int N){
for(int i=0;i<N;i++)
C[i]=vector<double>(N,0);
for(int i=0;i<N;i++)
C[i][i]=1;
for(int i=0;i<N;i++){
for(int j=i;j<N;j++)
if(fabs(A[i][j])>0){
swap(A[i],A[j]);
swap(C[i],C[j]);
break;
}
C[i]=C[i]*(1/A[i][i]);
A[i]=A[i]*(1/A[i][i]);
for(int j=0;j<N;j++)
if(j!=i && fabs(A[j][i])>0){
C[j]=C[j]-C[i]*A[j][i];
A[j]=A[j]-A[i]*A[j][i];
}
}
}
模板-->求逆矩阵(利用初等变换求解)的更多相关文章
- YTU 2642: 填空题:类模板---求数组的最大值
2642: 填空题:类模板---求数组的最大值 时间限制: 1 Sec 内存限制: 128 MB 提交: 646 解决: 446 题目描述 类模板---求数组的最大值 找出一个数组中的元 ...
- 利用python求解物理学中的双弹簧质能系统详解
利用python求解物理学中的双弹簧质能系统详解 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的 ...
- (模板)求逆矩阵luoguP4783
题目链接:https://www.luogu.org/problem/P4783 题意:求矩阵的逆. 思路:高斯消元法求矩阵的逆,n为400,卡常,我是开了O2优化才AC的.. AC代码: #incl ...
- matlab中求逆矩阵的高斯消元法实现的代码
function qiuni =INV_GET(a)N=length(a);M=eye(N);%得到上三角矩?for i=1:N max=a(i,i); A=i; for j=i+1:N if(abs ...
- 4-EM算法原理及利用EM求解GMM参数过程
1.极大似然估计 原理:假设在一个罐子中放着许多白球和黑球,并假定已经知道两种球的数目之比为1:3但是不知道那种颜色的球多.如果用放回抽样方法从罐中取5个球,观察结果为:黑.白.黑.黑.黑,估计取到黑 ...
- 二分求幂,快速求解a的b次幂
一个引子 如何求得a的b次幂呢,那还不简单,一个for循环就可以实现! void main(void) { int a, b; ; cin >> a >> b; ; i < ...
- 在Python中利用CVXOPT求解二次规划问题
工作中需要用到cvxopt,cvxopt安装有坑,大家注意下.1.首先一定要卸载numpy,无论是直接安装的,还是anaconda安装的,主要是必须用whl安装numpy才不会有包的冲突2.二次规划包 ...
- python利用kruskal求解最短路径的问题
python利用kruskal算法求解最短路径的问题,修改参数后可以直接使用 def kruskal(): """ kruskal 算法 ""&quo ...
- AtCoder Beginner Contest 142【D题】【判断素数的模板+求一个数的因子的模板】
D - Disjoint Set of Common Divisors Problem Statement Given are positive integers AA and BB. Let us ...
随机推荐
- 应用mysql(Linux中安装)
当前 mysql 官网的安装教程,指明可以使用 yum 方式. 若在Ubuntu中安装,参考“Linux(Ubuntu)下MySQL的安装与配置”. MySQL YUM Repository MySQ ...
- SequoiaDB 架构指南
1 简介 SequoiaDB(巨杉数据库)是一款分布式非关系型文档数据库,可以被用来存取海量非关系型的数据,其底层主要基于分布式,高可用,高性能与动态数据类型设计,与当前主流分布式计算框架 Hadoo ...
- Frequent values
poj3368:http://poj.org/problem?id=3368 题意:给你一个非下降的序列,然后查询[l,r]内出现最多数字的次数. 题解:首先,因为序列是非下降的,所以相同的数字出现在 ...
- HAPROXY实习
没事玩玩,简单搞定. 同一个URL可以分发到后端不同的WEB上. STATS页画也刷出来了. 参考网址: http://www.cnblogs.com/kgdxpr/p/3272861.html 如果 ...
- Java实现Qt的SIGNAL-SLOT机制
SIGNAL-SLOT是Qt的一大特色,使用起来十分方便.在传统的AWT和Swing编程中,我们都是为要在 监听的对象上添加Listener监听器.被监听对象中保存有Listener的列表,当相关事件 ...
- (转载)php 合并数组中的数据,如果键值相等其值相加
(转载)http://hi.baidu.com/syxrrrr/item/7dfb2387343ce0874414cfdd /* * 合并数据,如果键值相等其值相加 * @param array $d ...
- 扩展KMP模板
注意:需要用特殊符号隔开 1 struct ExKmp{ void Init(){ memset(f,,sizeof(f)); memset(r,,sizeof(r)); } void Get_Fai ...
- FFT(快速傅立叶变换):HDU 1402 A * B Problem Plus
Calculate A * B. Input Each line will contain two integers A and B. Process to end of file. Note: th ...
- N-Queens II——Leetcode
Follow up for N-Queens problem. Now, instead outputting board configurations, return the total numbe ...
- osg配置
编辑器加载中..OSG+VS2010+win7环境搭建 Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接 ...