高斯消元法求n阶矩阵的逆矩阵

上传人:j****9 文档编号:46394921 上传时间:2018-06-26 格式:DOC 页数:7 大小:58KB
返回 下载 相关 举报
高斯消元法求n阶矩阵的逆矩阵_第1页
第1页 / 共7页
高斯消元法求n阶矩阵的逆矩阵_第2页
第2页 / 共7页
高斯消元法求n阶矩阵的逆矩阵_第3页
第3页 / 共7页
高斯消元法求n阶矩阵的逆矩阵_第4页
第4页 / 共7页
高斯消元法求n阶矩阵的逆矩阵_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《高斯消元法求n阶矩阵的逆矩阵》由会员分享,可在线阅读,更多相关《高斯消元法求n阶矩阵的逆矩阵(7页珍藏版)》请在金锄头文库上搜索。

1、题目:用高斯消元法求题目:用高斯消元法求 N N 阶矩阵的逆矩阵阶矩阵的逆矩阵 C C 语言实现语言实现#include#include #include#include longlong intint constconst N=1000;N=1000; /定义矩阵最大为定义矩阵最大为 10001000 阶阶 intint n;n; /n/n 表示矩阵的行数和列数。表示矩阵的行数和列数。 doubledouble juzhenNN;juzhenNN; /定义一个定义一个 10001000 阶矩阵阶矩阵 doubledouble danweiNN;danweiNN; /定义一个单位矩阵定义一个单

2、位矩阵 boolbool zhaozuidazhi(intzhaozuidazhi(int s)/s)/定义一个布尔型从定义一个布尔型从 s s 行到行到 n n 行选择最大的元素作为主元的函数。行选择最大的元素作为主元的函数。 intint i,j,A;i,j,A; doubledouble mas,temp;mas,temp; /temp/temp 为中间变量,实现行交换为中间变量,实现行交换 mas=fabs(juzhenss);mas=fabs(juzhenss); /数学函数数学函数:fabs:fabs 功能:求浮点数功能:求浮点数 juzhenssjuzhenss的绝对值的绝对值

3、/计算计算 juzhenss,juzhenss, 当当 juzhenssjuzhenss不为负时返回不为负时返回 juzhenssjuzhenss,否则返回,否则返回-juzhenss-juzhenssA=s;A=s; for(i=s+1;i=0;i-)for(i=s-1;i=0;i-) mas=juzhenis;mas=juzhenis; juzhenis=0;juzhenis=0; for(j=0;j=0;i-)for(i=n-1;i=0;i-) HH(i);HH(i); printf(“nprintf(“n 原始矩阵的逆矩阵为原始矩阵的逆矩阵为:n“);/:n“);/输出逆矩阵语句输出逆

4、矩阵语句for(i=0;i #include#include #include#include doubledouble *inv(double*inv(double *a,int*a,int n)n) intint *is,*js,i,j,k,l,u,v;*is,*js,i,j,k,l,u,v;doubledouble d,p;d,p;is=(int*)malloc(n*sizeof(int);is=(int*)malloc(n*sizeof(int); /用于向内存申请空间,分配长度为用于向内存申请空间,分配长度为 n*sizeof(int)_bytesn*sizeof(int)_byte

5、s 字节的内存块字节的内存块/(int/(int *)*)是用于强制类型转换为用户定义的指针变量的类型是用于强制类型转换为用户定义的指针变量的类型/js=(int*)malloc(n*sizeof(int);js=(int*)malloc(n*sizeof(int);forfor (k=0;(k=0; kd)(pd) d=p;d=p; isk=i;isk=i; jsk=j;jsk=j; ifif (d+1.0=1.0)(d+1.0=1.0) free(is);free(is); free(js);free(js); /内存不再使用时,应使用内存不再使用时,应使用 free()free()函数将

6、内存块函数将内存块 isis 和和 jsjs 释放。释放。/ printf(“printf(“此矩阵没有逆矩阵此矩阵没有逆矩阵n“);n“); returnreturn NULL;NULL; /返回空指针返回空指针 NULL/NULL/ ifif (isk!=k)(isk!=k) forfor (j=0;(j=0; j=0;k=0; k-)k-) ifif (jsk!=k)(jsk!=k) forfor (j=0;(j=0; j /*/* TestTest */*/ voidvoid main()main() doubledouble matrix33=1,-5,-2,-1,3,1,3,-4,

7、-1;matrix33=1,-5,-2,-1,3,1,3,-4,-1; doubledouble matrix133=0,0,0,-1,3,1,3,-4,-1;matrix133=0,0,0,-1,3,1,3,-4,-1; doubledouble matrix244=3,2,1,1,2,3,5,9,-1,2,5,-2,1,0,-1,3;matrix244=3,2,1,1,2,3,5,9,-1,2,5,-2,1,0,-1,3; display(matrix0,3);display(matrix0,3); display(matrix10,3);display(matrix10,3); display(matrix20,4);display(matrix20,4); printf(“pushprintf(“push anyany keykey toto bebe endend .“);.“); getch();getch();

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

当前位置:首页 > 中学教育 > 初中教育

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