【应用C】C语言实现行列式与矩阵的运算系统(+源代码)
文章目录
- 01 - 行列式和矩阵
- 1.1 - 行列式定义
- 1.2 - 矩阵定义
- 02 - 基本运算
- 2.1 - 行列式基本运算
- 2.2 - 矩阵基本运算
- 03 - 数据结构
- 04 - 结果测试
- 4.1 - 菜单
- 4.2 - 行列式
- 4.3 - 矩阵
- 05 - 源码下载
- 06 - 总结
很久之前的课程小组作业,实际用处不大,因为有Matlab的存在,虽然现在已经不提倡从轮子造起,但是从轮子开始了解是必须的,记录
01 - 行列式和矩阵
1.1 - 行列式定义
行列式是一个数值,表现为有n2个数,排成n行n列的数表
D=∥123456789∥D= \left\| \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right\| D=∥∥∥∥∥∥147258369∥∥∥∥∥∥
n个取自不同行不同列的n个元素乘积的代数和称为行列式
∑(−1)ta1p1a2p2⋯anpn\sum {(-1)^t}{a_{1p_1}}{a_{2p_2}}{\cdots}{a_{np_n}} ∑(−1)ta1p1a2p2⋯anpn
1.2 - 矩阵定义
矩阵是一个数表,表现为有m×n{m}\times{n}m×n个数aij{a_{ij}}aij(i=1,2,⋯,m;j=1,2,⋯,ni=1,2,{\cdots},m;j=1,2,{\cdots},ni=1,2,⋯,m;j=1,2,⋯,n)排成mmm行nnn列,矩阵是一个整体,总是加一个括弧表示
A={123456789}A= \left\{ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right\} A=⎩⎨⎧147258369⎭⎬⎫
02 - 基本运算
不像Matlab这么强大,C语言只实现基本功能就可以,因为再复杂的运算都由基本功能组成
2.1 - 行列式基本运算
1、行列式的值
2、转置行列式
3、行列式中第i行(列)乘以k
4、互换行列式的两行 (列)
5、行列式化为上三角
6、第(i,j)元的代数余子式
7、第j行(列)乘以k后,加到第i行(列)上
8、检查行列式D是否能拆分成D1+D2(行/列)
2.2 - 矩阵基本运算
1、逆矩阵
2、转置矩阵
3、矩阵的秩
4、两个矩阵相乘
5、两个矩阵相加
6、交换矩阵的两行
7、矩阵的某行乘以k
8、常数k与矩阵相乘
9、矩阵化为行阶梯型
10、矩阵化为行最简型
11、矩阵对应的行列式的值
12、矩阵的第i行乘以k,加到第j行
03 - 数据结构
抽象出行列式和矩阵的相似点,构建以下结构体
typedef struct DetOrMar
{//通用NuDe con[Defaul_size][Defaul_size]; char type; //m-矩阵,d-行列式int row; //行数 int col; //列数 //行列式相关int value; //行列式的值int Aij_value; //代数余子式的值
}DorM;
NuDe其实是一个分子分母分开存放的结构体(不知道为什么当初用这个英文,这是躶体的意思,看到结构体后就知道,原来是分子/分母英文缩写的组合nude,奇葩),分子分母分开存放的原因是防止精度丢失,能使用整数运算就不要使用浮点数
typedef struct Elem
{int deno; //分母 int nume; //分子
}NuDe;
04 - 结果测试
4.1 - 菜单
数据导入
类型选择
行列式运算
矩阵运算
4.2 - 行列式
D=∥1234234134124123∥D= \left\| \begin{matrix} 1 & 2 & 3 & 4\\ 2 & 3 & 4 & 1 \\ 3 & 4 & 1 & 2 \\ 4 & 1 & 2 & 3 \end{matrix} \right\| D=∥∥∥∥∥∥∥∥1234234134124123∥∥∥∥∥∥∥∥
4.3 - 矩阵
A={41−222131−1}A= \left\{ \begin{matrix} 4 & 1 & -2 \\ 2 & 2 & 1 \\ 3 & 1 & -1 \end{matrix} \right\} A=⎩⎨⎧423121−21−1⎭⎬⎫
05 - 源码下载
小组课程作业,链接:百度网盘 提取码:xt1m
06 - 总结
- 实现了行列式和矩阵的基本运算
- 输入比较麻烦,可以改一下文件读入的扫描方式
- 细节有问题,存在内存泄露的问题
【应用C】C语言实现行列式与矩阵的运算系统(+源代码)相关推荐
- C语言计算行列式以及代数余子式的函数
C语言计算行列式以及代数余子式的函数 #include<stdio.h> #define N 50 double algebraic_cofactor(double P[N][N],int ...
- R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix)、R语言多分类混淆矩阵可视化
R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix).R语言多分类混淆矩阵可视化 目录
- r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组
从零开始学R语言Day4|向量.矩阵和数组 1.1向量 1.1.1向量 在Day2中我们提及过用和c()函数来构建向量,具体实例如下. 我们还可以采用vector("类型",长度) ...
- 2020年李永乐线性代数强化笔记-行列式与矩阵
2020年李永乐线性代数强化笔记-行列式与矩阵 写在前面:矩阵的秩的知识 在向量那章讲解 若需要,请移步:2020年李永乐线性代数强化笔记-向量 文章目录 1 行列式 2 矩阵 1 行列式 2 矩阵 ...
- 李永乐线性代数手写笔记-行列式与矩阵
李永乐线性代数基础知识,整理放在博客上面,方便自己复习查看. 概览请移步李永乐线性代数2020年基础课手写笔记汇总 文章目录 一 行列式 二 矩阵 一 行列式 二 矩阵
- c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...
急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和 來源:互聯網 2010-02-24 23:29:06 評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 ...
- c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解
C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...
- 矩阵迹的性质_矩阵(含逆)的迹、行列式关于矩阵自身的导数计算与Maple验证...
常见神经网络在计算相邻层权重关系式时,矩阵对矩阵求导所涉及的维度拼接操作对理论萌新往往不太友好:对于数据型为矩阵的最小二乘问题,尽管迹对矩阵求导操作十分实用但很多人仍习惯于逐项计算偏导.本文避开&qu ...
- 常用的行列式和矩阵的性质
常用的行列式和矩阵的性质
最新文章
- Format函数用法
- 征战蓝桥 —— 2018年第九届 —— C/C++B组第3题——乘积尾零
- gibmacos 网络加速_黑苹果教程续集,利用EFI在线安装MacOS
- 以DES的方式实现对称加密,并提供密钥
- java反射 数组类型_Java反射-数组
- Coding Interview Guide -- 翻转字符串
- html如何将文字生成图片,文字转图片工具,文字图片生成器,把几句话做陈图片
- 【火灾疏散建模】基于MATLAB的火灾人员疏散建模编程和仿真分析
- Android蓝牙自动配对和Pin码设置
- 颜值大比拼,用数据告诉你中国哪里美女多?
- 英威腾伺服驱动器故障代码_英威腾伺服驱动器维修
- win10计算机管理看不见蓝牙,Win10设备管理器找不到蓝牙设备的解决方案
- Docker从入门到干活,看这一篇够了!
- debain系统安装nginx
- 安卓系统应用程序开发!灵魂一问-如何彻底防止APK反编译?大厂面试题汇总
- 浙大数据结构课后习题 练习一 7-1 Maximum Subsequence Sum (25 分)
- 【Windows10下.sh文件的运行】‘bash’ is not recognized as an internal or external command
- 什么是时间戳?Vue 转换时间戳
- python学习笔记——小插曲
- 20 WebGL使用纹理贴图