![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
連立方程式を解くプログラムで前進消去の部分はできたのですが、後退代入の所がうまくいきません。教えて!gooを通して皆さまの力をお借りできればと思います。よろしくお願いいたします。
import java.io.*;
import java.util.*;
import java.math.*;
//連立方程式を解くプログラム
class krm3{
public static void main(String args[]){
System.out.println("連立方程式を求めます。");
//declaring and allocating2>
double[][] A = null;
try{
BufferedReader br = new BufferedReader (new FileReader("renritu.txt"));
String s;
String[] vals;
int rows = 0,cols = 0;
while((s = br.readLine()) !=null){
vals = s.split(" ");//split the line with space
cols = Math.max(cols,vals.length);
rows++;
}
System.out.println(rows+"×"+cols+" array found");
A = new double[rows][cols];
br.close();
br = new BufferedReader(new FileReader("renritu.txt"));
rows = cols = 0;
while((s = br.readLine()) !=null){
vals =s.split(" ");//split the line with space
cols = vals.length;
for(int i=0; i<cols;i++)
A[rows][i]=Double.parseDouble(vals[i]);
rows++;
}
}catch (IOException e){
System.out.println(e);
}
for(int i = 0;i<A.length;i++){
for(int j=0;j<A[i].length;j++){
System.out.print(A[i][j]+" ");
}
System.out.println();
}
System.out.println();
//掃き出し法
//前進消去
//行i=0~n-2に対してi+1行目以降のi列目を消去する(ただしnは行の数)
// //i行目をピポッド(i,i)で正規化(割る)
// 1行目に(j,i)要素をかけてj行目から引く
for(int i = 0;i<A.length-1;i++){
double P = A[i][i];//pivot
for(int j=0;j<A[i].length;j++)
A[i][j]/= P;
for(int k=i+1;k<A.length;k++){
double v = A[k][i];
for(int j=0;j<A[i].length;j++){
A[k][j]-= A[i][j]*v;
}
}
}
for(int i = 0;i<A.length;i++){
for(int j=0;j<A[i].length;j++){
System.out.print(A[i][j]+" ");
}
System.out.println();
}
System.out.println();
// eqs=
// 1 2 3 4
// 0 1 7 8
// 0 0 1 2
//後退代入
//行i=n-1~1に対してi-1行目以前のi列目を消去する
for(int i = A.length;2<i;i--){
double P2 = A[i-1][i-1] ;//pivot
for(int j=A[i-1].length;j>2;j--)
A[i-1][j-1]/= P2;
for( int k=i-1;k>2;k--){
double v2 = A[k-1][i-1];
for(int j=A[i].length;j>2;j--){
A[k][j]-= A[i][j]*v2;
}
}
}
for(int i = 0;i<A.length;i++){
for(int j=0;j<A[i].length;j++){
System.out.print(A[i][j]+" ");
}
System.out.println();
}
System.out.println();
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Ruby vscode 文字化け 1 2022/05/21 19:17
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
countに実行した回数をいれたい...
-
DataGridView.Sortに入れる引き数
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
javaで数独を解くプログラムに...
-
2次元配列の並び替え
-
Randomメソッドの確率設定
-
3つの値の中間値を求める
-
7つ数字を表示したら改行すると...
-
総称型ArrayList<E>への参照...
-
階乗
-
java キーボード入力された値の...
-
学校で課題を出されて困ってい...
-
連立方程式を解くプログラムの...
-
繰り返しによる星印の出力
-
javaのプログラム
-
JAVAのfor文で困っています。
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
JSPやサーブレットでSystem.out...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
java キーボード入力された値の...
-
テキストボックスに入力された...
-
論理演算子”||”またはの入力方法
-
総称型ArrayList<E>への参照...
-
7つ数字を表示したら改行すると...
-
Ctrl+Zが入力されると終了する...
-
countに実行した回数をいれたい...
-
キーボードから10人分の点数を...
-
Java、2の0乗~10乗の表示
-
Randomメソッドの確率設定
-
数値⇒漢数字変換 java
-
コマンドライン引数の例外処理...
-
Java 入力した整数値の合計を、...
-
javaのエラーが回収できない
-
2つのスクロールバーを連動させ...
-
階乗の式
-
C#の質問
-
Java キーボードから負の数が入...
おすすめ情報