c語言求矩陣的逆,C語言 求矩陣的逆

2021-12-16 15:36:20 字數 4986 閱讀 4735

1樓:匿名使用者

//源程式如下#include

#include

#include

#include

#include

#include

#define max 100void inputstyle(int *); //輸入函式

void input(int **,int); //輸入函式

long danx(int **,int);

int sgnx(int);

void martx(int **,int);int main(void)

return(0);

} void input(int **p,int n)long danx(int **p,int n)

}/*for(int i1=0;i1

printf("\n");

}*/sum+=*(*(p+0)+i) * sgnx(1+i+1) * danx(po,n-1);

}return sum;

}}int sgnx(int i)void martx(int **p,int n)

}tramform[i][j]=sgnx(2+i+j) * danx(po,n-1);}}

for(i=0;i

printf("\n");}}

}}//執行結果//希望對你有幫助

2樓:鬱楓

下面是實現gauss-jordan法實矩陣求逆。

#include

#include

#include

int brinv(double a, int n)}if (d+1.0==1.0)

if (is[k]!=k)

for (j=0; j<=n-1; j++)if (js[k]!=k)

for (i=0; i<=n-1; i++)l=k*n+k;

a[l]=1.0/a[l];

for (j=0; j<=n-1; j++)if (j!=k)

for (i=0; i<=n-1; i++)if (i!=k)

for (j=0; j<=n-1; j++)if (j!=k)

for (i=0; i<=n-1; i++)if (i!=k)

}for (k=n-1; k>=0; k--)if (is[k]!=k)

for (i=0; i<=n-1; i++)}free(is); free(js);

return(1);

}void brmul(double a, double b,int m,int n,int k,double c)

return;

}int main(),,

,};static double b[4][4],c[4][4];

for (i=0; i<=3; i++)

for (j=0; j<=3; j++)

b[i][j]=a[i][j];

i=brinv(a,4);

if (i!=0)

printf("\n");

printf("mat a- is:\n");

for (i=0; i<=3; i++)

printf("\n");

printf("mat aa- is:\n");

brmul(b,a,4,4,4,c);

for (i=0; i<=3; i++)

}} 《收起

參考資料:c常用演算法程式集-徐士良

3樓:嘻嘻樂了

到底應該怎麼樣去求逆矩陣才好呢?

4樓:匿名使用者

#include

#include

#include

#include

using namespace std;

double det(int n,vectora)}d+=pow(float(-1),i)*a[i]*det(n-1,b);

}return d;

}vectoradjoint(int n,vectora)b[cel*n+row]=pow(float(-1),cel+row)*det(n-1,m);

}return b;

}void main()

if(det(n,a)==0)

b=adjoint(n,a);

cout<<"該矩陣的逆矩陣為"<

for(int i=0;i

}c++寫的,用了我兩個小時,可以求任意階矩陣的逆,可能有bug,hehe。

c語言回型矩陣

5樓:匿名使用者

for(j=m-i-1;j>i;j--)

}for(i=0;i

for(j=0;j

}line12 我註釋掉你的一部分,後邊換成修改後的;看你**的意思是按回環依次複製,那麼外側一環賦值完成後,進入內一層環的時候,i和j都要+1的;你的i+1了,但j沒有。

求矩陣的逆矩陣 c語言編的程式 20

6樓:南柯一夢之小

思路,就按照線性代數書上求逆矩陣的步驟,目前只會指定階的。

自己做吧,分太少,編個這麼複雜的程式至少要半個小時

7樓:匿名使用者

#include

#include

#include

int brinv(double a, int n)}if (d+1.0==1.0)

if (is[k]!=k)

for (j=0; j<=n-1; j++)if (js[k]!=k)

for (i=0; i<=n-1; i++)l=k*n+k;

a[l]=1.0/a[l];

for (j=0; j<=n-1; j++)if (j!=k)

for (i=0; i<=n-1; i++)if (i!=k)

for (j=0; j<=n-1; j++)if (j!=k)

for (i=0; i<=n-1; i++)if (i!=k)

}for (k=n-1; k>=0; k--)if (is[k]!=k)

for (i=0; i<=n-1; i++)}free(is); free(js);

return(1);

}void brmul(double a, double b,int m,int n,int k,double c)

return;

}int main(),,

,};static double b[4][4],c[4][4];

for (i=0; i<=3; i++)

for (j=0; j<=3; j++)

b[i][j]=a[i][j];

i=brinv(a,4);

if (i!=0)

printf("\n");

printf("mat a- is:\n");

for (i=0; i<=3; i++)

printf("\n");

printf("mat aa- is:\n");

brmul(b,a,4,4,4,c);

for (i=0; i<=3; i++)}}

8樓:匿名使用者

找本線性代數的書看看就行了

9樓:匿名使用者

dvcdxvcdxvdxv

c語言矩陣求逆

10樓:匿名使用者

(1)is=malloc(n*sizeof(int)); js=malloc(n*sizeof(int));改為is=(int *)malloc(sizeof(int)*n);js=(int *)malloc(sizeof(int)*n);(2) i=brinv(*a,4); brmul(*b,*a,4,4,4,*c);我的可以執行了,呵呵

11樓:

下面是實現gauss-jordan法實矩陣求逆。

#include

#include

#include

int brinv(double a, int n)}if (d+1.0==1.0)

if (is[k]!=k)

for (j=0; j<=n-1; j++)if (js[k]!=k)

for (i=0; i<=n-1; i++)l=k*n+k;

a[l]=1.0/a[l];

for (j=0; j<=n-1; j++)if (j!=k)

for (i=0; i<=n-1; i++)if (i!=k)

for (j=0; j<=n-1; j++)if (j!=k)

for (i=0; i<=n-1; i++)if (i!=k)

}for (k=n-1; k>=0; k--)if (is[k]!=k)

for (i=0; i<=n-1; i++)}free(is); free(js);

return(1);

}void brmul(double a, double b,int m,int n,int k,double c)

return;

}int main(),,

,};static double b[4][4],c[4][4];

for (i=0; i<=3; i++)

for (j=0; j<=3; j++)

b[i][j]=a[i][j];

i=brinv(a,4);

if (i!=0)

printf("\n");

printf("mat a- is:\n");

for (i=0; i<=3; i++)

printf("\n");

printf("mat aa- is:\n");

brmul(b,a,4,4,4,c);

for (i=0; i<=3; i++)}}

c語言程式設計求矩陣乘積C語言程式設計求矩陣乘積。

include iostream.h void matrixchain int p,int n,int m,int s 根據具體問題型別,進行步驟拆解 原因原理分析 內容拓展等。具體步驟如下 導致這種情況的原因主要是 include stdio.h void main for i 0 i 2 i 輸...

c語言程式設計求33矩陣的轉置矩陣,C語言程式設計 求3 3矩陣的轉置矩陣

思路 定了兩個二維抄陣列分別儲存轉置前bai後的矩陣du,接著for迴圈依次轉zhi置即可。參考 include int main b 3 3 int i,j for i 0 i 3 i for j 0 j 3 j b j i a i j for i 0 i 3 i return 0 執行結dao果...

用c語言怎麼編寫輸入矩陣求其逆矩陣的程式

迴圈輸入矩陣元素,你想想求行列式的演算法,改一改就是求逆矩陣 通過 a e e a 1 這個初等變換來求逆矩陣。下面是實現gauss jordan法實矩陣求逆。include include include intbrinv double a,intn if d 1.0 1.0 if is k k ...