小白求助 如何计算矩阵行列式的值?
请问计算矩阵行列式的值的程序该怎么写?{:10_289:}
你到底是求行列式的值 还是求增广矩阵对应的线性方程组的解
行列式的值np.linalg.det
增广矩阵求解np.linalg.solve #include <stdio.h>
#include <math.h>
#define MAX 100
double D(double arr[], int n);
void Display(double arr[], int n);
void main()
{
double arr;
double bak;
double value;
int n;
int i,j,k,c;
printf("Please enter matrix size n(1 <= n < 20):");
scanf("%d",&n);
printf("Please input matrix line by line:\n");
for(i = 0;i < n;i++)
{
for(j = 0;j < n;j++)
{
scanf("%lf",&arr);
}
}
printf("matrix a:\n");
Display(arr,n);
/* 保存D(0,i)的值到bak中 */
for(i = 0;i < n;i++) /* 处理第1行的每一列元素 */
{
for(j = 1;j < n;j++) /* 逐行处理 */
{
for(c = 0,k = 0;k < n;k++) /* 逐列处理 */
{
if(k == i)
{
continue;
}
bak = arr;
}
}
value = D(bak,n-1);
printf("Submatrix:\n");
Display(bak,n-1);
printf("DValue of the Submatrix is %f\n",D(bak,n - 1));
}
value = D(arr,n);
printf("result = %f\n",value);
}
double D(double arr[],int n)
{
double bak;
int i,j,k,c;
double sum = 0;
if(n == 1)
{
return arr;
}
for(i = 0;i < n;i++) /* 处理第1行的每一列元素 */
{
for(j = 1;j < n;j++) /* 逐行处理 */
{
for(c = 0,k = 0;k < n;k++)/* 逐列处理 */
{
if(k == i)
{
continue;
}
bak = arr;
}
}
/* 计算arr(row,col) * D(row,col)的值 */
sum += (i % 2 == 0 ? 1 : -1) * arr * D(bak,n - 1);
}
return sum;
}
void Display(double arr[],int n)
{
int i,j;
printf("");
for(i = 0;i < n;i++)
{
for(j = 0;j < n;j++)
{
printf("%10.1lf",arr);
}
printf("\n");
}
} 帮你顶 如果满意了,回来选个最佳答案哈~~你这个举手之劳的动作不需要你付出任何(鱼币、荣誉值、积分),由系统给我们进行奖励:鱼币+3,荣誉+2,技术+1 还没满意?帮你顶上去 还有什么不满意的,你倒是说话呀 风过无痕1989 发表于 2020-10-17 14:40
还有什么不满意的,你倒是说话呀
不好意思我才看到,我明白了谢谢
eobeom 发表于 2020-10-17 19:48
不好意思我才看到,我明白了谢谢
明白了,就给个最佳答案呀
页:
[1]