当前位置: 代码迷 >> C语言 >> [求助] 如何求两个行列式的积
  详细解决方案

[求助] 如何求两个行列式的积

热度:283   发布时间:2007-11-09 10:58:13.0
[求助] 如何求两个行列式的积
题目:求两个行列式的积? 用C程序实现
两个行列式的积的含义是?行列式就是个矩阵吧,也就可以理解为是一个二维数组吧,那么两个行列式的积怎么求呢?请大家指教了:)
搜索更多相关的解决方案: 行列式  矩阵  含义  

----------------解决方案--------------------------------------------------------

可以用二维数组来求解
两个行列式相乘,前一个的列一定等于后一个的行
你写两个FOR循环就搞定了
附:
两个矩阵相乘的源程序

/*****************A=B*C******************/
#include<stdio.h>
#include<conio.h>
#define X 3
#define Y 3

int a[X][Y];
int b[X][Y];
int c[X][Y];

void matrix(int b[][X],int c[][Y]);
main()
{
int i,j,temp;
clrscr();
printf("Please input int matrix b[%d][%d]\n",X,Y);
for(i=0;i<Y;i++)
for(j=0;j<Y;j++){
scanf("%d",&temp);
b[i][j]=temp;
}
printf("Please input int matrix c[%d][%d]\n",X,Y);
for(i=0;i<X;i++)
for(j=0;j<Y;j++){
scanf("%d",&temp);
c[i][j]=temp;
}
matrix(b,c);
printf("Now print resource matrix b[%d][%d]=",X,Y);
for(i=0;i<X;i++){
printf("\n");
for(j=0;j<Y;j++)
printf("%d ",b[i][j]);
}
printf("\n");
printf("Now print resource matrix c[%d][%d]=",X,Y);
for(i=0;i<X;i++){
printf("\n");
for(j=0;j<Y;j++)
printf("%d ",c[i][j]);
}
printf("\n");
printf("Now printm multiply results matrix a[%d][%d]=B*C:",X,Y);
for(i=0;i<X;i++){
printf("\n");
for(j=0;j<Y;j++)
printf("%d ",a[i][j]);
}
getch();
return 0;
}
/********************************************************************/
void matrix(int b[][X],int c[][Y])
{
int i,j,k,temp;
for(i=0;i<X;i++)
for(j=0;j<Y;j++){
for(k=0;k<Y;k++)
a[i][j]+=b[i][k]*c[k][j];
}
}


[此贴子已经被作者于2007-11-9 11:13:16编辑过]


----------------解决方案--------------------------------------------------------

都已经说了是行列式 说明是方阵,方阵的阶是一样的.


----------------解决方案--------------------------------------------------------

第一 行列式不是矩阵,它是矩阵通过某种运算得到的结果
比如 A=[1 0 0
0 1 0
0 0 1]
A的行列式就是: |A|=1;
第二 行列式的积 |A|*|B|,首先就是把A,B的行列式求出来。然后相乘就可以了。
(注意:行列式的乘积不是等于矩阵乘积的行列式的)
现在就是要去求行列式,
高等代数里面说了,n级行列式等于所有取自不同行不同列的的n个元素的乘积的代数和。

并且每一项(an1*an2*an3....ann,其中ni表示元素的下标)都带符号的(正负号);符号规则如下:
如果 n1,n2,n3...nn是偶排列,符号是正号
如果是奇排列,是负号。
第三 什么是奇,偶排列?
首先要讲什么是逆续.........
晕,实在太多了,你去找本高等代数看看吧,我讲不下去了......

[此贴子已经被作者于2007-11-9 11:20:51编辑过]


----------------解决方案--------------------------------------------------------
回复2楼,行列式的乘积不等于矩阵的乘积的
----------------解决方案--------------------------------------------------------
回复:(chmlqw)回复2楼,行列式的乘积不等于矩阵的乘...

请仔细看LZ的帖子
LZ问了,我当然把距阵的贴出来给他看看


----------------解决方案--------------------------------------------------------
回6楼
题目:求两个行列式的积? 用C程序实现
----------------解决方案--------------------------------------------------------
回4楼,行列式并不等于矩阵。那也就不能用简单的两个矩阵的乘积来做了。
看来这个算法挺麻烦的啊,关键是我对行列式乘积的原理弄不懂,真要找一本高数看看了
----------------解决方案--------------------------------------------------------

行列式的求解,我知道的有两种算法
第一,就是定义式,就是我上面说的。比较麻烦,我也说不清楚得。
第二,就是用初等行变换把他变成上(或者下)三角矩阵,然后对角线上元素想乘就可以了。
这个应该比较简单点。


----------------解决方案--------------------------------------------------------
哦 谢谢chmlqw。
----------------解决方案--------------------------------------------------------
  相关解决方案