/* * <日付を入力> * 例題6.6 * 連立一次方程式の数値解法のクラス * Gaussの消去法,Gauss-Jordan法,逆行列計算を実装 */ public class LinearEquationSolver3 { // フィールド int degree; // 正方行列の次数 double [][] coefficient_matrix; // 係数行列 double [] unknown_vector; // 未知ベクトル double [] known_vector; // 既知ベクトル // コンストラクタ LinearEquationSolver3(int n, double [][] matrix, double [] vector1, double [] vector2) { degree = n; // 正方行列の次数を代入 coefficient_matrix = matrix; // 係数行列を代入 unknown_vector = vector1; // 解(未知)ベクトルを代入 known_vector = vector2; // 既知ベクトルを代入 } // コンストラクタ LinearEquationSolver3(int n, double [][] matrix) { degree = n; // 正方行列の次数を代入 coefficient_matrix = matrix; // 係数行列を代入 } // Gaussの消去法を行うメソッド public double [] calculateGE() { // GE: Gaussian Elimination double pivot; // ピボット double solution_element; // 未知ベクトルの各解要素 double coefficient_element; // 係数ベクトルの各係数要素 // Gaussの消去法の計算 // 前進消去 for (int k=0; k=0; --k) { // k行の定数ベクトルをsolution_elementに代入する. solution_element = known_vector[k]; // 未知ベクトルのj行の値をk行の方程式に代入し, // 未知ベクトルのk行目を計算する. for (int j=k+1; j