c语言实现矩阵的相关操作

上传人:m**** 文档编号:564587369 上传时间:2023-01-12 格式:DOC 页数:26 大小:202.50KB
返回 下载 相关 举报
c语言实现矩阵的相关操作_第1页
第1页 / 共26页
c语言实现矩阵的相关操作_第2页
第2页 / 共26页
c语言实现矩阵的相关操作_第3页
第3页 / 共26页
c语言实现矩阵的相关操作_第4页
第4页 / 共26页
c语言实现矩阵的相关操作_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《c语言实现矩阵的相关操作》由会员分享,可在线阅读,更多相关《c语言实现矩阵的相关操作(26页珍藏版)》请在金锄头文库上搜索。

1、. . 算法分析与设计课程论文通过C语言实现矩阵的相关操作一 摘要本文在Microsoft Visual Studio 2010的编译环境下,通过C语言进行一些矩阵的基本操作,包括矩阵的设置,加减乘除,数乘运算。求矩阵的逆等操作。关键词矩阵 C语言 逆矩阵二 正文1. 引言矩阵的相关知识只是是高等数学的基础,但是其庞大的运算量和纷繁的步骤让人却步。虽然有Matlab等软件可以实现矩阵的相关操作,但是我校一些专业并不学习数学实验,故通过C语言实现矩阵的操作也是一种可行的方法,本文列举的了一些矩阵的加减乘除等基本运算规则,还有对矩阵进行转置,也有矩阵求逆的相关操作。同时,还介绍了行列式的计算,通过

2、运行该程序,可以大大简化行列式的计算量。2. 算法分析矩阵的初始化相关概念在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数与常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。 矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。理论分析 在C语言中,可以

3、使用二维数组来描绘一个矩阵。值得注意的是,在二维数组中,必须标明列数,否则编译器就会报错。故二维极其多维数组使用时要注意数组下标。代码实现#includeint main()int juzheng 100100;int i , j , a , b ;printf(请输入矩阵的行数a 列数b n) ;scanf (%d %d,&a,&b);for (i = 0;i a ;i+)for (j = 0;j b ;j+)scanf (%d,&juzhengij);printf (你所输入的矩阵是:n);for (i = 0;i a ;i+)for (j = 0;j b ;j+)printf(%d ,j

4、uzhengij);printf (n);return 0;矩阵的相加相关概念加法矩阵的加法满足以下运算律(A,B,C都是同型矩阵):A+B=B+AA+B+C=A+(B+C)应该注意的是只有同型矩阵之间才可以进行加法理论分析:矩阵相加就是将两个矩阵的相同位置的元素相加,相加的值输出,通过循环语句,可以很好的实现该过程,如果要改成减法的话,就可以改成printf(“%d”,juzhen1ij-juzhen2ij)。这样就可以实现矩阵的减法。代码实现#includeint main()int juzheng1 100100,juzheng2100100;int i , j , a , b ;pri

5、ntf(请输入矩阵的行数a和列数bn) ;scanf (%d %d,&a,&b);printf(输入矩阵1n);for (i = 0;i a ;i+)for (j = 0;j b ;j+)scanf (%d,&juzheng1ij);printf(输入矩阵2n);for (i = 0;i a ;i+)for (j = 0;j b ;j+)scanf (%d,&juzheng2ij);printf (您所输入的矩阵1是:n);for (i = 0;i a ;i+)for (j = 0;j b ;j+)printf(%d ,juzheng1ij);printf (n);printf (n您所输入的

6、矩阵2是:n);for (i = 0;i a ;i+)for (j = 0;j b ;j+)printf(%d ,juzheng2ij);printf (n);printf (n您输出的矩阵是:n);for (i = 0;i a ;i+)for (j = 0;j b ;j+)printf(%d ,juzheng1ij+juzheng2ij);printf (n);return 0;矩阵的数乘相关概念矩阵的数乘满足以下运算律:矩阵的加减法和矩阵的数乘合称矩阵的线性运算。理论分析矩阵的数乘,就是把要乘的那个数乘上每一个元素。要想实现矩阵的数乘,只需在每一个元素上乘上那个数就行了。通过对二维数组的遍

7、历,就可以实现该项功能。代码实现#includeint main()int juzheng 100100;int i , j , a , b ,u;printf(请输入矩阵的行数a 列数b n) ;scanf (%d %d,&a,&b);printf(请输入需要数乘的那个数un) ;scanf (%d,&u);for (i = 0;i a ;i+)for (j = 0;j b ;j+)scanf (%d,&juzhengij);printf (你所输出的矩阵是:n);for (i = 0;i a ;i+)for (j = 0;j b ;j+)printf(%d ,u*juzhengij);pr

8、intf (n);return 0;求矩阵中的最大最小值相关概念矩阵中所有元素存在最大最小值,通过在矩阵中的比较大小,就可以找到矩阵中所有元素的最大最小值。理论分析在一个矩阵中,存在最大值与最小值,通过在循环语句中比较,就可以得出一个矩阵中所有元素的最大最小值。通过初始化一个max与min,然后将矩阵中个个元素与其进行比较,就可以得出矩阵中个个元素的最大值与最小值。代码实现#includeint main()int juzheng 100100;int i , j , a , b , min , max ;max = -100000;min = 100000;printf(请输入矩阵的行数a

9、列数b n) ;scanf (%d %d,&a,&b);for (i = 0;i a ;i+)for (j = 0;j b ;j+)scanf (%d,&juzhengij);for (i = 0;i a ;i+)for (j = 0;j max)max = juzhengij; if (juzhengij min)min = juzhengij;printf (n);printf(max = %d min = %d,max,min);return 0;矩阵的乘法相关概念两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。如A是mn矩阵和B是np矩阵,它们的乘积C是一个mp

10、矩阵,它的一个元素:并将此乘积记为:.例如:矩阵的乘法满足以下运算律:结合律:ABC=A(BC)左分配律:(A+B)*C=AC+BC右分配律:A*(B+C)=AC+BC但是矩阵乘法不满足交换律。理论分析 矩阵乘法必须是a*b的矩阵和b*n的矩阵形式才能相乘,通过矩阵乘法的运算法则,就可以得到新的矩阵。值得注意的是代码实现#includeint main()int juzheng1 100100,juzheng2100100;int i , j , a , b , n ,d , k;printf(请输入矩阵的行数a和列数bn) ;scanf (%d %d,&a,&b);printf(输入矩阵1n

11、);for (i = 0;i a ;i+)for (j = 0;j b ;j+)scanf (%d,&juzheng1ij);printf(矩阵2为a行n列,输入nn);scanf (%d,&n);printf(输入矩阵2:n);for (i = 0;i b ;i+)for (j = 0;j n ;j+)scanf (%d,&juzheng2ij);printf(两个矩阵的乘积y为:n);for(i = 0;i a;i+)for(j = 0;j n;j+)for(d = 0,k = 0;k n;k+)d += juzheng1ik * juzheng2kj;printf(%d ,d);prin

12、tf(n);求转置矩阵把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,记作或A。理论分析 只需要将输出是行数和列数交换一下就行了,在循环中将输出结果输出就可以了。对于数组下标的操作,有时可以很大的降低算法的复杂度。所以对于数组下标操作的小技巧,要留意。代码实现#includeint main()int juzheng 100100;int i , j , a , b ;printf(请输入矩阵的行数a列数b n) ;scanf (%d %d,&a,&b);for (i = 0;i a ;i+)for (j = 0;j b ;j+)scanf (%d,&juzhengij);printf (转置矩阵是:阰

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号