for (i = N - 1; i >= 0; i--) {
a[i][N] = a[i][N] / a[i][i]; //d = a[2][3] / a[2][2]
for (j = i + 1; j < N; j++)
a[i][N] = a[i][N] - a[i][j] * a[i][N] / a[i][i];
のi=1,N=3,j=2の時、計算結果が-6.6666...となるのですが、
答えでは-0.444444となります。
d=a[1][3]/a[1][1]によりd=4とでます。
4-a[1][2]*a[1][3]/a[1][1]により-20/3= -6.6666...とでました。
計算過程のどこが間違ったのでしょうか?
載せて頂きました画像のように式が出来ると思うのですが、合っているでしょうか?
また、計算結果が出るまでの過程が知りたいので配列に実数をいれて解説していただけないでしょうか?
全体のプログラムは以下の通りです。
#include <iostream>
#include <stdio.h>
// 元の数定義
#define N 3 // 3
using namespace std;
//double a[N][N+1];
// 係数
static double a[N][N + 1] = {
{ 1.0, 2.0, 8.0, 4.0},
{ 4.0, 3.0, 2.0, 12.0},
{ 1.0, 4.0, 2.0, 4.0},
};
int main()
{
double d;
int i;
int j;
for (i = N - 1; i >= 0; i--) {
d = a[i][N] / a[i][i]; //d = a[2][3] / a[2][2]
for (j = i + 1; j < N; j++)
a[i][N] = d - a[i][j] * a[i][N] / a[i][i];
printf("%f\n", a[i][N]);
}
for (i = N - 1; i >= 0; i--) {
a[i][N] = a[i][N] / a[i][i]; //d = a[2][3] / a[2][2]
for (j = i + 1; j < N; j++)
a[i][N] = a[i][N] - a[i][j] * a[i][N] / a[i][i];
printf("%f\n", a[i][N]);
}
return 0;
}
実行結果
4.000000
-4.000000
36.000000
2.000000
-0.444444
252.000000
i=1,N=3,j=2の時、計算結果が-6.6666...となるのですが、
答えでは-0.444444となります。
d=a[1][3]/a[1][1]によりd=4とでます。
4-a[1][2]*a[1][3]/a[1][1]により-20/3= -6.6666...とでました。と書きましたが、誤りがありました。
4-(24/3)より4-8=-4となりますが、実際の答えは-0.444444と出てきました。
プログラムの過程の処理が理解できていないのだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vb6.0で三角関数が使えない
-
変化させるセルが変化しない
-
やってみてもわからないので教...
-
C# 計算処理中に実行中ウィン...
-
MATLABの積分について
-
C言語で、漸化式を使ってパスカ...
-
スライムがつぶれていく様子を...
-
絶対ち
-
VBAの再計算が反映されない件に...
-
JavaScriptでSQLiteの値を使いたい
-
Excel VBAの残業時間の合計計算...
-
VBでReplace
-
Java 電卓の連続計算
-
あのコンピュータアーキテクチ...
-
60進数の四則計算
-
バッチファイルでウインドウを...
-
スパイダソリティアの問題
-
MathematicaのNDSolveで連立常...
-
65536は2の何乗なのでしょうか?
-
素数を自動的に作る
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
C言語の課題で、1年の秒数を計...
-
バッチファイルでウインドウを...
-
骨折リスク評価のFRAXについて...
-
変化させるセルが変化しない
-
CとFORTRANの計算速度はどちら...
-
なぜオーバーフローになるので...
-
数値計算の高速化 (cos, sin, exp)
-
モジュラス103の計算とは何でし...
-
C# 計算処理中に実行中ウィン...
-
モジュロ
-
引き放し法による除算アルゴリ...
-
60進数の四則計算
-
C言語についてです。 再帰を使...
-
Perlで時間の計算
-
CRC8を教えてください
-
傾いた四角形内の範囲の条件式
おすすめ情報