四阶行列式的计算方法:
第1步:把2、3、4列加到第1列,提衡消悔出第1列公因子10,化为
1 2 3 4
1 3 4 1
1 4 1 2
1 1 2 3
第2步:第1行乘-1加到其余各行,得
1 2 3 4
0 1 1 -3
0 2 -2 -2
0 -1 -1 -1
第3步:r3 - 2r1,r4+r1,得
1 2 3 4
0 1 1 -3
0 0 -4 4
0 0 0 -4
所以行列式=10* (-4)*(-4) = 160。
行列式的性质:
1、行列式A中某行(或列)用同一数k乘,其结果等于kA。
2、行列式A等于其转置行列式AT(AT的第i行为A的第i列)。
3、若n阶行列式|αij|中某行(或列);行列式则|αij|是两咐正个行列式的和,这两个行列式的第i行(或列),一个是b1,b2,…,bn;另一个是с1,с2,…,сn;其余各行(或列)上的元与|αij|的完全一样。
4、行列式A中两行(或列)互换,其结果等于-A。⑤把行列式A的某行(或列)中各元同乘一数后加到另一行(或列)中各对应元上桥拿,结果仍然是A。
#include <stdio.h>#include <stdlib.h>
void fun3(float *,int)
float fun4(float *,int)
void main()
{
int i,j,n
float *a,answer
for(i=0i<3i++)
printf("<----------------------------------------------------------------------------->\n")
printf(" 欢迎进入*雒森*行列式计算程序,请准确输入以便我为您正确计算! \n")
for(i=0i<3i++)
printf("<----------------------------------------------------------------------------->\n")
do
{
printf("请纯枯输入您要计算的行列式的行数或列数n(n>1):")
scanf("%d",&n)
}while(n<2)
a=(float *)malloc(n*n*sizeof(float))
for(i=0i<ni++)
{
printf("请输入您要计算的行列式的:\n")
for(j=0j<nj++)
{
printf("第%d行%d列:",i+1,j+1)
scanf("%f",&a[i*n+j])
}
}
fun3(a,n)
answer=fun4(a,n)
printf("您要计算的行列式的值为:%.3f\n\n\n"做隐洞,answer)
for(i=0i<3i++)
printf("<----------------------------------------------------------------------------->\n")
printf(" 欢迎进入*雒森携敬*行列式计算程序,请准确输入以便我为您正确计算! \n")
for(i=0i<3i++)
printf("<----------------------------------------------------------------------------->\n")
}
void fun3(float a[],int n)
{
int i,j,d,f
float m=1,w
for(j=0j<nj++)
{
for(i=0i<ni++)
{
if(a[j*n+j]==0)
{
for(d=j+1d<nd++)
{
if(a[d*n+j]!=0)
break
}
for(f=jf<nf++)
a[j*n+f]+=a[d*n+f]*m
}
if(i!=j)
{
w=-(a[i*n+j]/a[j*n+j])
for(f=jf<nf++)
a[i*n+f]+=a[j*n+f]*w
}
}
}
}
float fun4(float a[],int n)
{
int i
float answer=1
for(i=0i<ni++)
answer*=a[i*n+i]
return answer
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)