首页 > 编程知识 正文

怎么用余子式求行列式,行列式错位展开

时间:2023-05-04 08:56:02 阅读:108379 作者:710

用C语言计算n次行列式值的方法是众所周知的,通过代数余式展开可以降低行列式的阶数,从而简化问题。

任意n次矩阵可以变换为二次行列式的线性和。 利用该原理,采用递归算法。 效率还可以吧。

#includestdio.h//在下一行intNJ(int*p,int n ) ) /递归为二阶行列式if(n==2) /首先为二阶return*(p3 ) (p )-) ) p intal=(n-1 ) * ) n-1 ); int ne[al]; //打算搭载新的行列式for来拿(intq=0; qn; 遍历q ()//第1行的i=0的num=0; 初始化//for (intk=0; kn*n; k ) (/此循环为剩余式if(k==n*Iqkn*n ) ) I; 连续;//因为在第1行展开,所以第1行全部是elseif(kn ) ) {continue; (//这两行是具有元素“删除”的列的elseif(kn*n ) ) ne[num]=* ) PK ); //得到余式,即降阶的行列式num; 连续; }if(q%2==0) sum=* ) pq ) NJ ) ne,n-1 ); //计算剩余表达式前面的符号elsesum-=*(pq ) NJ ) ne,n-1 ) }返回sum; }}int main () ) {int n; scanf('%d ',n ); int all=n*n; int a[all]; for(intI=0; in*n; I ) scanf('%d ',a[i]; //将矩阵写成一维printf('%d”,NJ ) a,n ); 返回0; }

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