如何用c++编程求矩阵的逆

蜜私特 RIGHT 2024-05-31 03:09:44
最佳回答
#definen5/*[注]:修改6为你所要的矩阵阶数*/#include"stdio.h"#include"conio.h"/*js()函数用于计算行列式,通过递归算法实现*/intjs(s,n)ints[][n],n;{intz,j,k,r,total=0;intb[n][n];/*b[n][n]用于存放,在矩阵s[n][n]中元素s[0]的余子式*/if(n>2){for(z=0;z<n;z++){for(j=0;j<n-1;j++)for(k=0;k<n-1;k++)if(k>=z)b[j][k]=s[j+1][k+1];elseb[j][k]=s[j+1][k];if(z%2==0)r=s[0][z]*js(b,n-1);/*递归调用*/elser=(-1)*s[0][z]*js(b,n-1);total=total+r;}}elseif(n==2)total=s[0][0]*s[1][1]-s[0][1]*s[1][0];returntotal;}/*n_1()函数用于求原矩阵各元素对应的余子式,存放在数组b[n][n]中,定义为float型*/voidn_1(s,b,n)ints[][n],n;floatb[][n];{intz,j,k,l,m,g,a[n][n];for(z=0;z<n;z++){l=z;for(j=0;j<n;j++){m=j;for(k=0;k<n-1;k++)for(g=0;g<n-1;g++){if(g>=m&&k<l)a[k][g]=s[k][g+1];elseif(k>=l&&g<m)a[k][g]=s[k+1][g];elseif(k>=l&&g>=m)a[k][g]=s[k+1][g+1];elsea[k][g]=s[k][g];}b[z][j]=js(a,n-1);}}}main(){inta[n][n];floatb[n][n];intr,z,j;floattemp;//clrscr();printf("inputoriginaldata:\n");for(z=0;z<n;z++)/*输入所需要的数据,为整型数据*/for(j=0;j<n;j++)scanf("%d",&a[z][j]);printf("\npressentercontinue......");getchar();//gotoxy(1,1);printf("theoriginalmatrix**:\n");for(z=0;z<n;z++)/*打印原矩阵*/{for(j=0;j<n;j++)printf("%5d",a[z][j]);printf("\n");}r=js(a,n);/*调用js()函数计算原矩阵的行列式值*/printf("\ntheoriginalmatrixhanglieshi**:|a|==%d\n",r);if(r==0)printf("because|a|==0,theoriginalmatrixh**enonijuzhen!");/*判断条件:若|a|==0,则原矩阵无逆矩阵,反之则存在逆矩阵*/else{n_1(a,b,n);/*调用n_1()函数,得到原矩阵各元素对应的"余子式",存放在数组b[n][n]中*/for(z=0;z<n;z++)/*求代数余子式,此时b[n][n]中存放的为原矩阵各元素对应的"代数余子式"*/for(j=0;j<n;j++)if((z+j)%2!=0&&b[z][j]!=0)b[z][j]=-b[z][j];for(z=0;z<n;z++)/*对b[n][n]转置,此时b[n][n]中存放的为原矩阵的伴随矩阵*/for(j=z+2;j<n;j++){temp=b[z][j];b[z][j]=b[j][z];b[j][z]=temp;}printf("because|a|!=0,theoriginalmatrixh**enijuzhen!\n");printf("thebansuijuzhena***:\n");for(z=0;z<n;z++)/*打印伴随矩阵a**/{for(j=0;j<n;j++)printf("%4.0f\t",b[z][j]);printf("\n");}for(z=0;z<n;z++)/*求逆矩阵,此时b[n][n]中存放的是原矩阵的逆矩阵*/for(j=0;j<n;j++)b[z][j]=b[z][j]/r;printf("\nthenijuzhen**:(a*)/|a|(|a|=%d)\n",r);/*打印逆矩阵*/for(z=0;z<n;z++){for(j=0;j<n;j++)printf("%8.3f",b[z][j]);printf("\n");}}} 20210311
汇率兑换计算器

类似问答
  • 什么是波士顿矩阵,如何运用波士顿矩阵
    • 2024-05-31 15:14:07
    • 提问者: 未知
    波士顿矩阵(bcg matrix),又称市场增长率-相对市场份额矩阵、波士顿咨询集团法、四象限分析法、产品系列结构管理法等。波士顿矩阵由美国著名的管理学家、波士顿咨询公司创始人布鲁斯·亨德森于1970年首创。波士顿矩阵认为一般决定产品结构的基本因素有两个:即市场引力与企业实力。市场引力包括企业销售量(额)增长率、目标市场容量、竞争对手强弱及利润高低等。其中最主要的是反映市场引力的综合指标——销售增...
  • 为什么会有矩阵这东西,矩阵到底有什么用
    • 2024-05-31 16:56:27
    • 提问者: 未知
    郭敦顒回答:代数中由二元一次联立方程到多元一次联立方程的一般性解法,之后产生了行列式的解法,这表明行列式是用于解二元到多元一次联立方程的,是公式化方法,而能如此做到是由行列式的特征性能决定的。相来对此你有所了解,那么在此基础上你就能了解矩阵了。矩阵与行列式有相通相近之处,它们都是属于线性代数的,即都具有二元到多元一次的性质,而在表达形式上都具规范化阵列的直观形式;不同点在于要解决的问题有差异,矩阵...
  • 如果矩阵 a与单位矩阵相似,则 a为单位矩阵.为什么是对的
    • 2024-05-31 03:31:41
    • 提问者: 未知
    不同于e的矩a与e相似存在可逆矩阵p,有p^-1ap=e,显然,必有p^-1ep=e式相减得p^-1(a-e)p=e-e=o(0矩阵)所以a-e=o,即a=e。这就是说a为单位矩阵。结论:与单位矩阵相似的矩阵只能是单位矩阵。
  • 什么是矩阵的模
    • 2024-05-31 01:53:00
    • 提问者: 未知
    模,又称为范数。范数,是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小。半范数可以为非零的矢量赋予零长度。范数常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。在泛函分析中,它定义在...
  • 求矩阵(1100,0110,0011,0001)的逆矩阵
    • 2024-05-31 15:43:02
    • 提问者: 未知
    用初等行变化求矩阵的逆矩阵的时候,即用行变换把矩阵(a,e)化成(e,b)的形式,那么b就等于a的逆在这里(a,e)=1 1 0 0 1 0 0 00 1 1 0 0 1 0 00 0 1 1 0 0 1 00 0 0 1 0 0 0 1 r3-r4~1 1 0 0 1 0 0 00 1 1 0 0 1.
  • 初等变换求逆矩阵
    • 2024-05-31 15:05:33
    • 提问者: 未知
    初等变换求逆矩阵有没有什麽技巧?用初等变换求逆矩阵只要方法正确,加上有耐心,不需要技巧,程式化地一步一步做下去,就会得到结果。在要求逆的n阶矩阵右边写一个?
  • 逆矩阵用哪个符号表示啊?
    • 2024-05-31 12:29:57
    • 提问者: 未知
    矩阵符号右上角加个-1
  • 矩阵的秩!帮忙求一下吧!要详细解题过程!
    • 2024-05-31 13:28:31
    • 提问者: 未知
    解:用初等变换做即可。
  • 解矩阵方程ax=b
    • 2024-05-31 20:24:57
    • 提问者: 未知
    ax=b 则x=a⁻¹b 下面使用初等行变换来求x 2 3-1 2 1 1 2 0-1 0 1 2-2 3 1 第62616964757a686964616fe58685e5aeb9313333613133611行交换第2行 1 2 0-1 0 2 3-1 2 1 1 2-2 3 1 第2行,第3行,加上第1行×-2,1 1 2 0-1 0 0-1-1 4 1 0 4-2 2 1 第1行,第3行,...
  • 矩阵相似与矩阵合同有什么区别
    • 2024-05-31 10:51:56
    • 提问者: 未知
    三、矩阵合同是指合同矩阵:两个实对称矩阵a和b,如存在可逆矩阵p,使得就称矩阵a和b互为合同矩阵,并且称由a到b的变换叫合同变换。四、合同矩阵的性质如下: 反身性:任意...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。