文章目录

  • 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=∥∥∥∥∥∥​147​258​369​∥∥∥∥∥∥​

  n个取自不同行不同列的n个元素乘积的代数和称为行列式
∑(−1)ta1p1a2p2⋯anpn\sum {(-1)^t}{a_{1p_1}}{a_{2p_2}}{\cdots}{a_{np_n}} ∑(−1)ta1p1​​a2p2​​⋯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=⎩⎨⎧​147​258​369​⎭⎬⎫​

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=∥∥∥∥∥∥∥∥​1234​2341​3412​4123​∥∥∥∥∥∥∥∥​

4.3 - 矩阵

A={41−222131−1}A= \left\{ \begin{matrix} 4 & 1 & -2 \\ 2 & 2 & 1 \\ 3 & 1 & -1 \end{matrix} \right\} A=⎩⎨⎧​423​121​−21−1​⎭⎬⎫​

05 - 源码下载

  小组课程作业,链接:百度网盘  提取码:xt1m

06 - 总结

  • 实现了行列式和矩阵的基本运算
  • 输入比较麻烦,可以改一下文件读入的扫描方式
  • 细节有问题,存在内存泄露的问题

【应用C】C语言实现行列式与矩阵的运算系统(+源代码)相关推荐

  1. C语言计算行列式以及代数余子式的函数

    C语言计算行列式以及代数余子式的函数 #include<stdio.h> #define N 50 double algebraic_cofactor(double P[N][N],int ...

  2. R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix)、R语言多分类混淆矩阵可视化

    R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix).R语言多分类混淆矩阵可视化 目录

  3. r语言中矩阵QR分解_从零开始学R语言Day4|向量、矩阵和数组

    从零开始学R语言Day4|向量.矩阵和数组 1.1向量 1.1.1向量 在Day2中我们提及过用和c()函数来构建向量,具体实例如下. 我们还可以采用vector("类型",长度) ...

  4. 2020年李永乐线性代数强化笔记-行列式与矩阵

    2020年李永乐线性代数强化笔记-行列式与矩阵 写在前面:矩阵的秩的知识 在向量那章讲解 若需要,请移步:2020年李永乐线性代数强化笔记-向量 文章目录 1 行列式 2 矩阵 1 行列式 2 矩阵 ...

  5. 李永乐线性代数手写笔记-行列式与矩阵

    李永乐线性代数基础知识,整理放在博客上面,方便自己复习查看. 概览请移步李永乐线性代数2020年基础课手写笔记汇总 文章目录 一 行列式 二 矩阵 一 行列式 二 矩阵

  6. c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...

    急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和 來源:互聯網  2010-02-24 23:29:06  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 ...

  7. c语言编程 输入螺旋数组,C语言 经典题目螺旋矩阵 实例详解

    C语言 经典题目螺旋矩阵 实例详解 C语言 经典题目螺旋矩阵 //N阶螺旋矩阵 #include #include int main() { int N,i,j,n,num=1; int a[10][ ...

  8. 矩阵迹的性质_矩阵(含逆)的迹、行列式关于矩阵自身的导数计算与Maple验证...

    常见神经网络在计算相邻层权重关系式时,矩阵对矩阵求导所涉及的维度拼接操作对理论萌新往往不太友好:对于数据型为矩阵的最小二乘问题,尽管迹对矩阵求导操作十分实用但很多人仍习惯于逐项计算偏导.本文避开&qu ...

  9. 常用的行列式和矩阵的性质

    常用的行列式和矩阵的性质

最新文章

  1. Format函数用法
  2. 征战蓝桥 —— 2018年第九届 —— C/C++B组第3题——乘积尾零
  3. gibmacos 网络加速_黑苹果教程续集,利用EFI在线安装MacOS
  4. 以DES的方式实现对称加密,并提供密钥
  5. java反射 数组类型_Java反射-数组
  6. Coding Interview Guide -- 翻转字符串
  7. html如何将文字生成图片,文字转图片工具,文字图片生成器,把几句话做陈图片
  8. 【火灾疏散建模】基于MATLAB的火灾人员疏散建模编程和仿真分析
  9. Android蓝牙自动配对和Pin码设置
  10. 颜值大比拼,用数据告诉你中国哪里美女多?
  11. 英威腾伺服驱动器故障代码_英威腾伺服驱动器维修
  12. win10计算机管理看不见蓝牙,Win10设备管理器找不到蓝牙设备的解决方案
  13. Docker从入门到干活,看这一篇够了!
  14. debain系统安装nginx
  15. 安卓系统应用程序开发!灵魂一问-如何彻底防止APK反编译?大厂面试题汇总
  16. 浙大数据结构课后习题 练习一 7-1 Maximum Subsequence Sum (25 分)
  17. 【Windows10下.sh文件的运行】‘bash’ is not recognized as an internal or external command
  18. 什么是时间戳?Vue 转换时间戳
  19. python学习笔记——小插曲
  20. 20 WebGL使用纹理贴图

热门文章

  1. 「背叛」激光雷达第三年:百度纯视觉无人驾驶技术迈入产品化阶段
  2. 网线水晶头平行接线和交叉接线的区别
  3. 标准英语写作——从中式英语到地道英语——读书笔记2
  4. 解决 flowable 无 租户 和 ID 组合启动的问题
  5. 两跨连续梁影响线绘制(一)
  6. java-php-python-ssm校园旺角超市外卖平台计算机毕业设计
  7. Kaptcha 图像验证码
  8. 汇编向C语言函数传递参数
  9. 当年那个手搓CPU的老哥回来了!
  10. 支付宝捐赠证书不打码安全吗?如何判断捐赠真假?