C编程解线性代数二阶三阶矩阵(奇迹冬瓜)

C语言 - 【线性代数】二阶、三阶行列式的计算 运行测试: 源码: #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <windows.h> #include <conio.h> using namespace std; void CleanConsole(int x, int y) //y是指定... 阅读详情

(一)

小编语

    大学数学三大基础:概论,线性,高数,用计科系软件角度运用数学观点理论编写程序来解决作业是一个极富创造力的工程,现在就线性代数第一章的理论来进行程序(c基础语言)的编写以求达到简化作业的目的,当然,最终目的还是为了睡个好觉,首先进行这个课题的理论积累。

(二)

    二阶行列式理论基础

    二阶行列式推导过程:

    ①a11x1+a12x2=b1

    ②a21x1+a22x2=b2

    由一二式的推导

    ①*a21:a11a21x1+a12a21x2=b1a21

    ②*a11:a11a21x1+a11a22x2=b2a11

    ①-②:(a12a21-a11a22)x2=b1a21-b2a11

    当a12a21-a11a22≠0时

    x1=(b1a21-b2a11)/(a12a21-a11a22)

    x2=(b2a12-b1a22)/(a12a21-a11a22)

    那么二阶行列式

    | a11 a12 |           | b1 a12 |           | a11 b1 | 

    | a21 a22 |           | b2 a22 |           | a21 b2 | 

    其中a叫做元素(element),下标分别表示行与列,简称行标与列标,系数行列式(D):由对角线法则得D=a11a22-a12a21

    同理得D1=b1a22-a12b2  D2=a11b2-b1a21

    于是乎x1=D1/D  x2=D2/D

    (三)

     二阶编程代码

#include<stdio.h>
#include<stdlib.h>

void main()
{
	float arr[2][3],D1,D2,D;
	int i,j;
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
		{
			scanf("%f",&arr[i][j]);
		}
	}
	D=arr[0][0]*arr[1][1]-arr[0][1]*arr[1][0];
	if(0!=D)
	{
		D1=arr[0][2]*arr[1][1]-arr[0][1]*arr[1][2];
		D2=arr[0][0]*arr[1][2]-arr[0][2]*arr[1][0];
	}
	else
	{
		exit(0);
	}
	printf("x1:%-5.2f x2:%-5.2f\n",D1/D,D2/D);
	getchar();
	getchar();
}

程序测试:

线性代数第一章例一:

3x1-2x2=12

2x1+x2=1

 

(四)

三阶行列式理论与代码

#include<stdio.h>
#include<stdlib.h>

#define N 3

void Exchange(float (*p)[N],int i,float *q);
float MainDgl(float (*s)[N]);
float ViceDgl(float (*s)[N]);


void main()
{
	float arr[N][N],b[N],D1[N],D;
	int i,j;
	for(i=0;i<N;i++)
	{
		for(j=0;j<N;j++)
		{
			scanf("%f",&arr[i][j]);
		}

	}
	D=MainDgl(arr)-ViceDgl(arr);
	printf("D:%-5.3f ",D);
	printf("\n");
	getchar();
	getchar();
}

void Exchange(float (*p)[N],int i,float *q)
{
	int j=0;
	float temp;
	for(;j<N;j++)
	{
		temp=p[i][j];
		p[i][j]=q[j];
		q[j]=temp;
	}
}

float MainDgl(float (*s)[N])
{
	float m=1,sum=0;
	int i=0,j=0,k=1,start=0,end=N-1;
	while(start<=end)
	{
		m*=s[i++][j++];
		if(i==N)
		{
			i=0;
		}
		if(j==N)
		{
			j=0;
		}
		if(0==k%N)
		{
			sum+=m;
			m=1;
			i=0;
			j=++start;
		}
		k++;
	}
	return sum;
}

float ViceDgl(float (*s)[N])
{
	float m=1,sum=0;
	int i=0,j=N-1,k=1,start=N-1,end=0;
	while(start>=end)
	{
		m*=s[i++][j--];
		if(i==N)
		{
			i=0;
		}
		if(j==-1)
		{
			j=N-1;
		}
		if(0==k%N)
		{
			sum+=m;
			m=1;
			i=0;
			j=--start;
		}
		k++;
	}
	return sum;
}

以第五版线性代数的作业作为测试:

习题一p25

第一大题(1)

|   2   0   1   |

|   1  -4  -1  |

|  -1   8   3  |

测试结果:

C语言用代数余子式计算行列式 讲述了利用代数余子式计算行列式的原理,用递归的方式用C语言实现了行列式的计算。 阅读详情

相关推荐

线性代数学习笔记(一)——二阶和三阶行列式

本篇笔记从解方程组开始,并引入一种新运算,然后了解二阶行列式和三阶行列式相关定义,如元素、行标、列标、主对角线、次对角线等。同时为了研究行列式展开项与元素下标之间的关系,还引入了排列、逆序、逆序数、奇排列、偶排列、标准排列、自然排列、N级标准排列以及对换等概念。

li2008kui的专栏 1万+

三阶行列式

#include<stdio.h> int main() { int x,y,z,r,s,t,a,b,c,result; scanf("%d%d%d%d%d%d%d%d%d",&x,&y,&z,&r,&s,&t,&a,&b,&c); result = x*s*c+y*t*a+z*r*b-z*s*a-y*r*c-x*t*b; printf("%d\n",result); return 0; } 给出一个三阶行.

qq_63068918的博客 5224

C语言 计算矩阵(二维数组)

#include<stdio.h> #include<stdlib.h> main() { int i,j,k,N,M; printf("\t\t矩阵的加减法运算\n"); printf("你要输入几行的矩阵"); scanf("%d",&N); printf("\n你要输入几列的矩阵"); sca...

weixin_44119517的博客 2万+

sift算法搭建(上半部,五,求二阶三阶黑塞矩阵的逆程序对比,c#实现)

先看二阶黑塞矩阵: private void 二阶黑塞矩阵的逆(ref double a,ref double c,ref double b,ref double d) {//未考虑bc-ad==0 //因为黑塞矩阵的逆*黑塞矩阵=单位矩阵 //a c*AA CC=1 0 //b d BB DD 0 1 //a*AA+c*BB=1; //b*AA+d...

ganggangwawa的博客 826

线性代数用C语言表示

线性代数在ACM中的应用 周鹏飞 (丽水学院 工学院 计112本,浙江 丽水 323000) 摘要:针对如何利用计算机来解决点灯游戏的问题,点灯游戏在ACM的题型中也是一类,可以采用搜索来解决,但是也可以采用线性代数中的高斯消元法来解决。先求出灯组矩阵的系数矩阵,然后列出增广矩阵。采用异或操作,求出方程的解。 关键字:高斯消元法;国际大学生程序设计竞赛(ACM);点灯游戏;灯光师小明;

lszpf1的专栏 4522

C语言版本的BLAS线性代数数学库软件源代码

C语言版本的BLAS线性代数数学库软件源代码,安装这个之前要先安装BLAS库

C语言求23阶行列式,AX=0通解,施密特正交化

(一)任意选一种数学软件如Mathematica,MATLAB,Maple,或你学过的其它编程软件如C.C++计算:(二) 行列式D(矩阵A)的产生:设D =ldulz3·则0< dj 9都是整数利用你的学号构造一个一位整数构成的数列把学号的每一位上数(从左到右)作为数列的一项: 把每一位的平方拆成一位数作为数列的一项: 把每一位的立方拆成一位数作为数列的每一项;...;例如:你的学号是1234567890,则一个13阶的行列式如下。

程序员象漂亮的博客 1330

修复ASUS in WinRE教程

暑假入手了天选三,发现是win11家庭版,本来想着家庭版将就一下无所谓,结果在使用的过程中发现相较于专业版真的是不能比,于是自己就重装了系统,发现ASUS in WinRE入口不见了,折腾半天最后成功修复。

weixin_46202629的博客 1万+

2阶 3阶行列式 求解

三阶行列式求解: 求解: 1    4    3 -5   2    1 3    6    1 通过表达式解析为: ( (1 * 2 * 1) + (4*1*3) + (3*6*-5)  ) - ( (3*2*3) + (4*-5*1) + (1*6*1) ) = (2 + 12 + -90) - (18 + -20 + 6) = -76 - 4 =-80

BrandoLv 6499

Zipformer在RK3588上的性能实测:比Conformer快多少?内存省多少?

本文在RK3588平台上对Zipformer和Conformer语音识别模型进行了全面的性能实测。结果显示,Zipformer在模型部署中展现出显著优势:推理速度比Conformer快约56%,峰值内存占用降低约60%,同时在AISHELL-1等测试集上保持了相当的识别准确率。这为边缘ASR应用提供了更高效、更节省资源的解决方案。

metal的博客 484

envi5.3处理高分二号影像数据详细过程记录

全文根据此篇文章进行数据处理: tm影像辐射定标_高分二号影像数据预处理及裁剪过程 其他参考: 学习笔记---遥感影像辐射定标与大气校正 利用ENVI自带全球DEM数据计算区域平均高程 高分二号数据处理流程(有高分二号的数据信息) GF2有多光谱和全色两个数据,MSS是多光谱的,PAN是全色的,多光谱的分辨率低,全色的高,需要把这两个数据融合,融合之前需要做定标等处理,获取经纬度。 一、多光谱影像处理 1. 辐射定标 以这个为例: 其他路径\2022.4.2...

ligous的博客 5万+

要求编写一个程序,可以让用户输入一个三阶方阵,打印并求出该方阵的值。

#include<stdio.h> int main() { int a[3][3]; int sum1, sum2, sum; int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%d", &a[i][j]); } } sum1 = a[0][0] * a[1][1] * a[2][2]+a[0][2] * a[1][0] * a[2][1] + ...

cxy_jbq的博客 1356

Hyper-V虚拟机 安装 银河麒麟V10桌面版

如何在windows 11 Hyper-V 虚拟机中 安装 银河麒麟V10桌面版。

m0_46756112的博客 3425

C语言与线性代数,编程与线性代数

原标题:编程与线性代数先来了解线性代数是什么东东?在大学数学学科中,线性代数是最为抽象的一门课,从初等数学到线性代数的思维跨度比微积分和概率统计要大得多。很多人学过以后一直停留在知其然不知 其所以然的阶段,若干年之后接触图形编程或机器学习等领域才发现线性代数的应用无处不在,但又苦于不能很好地理解和掌握。的确,多数人很容易理解初等数学 的各种概念,函数、方程、数列一切都那么的自然,但是一进入线性代数...

weixin_39797264的博客 1215

AFL源码分析之afl-as.c详细注释

前言 afl-as注释好了,明白了是如何进行插桩的,以及插在哪里 本文主要参考Sakura大佬文章:https://eternalsakura13.com/2020/08/23/afl/ 编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノ /* Copyright 2013 Google LLC All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); y

hollk’s blog 2173

基于射频技术的校园无人超市管理系统_360

本设计实现了一种基于射频技术的校园无人超市管理系统,系统集成了环境监测与商品管理两大核心模块。在环境监测部分,采用DHT11温湿度传感器与MQ2烟雾传感器对超市内部环境进行实时监测,结合温控与报警机制,实现自动通风与烟雾报警功能,并通过1.44寸SPI LCD显示屏进行本地信息显示。商品管理部分基于RC522-RFID读卡器完成商品识别,结合Qt上位机软件实现顾客自助选购与结算,同时支持管理员进行商品入库与会员卡管理等操作。系统采用STM32F103RCT6为主控核心,结合串口通信方式与Qt开发的上位机进行

378

C语言求解线性方程组AX=b

线性代数的一个核心问题就是线性方程组的求解问题,包括:解的存在性(是否有解),解的唯一性(有解,是无穷解还是唯一解)。通常将线性方程组写成AX=b的形式,其中,A为系数矩阵,X为未知数(向量的形式),b表示目标向量,举例如下:     求解上述线性方程组,常采用高斯消元法,将AX=b写成增广矩阵的形式,采用初等行变化得到上三角矩阵,从而判断,方程组解的存在性以及是否为唯一解。     根据

一亩房 2万+

道路施工检测 (construction) - 基于Mapillary Vistas数据集的YOLOv11目标检测及UI界面实现

目标检测是计算机视觉的重要任务,目标是识别图像中的目标物体类别及其位置(用边界框表示)。两阶段检测器:如Faster R-CNN,准确度高但速度较慢单阶段检测器:如YOLO系列、SSD,速度快且精度相对较好,适合实时场景数据量:约25,000张高分辨率街景图标注类型:语义分割、实例分割、多类别检测类别示例:construction, road, car, person, traffic sign等格式:COCO风格JSON标注。

YOLO 497

使用C语言实现线性代数(矩阵运算、特征值分解)

线性代数是数据科学、人工智能、计算机图形学等领域的核心数学工具。幂法(Power Method)是一种迭代方法,用于计算矩阵的。LU 分解(LU Decomposition)将一个方阵。QR 分解(QR Decomposition)将矩阵。奇异值分解是一种用于矩阵分解的强大工具,它将矩阵。该结果接近矩阵的真实最大特征值,说明幂法有效。由于 SVD 计算较为复杂,我们使用。接下来,我们将继续深入,实现更。这些矩阵分解方法广泛应用于。在前面的部分,我们实现了。矩阵加法要求两个矩阵。SVD 计算出矩阵的。

小宝哥Code的专栏 1624

基于STM32L4XX 、HAL库的TMP144YFFR数字温度传感器驱动应用C语言程序设计

define TMP144_ADDRESS 0x00 // 默认为全局地址,用于单器件或MDA命令。#define TMP144_CMD_READ_TEMP 0x00 // 读取温度寄存器命令。if (temp_raw & 0x800) { // 判断第11位(符号位)

PP_Cottage的博客 91

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

线性代数 (1)(c 语言版)

第一二阶矩阵int main()x1 = D1/D;x2 = D2/D;return 0;

yishiduoshhaojie的博客 651

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C++实现二阶行列式的计算

C++实现二阶行列式的计算 新手上路,多多关照 #include"iostream" using namespace std; class ROW { public: void input(int a[2][2]) { for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { ROW[i][j...

weixin_45701489的博客 890

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

c语言矩阵线性相关性_线性代数之——线性相关性、基和维数

线性代数之——线性相关性、基和维数1. 线性相关性矩阵的列是线性不相关的当且仅当的唯一解是。没有其它的线性组合能给出零向量。在三维空间中,如果三个向量不在同一个平面中,那它们就是不相关的,只有能给出零向量。如果三个向量位于同一个平面中,那它们就是相关的。一系列向量是线性不相关的当且仅当给出零向量的唯一线性组合是。如果一个线性组合给出零向量,但不是所有的系数都为零,那么它们就是相关的。矩阵的列是线性...

weixin_42356803的博客 1845

c语言做线性代数第六版答案,线性代数求解(C语言):

匆忙之下,帮朋友编了一道解线性代数的小程序,虽然很有局限性,但也倍感骄傲!(Ax=B。使用者自定义输入一个3阶方阵A和3*1的矩阵B,系统求出x。)见下:#include #include int hls(float a[3][3]){float i;i=a[0][0]*a[1][1]*a[2][2] a[0][1]*a[2][0]*a[1][2]a[0][2]*a[1][0]*a[2][1]-(...

weixin_36186183的博客 435

C语言实现直接法解线性方程组

首先说以下什么是直接法,以及有哪些方法属于直接法。 直接法:经过有限步运算就能求得精确解的方法。  主要包括以下四种: Ø 顺序高斯消去法 Ø 选主元高斯消去法 Ø 高斯-约当消去法 Ø 矩阵三角分解法 这里主要阐述顺序高斯消去法接线性方程组(其他方法都是在这个的基础的稍作变化) 一.基本思想 利用线性方程组初等变换中的一种变换,即用一个不为零的数乘以

kang___xi的博客 1万+

线性代数编程作业

n阶行列式计算程序: #include <stdio.h> #include <math.h> float determinant[100][100]; main() { unsigned char a,b,c,d,n; char sign; float value,k; sign=1; value=1; printf("请输入行列式的阶数 "); scanf("%d",&n); f...

weixin_40832225的博客 741
上一篇: c语言版数据结构(奇迹冬瓜)-串(定长顺序存储各项操作)
下一篇: c语言版数据结构(奇迹冬瓜)-串的匹配模式算法
utral董东东
博客等级 码龄16年 158粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值