算法系列 您所在的位置:网站首页 为什么矩阵不能消去 算法系列

算法系列

2024-06-29 16:59| 来源: 网络整理| 查看: 265

先举个例子把:

从百度知道直接copy的:

高斯消去法,解二元一次方程组。 ax+by=mL【1】 cx+dy=nL【2】 (其中x,y为未知量) 答:ax+by=mL【1】 cx+dy=nL【2】 当其系数行列式不等于0时有唯一解,即就是放ad-bc不等于0是有唯一解 且x=mld-nlb/ad-bc   y=nla-mlb/ad-bc

对于二阶,我们要得到的就是   ad-bc的值,

对于三阶及以上,我们需要得到的是主对角线上的乘积 

那么我们的思路就是先将矩阵变成   上三角矩阵最好了

public static double det(double[][] a) { double k = 0; double arrangerResult = 1.0; for (int p = 0; p < a[0].length - 1; p++) { for (int r = p + 1; r < a.length; r++) { k = a[r][p] / a[p][p]; a[r][p] = 0; for (int c = p + 1; c < a[0].length; c++) { a[r][c] = a[r][c] - k * a[p][c]; } System.out.println("--------------------------------"); print(a); } System.out.println("--------------------------------"); print(a); } System.out.println("--------------------------------"); print(a); // 计算主对角线相乘的结果 for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[0].length; j++) { if (i == j) { arrangerResult = arrangerResult * a[i][j]; } } } return arrangerResult; } 看看跟踪的过程,对实现过程就非常的清楚了:

-------------------------------- 1.0 2.0 3.0 0.0 -3.0 -6.0 7.0 8.0 9.0 -------------------------------- 1.0 2.0 3.0 0.0 -3.0 -6.0 0.0 -6.0 -12.0 -------------------------------- 1.0 2.0 3.0 0.0 -3.0 -6.0 0.0 -6.0 -12.0 -------------------------------- 1.0 2.0 3.0 0.0 -3.0 -6.0 0.0 0.0 0.0 -------------------------------- 1.0 2.0 3.0 0.0 -3.0 -6.0 0.0 0.0 0.0 -------------------------------- 1.0 2.0 3.0 0.0 -3.0 -6.0 0.0 0.0 0.0 -0.0 返回的结果是0,也就是对于矩阵

1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0

所对应的三元方程组是没有唯一解的



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有