首页 > 编程知识 正文

matlab列主元高斯消去法例题,高斯若尔当法求逆矩阵

时间:2023-05-03 22:45:06 阅读:60289 作者:227

http://www.Sina.com/http://www.Sina.com /

# include ' stdlib.h ' # include ' math.h ' # include ' stdio.h ' int rinv (a,n ) int n; 双精度a [ ]; { int *is,*js,I,j,k,l,u,v; 双精度d,p; is=malloc(n*sizeof ) int ); js=malloc(n*sizeof ) int ); for(k=0; k=n-1; k () { d=0.0; for(I=k; i=n-1; I ) for(j=k; j=n-1; j () { l=i*n j; p=FABS(a[l]; if(PD ) d=p; is[k]=i; js[k]=j; }if(D1.0==1.0 ) free ) is; free(js; printf(err冷静发卡notinv(n ); 返回(0; (if ) is[k]!=k ) for(j=0; j=n-1; j () { u=k*n j; v=is[k]*n j; p=a[u]; a[u]=a[v]; a[v]=p; (if ) js[k]!=k ) for(I=0; i=n-1; I ) { u=i*n k; v=i*n js[k]; p=a[u]; a[u]=a[v]; a[v]=p; (} l=k*n k; a[l]=1.0/a[l]; for(j=0; j=n-1; j ) if(j!=k () { u=k*n j; a[u]=a[u]*a[l]; (for ) I=0; i=n-1; I ) if ) I!=k ) for(j=0; j=n-1; j ) if(j!=k () { u=i*n j; a[u]=a[u]-a[i*n k]*a[k*n j]; (for ) I=0; i=n-1; I ) if ) I!=k () { u=i*n k; a[u]=-a[u]*a[l]; }for(k=n-1; k=0; k--}{if(js[k]!=k ) for(j=0; j=n-1; j () { u=k*n j; v=js[k]*n j; p=a[u]; a[u]=a[v]; a[v]=p; (if ) is[k]!=k ) for(I=0; i=n-1; I ) { u=i*n k; v=i*n is[k]; p=a[u]; a[u]=a[v]; a[v]=p; }free(is ); free(js; 返回(1; } http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /

voidtrmul(a、b、m、n、k、c ) int m、n、k; 双精度a [ ]、b[]、c[]; { int i,j,l,u; for(I=0; i=m-1; I ) for ) j=0; j=k-1; j () { u=i*k j; c[u]=0.0; for(L=0; l=n-1; l ) C(U )=C ) u ) a ) I*NL ) b ) L*KJ ); }返回; } # include ' stdio.h ' # include '4rinv.c ' # include '4tr mul.c ' main () { int i,j; staticdoublea [4] [4]={ 0.2368,0.2471,0.2568,1.2671 },{ 1.1161,0.1254,0.1397,0.1490 },{ 0.1582,1.16771 for(I=0; i=3; I ) for ) j=0; j=3; j ) b[i][j]=a[i][j]; I=rinv(a,4 ); if(I!=0) printf(matais:(n ); for(I=0; i=3; I ) for(j=0; j=3; j ) printf('.7e ',b[i][j]; printf((n ); }printf((n ); printf(mata-is:(n ) ); for(I=0; i=3; I ) for(j=0; j=3; j ) printf('.7e ',a[i][j]; printf((n ); }printf((n ); printf(mataa-is:(n ); trmul(b、a、4、4、4、c ); for(I=0; i=3; I ) for(j=0; j=3; j ) printf('.7e ',c[i][j]; printf((n ); } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。