求任何1个矩阵的逆.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
求任何1个矩阵的逆

//************************* //*** 求任何一个矩阵的逆*** //************************* #include math.h #include malloc.h #include iomanip.h #define? N? 10?? ??? ??? ??? ?//定义方阵的最大阶数为10 //函数的声明部分 float MatDet(float *p, int n);?? ??? ??? ??? ??? ?//求矩阵的行列式 float Creat_M(float *p, int m, int n, int k);?? ?//求矩阵元素A(m, n)的代数余之式 void print(float *p, int n);?? ??? ??? ??? ??? ?//输出矩阵n*n bool Gauss(float A[][N], float B[][N], int n);?? ?//采用部分主元的高斯消去法求方阵A的逆矩阵B int main() { ?? ?float *buffer, *p;?? ??? ??? ?//定义数组首地址指针变量 ?? ?int row, num;?? ??? ??? ??? ?//定义矩阵的行数和矩阵元素个数 ?? ?int i, j; ?? ?float determ;?? ??? ??? ??? ?//定义矩阵的行列式 ?? ?float a[N][N], b[N][N]; ?? ?int n; ?? ?cout 采用逆矩阵的定义法求矩阵的逆矩阵!\n; ?? ?cout 请输入矩阵的行数: ; ?? ?cin row; ?? ?num = 2 * row * row; ?? ?buffer = (float *)calloc(num, sizeof(float));?? ??? ?//分配内存单元 ?? ?p = buffer; ?? ?if (NULL != p) ?? ?{ ?? ??? ?for (i = 0; i row; i++) ?? ??? ?{ ?? ??? ??? ?cout Please input the number of i+1 row: ; ?? ??? ??? ?for (j = 0; j row; j++) ?? ??? ??? ?{ ?? ??? ??? ??? ?cin *p++; ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?else ?? ?{ ?? ??? ?cout Cant distribute memory\n; ?? ?} ?? ?cout The original matrix : \n; ?? ?print(buffer, row);?? ??? ??? ??? ?//打印该矩阵 ?? ? ?? ?determ = MatDet(buffer, row);?? ?//求整个矩阵的行列式 ?? ?p = buffer + row * row; ?? ?if (determ != 0) ?? ?{ ?? ??? ?cout The determinant of the matrix is determ endl; ?? ??? ?for (i = 0; i row; i++)?? ?//求逆矩阵 ?? ??? ?{ ?? ??? ??? ?for (j = 0; j row; j++) ?? ??? ??? ?{ ?? ??? ??? ??? ?*(p+j*row+i) = Creat_M(buffer, i, j, row)/determ; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?cout The inverse matrix is: endl; ?? ??? ?print(p, row);?? ??? ??? ??? ?//打印该矩阵 ?? ?} ?? ?else ?? ?{ ?? ??? ?cout The determinant is 0, and there is no inverse matrix!\n; ?? ?} ?? ?free(buffer);?? ??? ?//释放内存空间 ?? ?cout 采用部分主元的高斯消去法求方阵的逆矩阵!\n; ?? ?cout 请输入方阵的阶数: ; ?? ?cin n; ?? ?cout 请输入 n 阶方阵: \n; ?? ?//输入一个n阶方阵 ?? ?for (i = 0; i n; i++) ?? ?{ ?? ??? ?for (j = 0; j n; j++) ?? ??? ?{ ?? ??? ??? ?cin

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档