teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

編集

2018/07/25 08:47

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -5,8 +5,8 @@
5
5
  { 5.0, 4.0, 7.0, 1.0, -1.0}(3)
6
6
  { 9.0, 7.0, 3.0, 5.0, 4.0}(4)
7
7
  (2)-(1)*-2/1,(3)-(1)*-5/1より
8
- {0,9,0,5,-1}(5)
8
+ ~~{0,9,0,5,-1}~~{0, 1, 14, -11, 19}(5)
9
- {0,14,-8,21,-26}(6)が得られますが、{0,9,0,5,-1},{0,14,-8,21,-26}の置いてある位置、というか保存先は{0=(1,0),9=(1,1),0=(1,2),5=(1,3),-1=(1,4)}(2)´
9
+ {0,14,-8,21,-26}(6)が得られますが、~~{0,9,0,5,-1}~~{0, 1, 14, -11, 19},{0,14,-8,21,-26}の置いてある位置、というか保存先は{0=(1,0),9=(1,1),0=(1,2),5=(1,3),-1=(1,4)}(2)´
10
10
  {0=(2,0),14=(2,1),-8=(2,2),21=(2,3),-26=(2,4)}(3)´となっているのでしょうか?
11
11
  計算後の係数のデータがどこにいくのかわかりませんでした。
12
12
  その後の計算は

4

編集

2018/07/25 08:47

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -125,4 +125,21 @@
125
125
  }
126
126
  ```
127
127
  参考にしたサイトはこちらです。
128
- [https://www.mk-mode.com/octopress/2013/09/24/cpp-simultaneous-equation-by-gauss-elimination/](https://www.mk-mode.com/octopress/2013/09/24/cpp-simultaneous-equation-by-gauss-elimination/)
128
+ [https://www.mk-mode.com/octopress/2013/09/24/cpp-simultaneous-equation-by-gauss-elimination/](https://www.mk-mode.com/octopress/2013/09/24/cpp-simultaneous-equation-by-gauss-elimination/)
129
+
130
+ **7/25(16:54)<編集>**
131
+ ```
132
+ for (k = 0; k < N -1; k++) {
133
+ for (i = k + 1; i < N; i++) {
134
+ d = a[i][k] / a[k][k];
135
+ for (j = k + 1; j <= N; j++)
136
+ a[i][j] -= a[k][j] * d;
137
+ }
138
+ }
139
+ ```
140
+ の部分での過程の処理を実際に書いてみたのですが、うまく計算過程が書けませんでした。
141
+ ```
142
+ k=0,i=1,d = a[1][0] / a[0][0],a[1][1] =a[1][1] - a[0][1] * a[1][0] / a[0][0]
143
+ ```となります。
144
+ この後a[0][1]に a[1][0] / a[0][0]を掛けているということは(0,0)は0として無いもののように扱いa[i][j] -= a[k][j] * dのjの値を(j <= Nの範囲で)変えながら計算してi行に存在する項を消して計算しているのでしょうか?
145
+ わかりにくくて申し訳ありません。どうしても理解したいと思い、何度も紙に書いて計算を行っています。

3

編集

2018/07/25 08:46

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  最後にプログラムのfor (j = k + 1; j <= N; j++)
16
16
  a[i][j] -= a[k][j] * d;
17
- の部分がi行-k行*aik/akkを表していると思うのですが、for (j = k + 1; j <= N; j++)によって a[i][j] -= a[k][j] * d;のa[k][j]のjが変化してある行にる係数すべてにaik/akkを掛けられるということでしょうか?
17
+ の部分がi行-k行*aik/akkを表していると思うのですが、for (j = k + 1; j <= N; j++)によって a[i][j] -= a[k][j] * d;のa[k][j]のjが変化してある行に存在する係数すべてにaik/akkを掛けられるということでしょうか?
18
18
 
19
19
  過程の計算処理がわからないプログラムは以下の部分です。
20
20
  ```

2

編集

2018/07/25 07:46

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  連立方程式の計算過程は紙に書けば解くことができるのでわかるのですが、プログラムの計算の過程が紙に書いて計算してみたのですがうまく理解できません。
2
- 質問は2つあります。
2
+ 質問は3つあります。
3
3
  { 1.0, -2.0, 3.0, -4.0, 5.0}(1)
4
4
  {-2.0, 5.0, 8.0, -3.0, 9.0}(2)
5
5
  { 5.0, 4.0, 7.0, 1.0, -1.0}(3)
@@ -12,6 +12,10 @@
12
12
  その後の計算は
13
13
  {0,14,-8,21,-26}-{0,9,0,5,-1}*-14/9を行うのでしょうか?
14
14
 
15
+ 最後にプログラムのfor (j = k + 1; j <= N; j++)
16
+ a[i][j] -= a[k][j] * d;
17
+ の部分がi行-k行*aik/akkを表していると思うのですが、for (j = k + 1; j <= N; j++)によって a[i][j] -= a[k][j] * d;のa[k][j]のjが変化してある行にある係数すべてにaik/akkを掛けられるということでしょうか?
18
+
15
19
  過程の計算処理がわからないプログラムは以下の部分です。
16
20
  ```
17
21
  // 前進消去

1

hennsyuu

2018/07/25 01:33

投稿

carnage0216
carnage0216

スコア194

title CHANGED
File without changes
body CHANGED
File without changes