算法(计算行列式的值)

算法一计算一般行列式
//行列式求值. cpp

include < cmath >

#include < iostream >
using namespace std ;
// a [ n ][ n ] 存放方阵 A 的元素。返回时被破坏
//函数返回行列式值
double sdet ( double a [], int n )
{ int i , j , k , is , js , l , u , V ;
double f , det , q , d ;
f =1.0; det =1.0;
for ( k =0; k <= n -2; k ++){ q =0.0;
for ( i = k ; i <= n -1; i ++)
for ( j = k ; j <= n -1; j ++)
{1= i * n + j ; d = fabs ( a [1]);
if ( d > q ){ q = d ; is = i ; js = j ;}

}
if ( q +1.0==1.0)
{det =0.0; return ( det );}
if ( is != k )
{f=-f;
for (j=k ; j <= n -1; j ++)
{u = k * n + j ; v = is * n + j;
d = a [ u ]; a [ u ]= a [ v ]; a [ v ]= d ;
n }
}
if ( js !=k )
{ f =- f ;
for ( i = k ; i <= n -1; i ++)
{ u = i * n + js ; v = i * n + k ;
d = a [ u ]; a [ u ]= a [ v ]; a [ v ]= d ;
}
}
1= k * n + k ;
det = det* a [1];
for ( j = k +1; j <= n -1; j++)
{ u = i * n + j ;
a [ u ]= a [ u ]- d * a [ k * n + j ];
}
}
}
det = f * det* a [n*n-1];
return ( det );

算法二
//矩阵求秩, cpp

include < cmath >

include < iostream >

using namespace std ;
// a [ m ][ n ]
存放mxn 阶矩阵 A 的元素。返回时将被破坏
//函数返回 A 的秩
int rank ( double a [], int m , int n )
( int i , j , k , nn , is , js ,1,1l, u , V ;
double q,d;
if ( m >= n ) nn = n ;
k =0;
for (1=0; l <= nn -1;1++)
{ q =0.0;
for ( i =1; i <= m -1; i ++)
for (=1; j <= n -1; j ++)
{11= i n + j ; d = fabs ( a [11]);
if ( d > q ){ q = d ; is = i ; js = j ;
}
if ( q +1.0==1.0) return ( k );
k = k +1;
if ( is!=1)
( for ( j =1; j <= n -1; j ++)
{ u = l * n + j ; v = is * n + j ;
d = a [ u ]; a [ u ]= a [ v ]; a [ v ]= d ;
}
}
if (js !=1)
{ for ( i = l ; i <= m -1; i ++)
{ u = i * n + js ; v = i n + l ;
d = a [ u ]; a [ u ]= a [ v ]; a [ v ]= d ;
}
}
11=1* n +1;
for (i=1+1; i <= n -1; j ++)
{ d = a [ i * n +11/a[11];
for ( j =1+1; j <= n -1; j ++)( u = i n + j ;
a [ u ]= a [ uJ - d * a [1* n + j ];
}
}
}
return ( k );
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值