C语言求矩阵的逆
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h> #define N 10 int getA(int arcs[N][N], int n)//按第一行展开计算|A|
{
if (n == )
{
return arcs[][];
}
int ans = ;
int temp[N][N];
int i, j, k;
for (i = ; i<n; i++)
{
for (j = ; j<n - ; j++)
{
for (k = ; k<n - ; k++)
{
temp[j][k] = arcs[j + ][(k >= i) ? k + : k]; }
}
int t = getA(temp, n - );
if (i % == )
{
ans += arcs[][i] * t;
}
else
{
ans -= arcs[][i] * t;
}
}
return ans;
}
void getAStart(int arcs[N][N], int n, int ans[N][N])//计算每一行每一列的每个元素所对应的余子式,组成A*
{
if (n == )
{
ans[][] = ;
return;
}
int i, j, k, t;
int temp[N][N];
for (i = ; i<n; i++)
{
for (j = ; j<n; j++)
{
for (k = ; k<n - ; k++)
{
for (t = ; t<n - ; t++)
{
temp[k][t] = arcs[k >= i ? k + : k][t >= j ? t + : t];
}
} ans[i][j] = getA(temp, n - );
if ((i + j) % == )
{
ans[i][j] = -ans[i][j];
}
}
}
} int main()
{ int arcs[N][N];
int astar[N][N];
int i, j;
int n;
while (scanf_s("%d", &n) != EOF && n)
{
for (i = ; i<n; i++)
{
for (j = ; j<n; j++)
{
scanf_s("%d", &arcs[i][j]);
}
}
int a = getA(arcs, n);
if (a == )
{
printf("can not transform!\n");
}
else
{
getAStart(arcs, n, astar);
for (i = ; i<n; i++)
{
for (j = ; j<n; j++)
{
printf("%.3lf ", (double)astar[i][j] / a);
}
printf("\n");
}
}
printf("\n"); }
system("pause");
return ;
}
C语言求矩阵的逆的更多相关文章
- 【BZOJ3168】[Heoi2013]钙铁锌硒维生素 高斯消元求矩阵的逆+匈牙利算法
[BZOJ3168][Heoi2013]钙铁锌硒维生素 Description 银河队选手名单出来了!小林,作为特聘的营养师,将负责银河队选手参加宇宙比赛的饮食.众所周知,前往宇宙的某个星球,通常要花 ...
- gemm() 与 gesvd() 到矩阵求逆(inverse)(根据 SVD 分解和矩阵乘法求矩阵的逆)
可逆方阵 A 的逆记为,A−1,需满足 AA−1=I. 在 BLAS 的各种实现中,一般都不会直接给出 matrix inverse 的直接实现,其实矩阵(方阵)的逆是可以通过 gemm()和gesv ...
- C语言 · 求矩阵各个元素的和
问题描述 这里写问题描述. 输入格式 测试数据的输入一定会满足的格式. 例:输入的第一行包含两个整数n, m,分别表示矩阵的行数和列数.接下来n行,每行m个正整数,表示输入的矩阵. 输出格式 要求用户 ...
- java语言编写矩阵的四则运算
题目要求如下: 设计程序实现矩阵的四则运算 设计要求: (1) 实现矩阵的四则运算. (2) 考虑实现带变元的矩阵计算. (3)考虑实现矩阵的特征值和特征向量的计算. 我使用java语言写的 目录结构 ...
- c语言求回文数的三种算法的描述
c语言求回文数的三种算法的描述 题目描述 注意:(这些回文数都没有前导0) 1位的回文数有0,1,2,3,4,5,6,7,8,9 共10个: 2位的回文数有11,22,33,44,55,66,77,8 ...
- c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode
#include <stdio.h> #include <math.h> #include <string.h> char explode( char * str ...
- 说说用C语言求根的那些事儿
C语言--求根:计算机只识别0和1,那么问题来了,作为计算工具如何解决数学问题?其实,计算机是死东西,都是程序员用计算机的的思维去加数学公式计算数学题的.听起来好高端的样子,其实啊,也就那么回事儿, ...
- POJ 1151 Atlantis(经典的线段树扫描线,求矩阵面积并)
求矩阵的面积并 采用的是区间更新 #include <iostream> #include <stdio.h> #include <string.h> #inclu ...
- HDU 1828 / POJ 1177 Picture (线段树扫描线,求矩阵并的周长,经典题)
做这道题之前,建议先做POJ 1151 Atlantis,经典的扫描线求矩阵的面积并 参考连接: http://www.cnblogs.com/scau20110726/archive/2013/0 ...
随机推荐
- 【BZOJ2301】Problem B
Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...
- Learning-Python【20】:Python常用模块(3)—— shelve、pickle、json、xml、configparser
什么是序列化/反序列化? 序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输,反序列化就是硬盘中或者网络中传来的一种数据格式转换成内存中数据结构 为什么要有序列化/反序列化? 1 ...
- Js — CommonUtil
一些js脚本的公用方法: 1:字符串根据给定的每行长度换行 2:比较两个时间的大小3:计算两个日期间相差的天数 1.字符串根据给定的每行长度换行 /** *words:原始字符串 *avg:每行字数 ...
- 【Mac】【环境变量】
Mac配置环境变量的地方 1./etc/profile (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户,登录时都会读取该文件. 2./etc/bashrc (一般在这个 ...
- 巧用同步请求处理react页面刷新问题
很多时候,我们会遇到这种情况,组件加载需要请求后台数据,然后填充组件.那么我们一般会这样处理:如[使用异步请求的方式]代码: 加载组价的时候,未获得数据,render一个空的div: 然后异步请求数据 ...
- LeetCode--025--k个一组翻转链表(java)
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这个链表: ...
- Python — 字典dict 和 集合set
字典dict : dict和set的key都是不可变对象 对于不变对象来说,调用对象自身的任意方法,也不会改变对象自身的内容.相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可 ...
- 『Python CoolBook』Cython_高效数组操作
数组运算加速是至关科学计算重要的领域,本节我们以一个简单函数为例,使用C语言为python数组加速. 一.Cython 本函数为一维数组修剪最大最小值 version1 @cython.boundsc ...
- 『流畅的Python』第15章:上下文管理器和else块
- 精确率、准确率、召回率和F1值
当我们训练一个分类模型,总要有一些指标来衡量这个模型的优劣.一般可以用如题的指标来对预测数据做评估,同时对模型进行评估. 首先先理解一下混淆矩阵,混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用 ...