0

Javaでプロジェクトをやっています。Gauss Jordain アルゴリズムを使用して、行列のどの行と列が線形独立しているか、独立したものの線形結合であるかを見つけます。行と列でランクを見つけることができます。

しかし、私が本当に必要としているのは、依存する行と列を独立した行と列の線形結合として生成する係数を見つけることです。

答えは Gauss Jordain を修正したり、すべての乗算係数と除算係数を追跡したりすることだと思いますが、私の脳はそれを行う方法に固執しています。

基本的な機能は、階層型の行への縮小であり、その上に他の機能を構築します。

    public static void toRREF(double[][] M) {
        int rowCount = M.length;
    if (rowCount == 0)          
    return;
    int columnCount = M[0].length;
    int lead = 0;
    for (int r = 0; r < rowCount; r++) {
      if (lead >= columnCount)
      break;
        {
         int i = r;
         while (M[i][lead] == 0) {
           i++;
           if (i == rowCount) {
        i = r;
        lead++;
        if (lead == columnCount)
        return;
           }
         }
         double[] temp = M[r];
         M[r] = M[i];
             M[i] = temp;
        }
        {
        double lv = M[r][lead];
        for (int j = 0; j < columnCount; j++)
        M[r][j] /= lv;
        }
        for (int i = 0; i < rowCount; i++) {
            if (i != r) {
                double lv = M[i][lead];
                for (int j = 0; j < columnCount; j++)
                M[i][j] -= lv * M[r][j];
            }
        }
        lead++;
    }
}
4

1 に答える 1

0

線形従属の列/行ごとに次の連立方程式を解きたいとします。

B * c = R

ここで、B は基底 (独立) ベクトルの行列で、c はこれらの未知の係数の列ベクトルです。R は、現在見ている行です。

Guass-Jordan による基底が既にあるとすると、連立一次方程式を解く方法を調べてください。見つけた係数ベクトル c は、基底ベクトルを結合して他の従属ベクトルを与える線形方程式です。

于 2013-01-21T11:10:36.490 に答える