public class Main {
public static void main
(String[] args
) {
int n = 3;
double[][] a = {
{3, 6, -9, 15},
{2, 4, -6, 10},
{-2, -3, 4, -6}
};
System.
out.
println("Initial Augmented Matrix:"); printMatrix(a);
for (int i = 0; i < n; i++) {
System.
out.
println("\nPivot at row " + (i
+1));
for (int k = i + 1; k < n; k++) {
double factor = a[k][i] / a[i][i];
System.
out.
printf("R%d = R%d - (%.3f)*R%d\n",
k+1, k+1, factor, i+1);
for (int j = i; j <= n; j++) {
a[k][j] -= factor * a[i][j];
}
}
System.
out.
println("Matrix after elimination in column " + (i
+1) + ":"); printMatrix(a);
}
System.
out.
println("\nUpper Triangular Matrix:"); printMatrix(a);
double[] x = new double[n];
System.
out.
println("\n--- Back Substitution Steps ---");
for (int i = n - 1; i >= 0; i--) {
x[i] = a[i][n];
for (int j = i + 1; j < n; j++) {
x[i] -= a[i][j] * x[j];
}
x[i] /= a[i][i];
System.
out.
printf("x%d = %.6f\n", i
+ 1, x
[i
]); }
System.
out.
println("\nFinal Solution:"); for (int i = 0; i < n; i++) {
System.
out.
printf("x%d = %.6f\n", i
+ 1, x
[i
]); }
}
static void printMatrix(double[][] a) {
for (double[] row : a) {
for (double val : row) {
System.
out.
printf("%10.3f ", val
); }
}
}
}
cHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoKICAgICAgICBpbnQgbiA9IDM7ICAKCiAgICAgICAgZG91YmxlW11bXSBhID0gewogICAgICAgICAgICB7MywgNiwgLTksIDE1fSwKICAgICAgICAgICAgezIsIDQsIC02LCAxMH0sCiAgICAgICAgICAgIHstMiwgLTMsIDQsIC02fQogICAgICAgIH07CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW5pdGlhbCBBdWdtZW50ZWQgTWF0cml4OiIpOwogICAgICAgIHByaW50TWF0cml4KGEpOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuUGl2b3QgYXQgcm93ICIgKyAoaSsxKSk7CgogICAgICAgICAgICBmb3IgKGludCBrID0gaSArIDE7IGsgPCBuOyBrKyspIHsKICAgICAgICAgICAgICAgIGRvdWJsZSBmYWN0b3IgPSBhW2tdW2ldIC8gYVtpXVtpXTsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCJSJWQgPSBSJWQgLSAoJS4zZikqUiVkXG4iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsrMSwgaysxLCBmYWN0b3IsIGkrMSk7CgogICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGk7IGogPD0gbjsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgYVtrXVtqXSAtPSBmYWN0b3IgKiBhW2ldW2pdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdHJpeCBhZnRlciBlbGltaW5hdGlvbiBpbiBjb2x1bW4gIiArIChpKzEpICsgIjoiKTsKICAgICAgICAgICAgcHJpbnRNYXRyaXgoYSk7CiAgICAgICAgfQoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVXBwZXIgVHJpYW5ndWxhciBNYXRyaXg6Iik7CiAgICAgICAgcHJpbnRNYXRyaXgoYSk7CgogICAgICAgIGRvdWJsZVtdIHggPSBuZXcgZG91YmxlW25dOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4tLS0gQmFjayBTdWJzdGl0dXRpb24gU3RlcHMgLS0tIik7CgogICAgICAgIGZvciAoaW50IGkgPSBuIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICAgICAgeFtpXSA9IGFbaV1bbl07CgogICAgICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCBuOyBqKyspIHsKICAgICAgICAgICAgICAgIHhbaV0gLT0gYVtpXVtqXSAqIHhbal07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHhbaV0gLz0gYVtpXVtpXTsKCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCJ4JWQgPSAlLjZmXG4iLCBpICsgMSwgeFtpXSk7CiAgICAgICAgfQoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuRmluYWwgU29sdXRpb246Iik7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGYoInglZCA9ICUuNmZcbiIsIGkgKyAxLCB4W2ldKTsKICAgICAgICB9CiAgICB9CgogICAgc3RhdGljIHZvaWQgcHJpbnRNYXRyaXgoZG91YmxlW11bXSBhKSB7CiAgICAgICAgZm9yIChkb3VibGVbXSByb3cgOiBhKSB7CiAgICAgICAgICAgIGZvciAoZG91YmxlIHZhbCA6IHJvdykgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGYoIiUxMC4zZiAiLCB2YWwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgICAgIH0KICAgIH0KfQo=