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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
エクセル以外で麻雀の成績を管...
-
変化させるセルが変化しない
-
モジュロ
-
VBAの再計算が反映されない件に...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
VBでReplace
-
バッチファイルでウインドウを...
-
EXCELなどで「返す」という表現
-
継承元と継承先での変数
-
Javascrptの0の掛け算
-
エクセルで特定のセルのみを任...
-
切捨て関数を使わずに小数第2...
-
排他的論理和 BCC(水平パリテ...
-
計算量オーダーについて O(1/n...
-
パルスを時間(m/min)の計算につ...
-
順列のプログラムについて(VB)
-
スレッド処理からダイアログを...
-
2次元ラプラス方程式を差分法で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
なぜオーバーフローになるので...
-
VB6で正確なミリ秒を計測したい...
-
VBでReplace
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
CRC8を教えてください
-
VBAで関数をつくる
-
Excel VBAの残業時間の合計計算...
-
等高線を計算したい
おすすめ情報