Now we assemble a module cgmeth for solving simultaneous equations. Starting with the conjugate-direction module cgstep_mod we insert the module matmult as the linear operator. cgmethdemonstrate CD
Below shows the solution to set of simultaneous equations. Observe that the ``exact'' solution is obtained in the last step. Because the data and answers are integers, it is quick to check the result manually.
d transpose
3.00 3.00 5.00 7.00 9.00
F transpose
1.00 1.00 1.00 1.00 1.00
1.00 2.00 3.00 4.00 5.00
1.00 0.00 1.00 0.00 1.00
0.00 0.00 0.00 1.00 1.00
for iter = 0, 4
x 0.43457383 1.56124675 0.27362058 0.25752524
res -0.73055887 0.55706739 0.39193487 -0.06291389 -0.22804642
x 0.51313990 1.38677299 0.87905121 0.56870615
res -0.22103602 0.28668585 0.55251014 -0.37106210 -0.10523783
x 0.39144871 1.24044561 1.08974111 1.46199656
res -0.27836466 -0.12766013 0.20252672 -0.18477242 0.14541438
x 1.00001287 1.00004792 1.00000811 2.00000739
res 0.00006878 0.00010860 0.00016473 0.00021179 0.00026788
x 1.00000024 0.99999994 0.99999994 2.00000024
res -0.00000001 -0.00000001 0.00000001 0.00000002 -0.00000001