回答編集履歴

2

修正

2018/08/01 21:33

投稿

asm
asm

スコア15147

test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  i = 0;
70
70
 
71
- double d = a[i][3] / a[i][i];
71
+ d = a[i][3] / a[i][i];
72
72
 
73
73
  j = 1; a[i][N] = d - a[i][j]*a[j][N]/a[i][i];
74
74
 

1

追記

2018/08/01 21:33

投稿

asm
asm

スコア15147

test CHANGED
@@ -21,3 +21,63 @@
21
21
  `(x+y+z) / w = x/w + y/w + z/w`
22
22
 
23
23
  という展開は無駄でしかない
24
+
25
+
26
+
27
+ ---
28
+
29
+
30
+
31
+ **追記**
32
+
33
+
34
+
35
+ とりあえず、前回の計算式
36
+
37
+ `a[i][N] = (a[i][N]-なにか) / a[i][i]`を思い出す。
38
+
39
+ 分配する
40
+
41
+ `a[i][N] = a[i][N]/a[i][i] - なにか/a[i][i]`
42
+
43
+ あとはそれに従ってプログラムに変換するだけ
44
+
45
+
46
+
47
+ ---
48
+
49
+
50
+
51
+ > for (i = N - 1; i >= 0; i--) {
52
+
53
+ > d = a[i][N]/ a[i][i];
54
+
55
+ > for (j = i + 1; j < N; j++)
56
+
57
+ > a[i][N] = d- a[i][j] * a[j][N] / a[i][i];
58
+
59
+ > }
60
+
61
+
62
+
63
+ このfor文をi=0,N=3で展開すると
64
+
65
+
66
+
67
+ ```c
68
+
69
+ i = 0;
70
+
71
+ double d = a[i][3] / a[i][i];
72
+
73
+ j = 1; a[i][N] = d - a[i][j]*a[j][N]/a[i][i];
74
+
75
+ j = 2; a[i][N] = d - a[i][j]*a[j][N]/a[i][i];
76
+
77
+ ```
78
+
79
+
80
+
81
+ みたいな感じ
82
+
83
+ `j=1`の時の計算が丸ごと捨てられています。