# Name : Ananda Das;
# ID : 230241053;
# Lab : 3 , Problem : 03;
def gauss_jordan( ) :
n = int ( input ( "Enter the order of square matrix: " ) )
print ( "Enter the elements of augmented matrix row-wise:" )
a = [ ]
for i in range ( n) :
row = list ( map ( float , input ( ) .split ( ) ) )
a.append ( row)
for i in range ( n) :
if a[ i] [ i] == 0.0 :
for j in range ( i+1 , n) :
if a[ j] [ i] != 0.0 :
a[ i] , a[ j] = a[ j] , a[ i]
break
pivot = a[ i] [ i]
for j in range ( n + 1 ) :
a[ i] [ j] /= pivot
for k in range ( n) :
if k != i:
factor = a[ k] [ i]
for j in range ( n + 1 ) :
a[ k] [ j] -= factor * a[ i] [ j]
print ( "\n Final Row-Echelon Form [A|B]:" )
for row in a:
for val in row:
print ( f"{val:.4f}" , end= " " )
print ( )
print ( "\n The solution is:" )
for i in range ( n) :
print ( f"x{i+1} = {a[i][n]:.6f}" )
gauss_jordan( )
IyBOYW1lIDogQW5hbmRhIERhczsKIyBJRCA6IDIzMDI0MTA1MzsKIyBMYWIgOiAzICwgUHJvYmxlbSA6IDAzOwpkZWYgZ2F1c3Nfam9yZGFuKCk6CiAgICBuID0gaW50KGlucHV0KCJFbnRlciB0aGUgb3JkZXIgb2Ygc3F1YXJlIG1hdHJpeDogIikpCgogICAgcHJpbnQoIkVudGVyIHRoZSBlbGVtZW50cyBvZiBhdWdtZW50ZWQgbWF0cml4IHJvdy13aXNlOiIpCiAgICBhID0gW10KICAgIGZvciBpIGluIHJhbmdlKG4pOgogICAgICAgIHJvdyA9IGxpc3QobWFwKGZsb2F0LCBpbnB1dCgpLnNwbGl0KCkpKQogICAgICAgIGEuYXBwZW5kKHJvdykKCiAgICBmb3IgaSBpbiByYW5nZShuKToKICAgICAgICBpZiBhW2ldW2ldID09IDAuMDoKICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2UoaSsxLCBuKToKICAgICAgICAgICAgICAgIGlmIGFbal1baV0gIT0gMC4wOgogICAgICAgICAgICAgICAgICAgIGFbaV0sIGFbal0gPSBhW2pdLCBhW2ldCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKCiAgICAgICAgcGl2b3QgPSBhW2ldW2ldCiAgICAgICAgZm9yIGogaW4gcmFuZ2UobiArIDEpOgogICAgICAgICAgICBhW2ldW2pdIC89IHBpdm90CgogICAgICAgIGZvciBrIGluIHJhbmdlKG4pOgogICAgICAgICAgICBpZiBrICE9IGk6CiAgICAgICAgICAgICAgICBmYWN0b3IgPSBhW2tdW2ldCiAgICAgICAgICAgICAgICBmb3IgaiBpbiByYW5nZShuICsgMSk6CiAgICAgICAgICAgICAgICAgICAgYVtrXVtqXSAtPSBmYWN0b3IgKiBhW2ldW2pdCgogICAgcHJpbnQoIlxuRmluYWwgUm93LUVjaGVsb24gRm9ybSBbQXxCXToiKQogICAgZm9yIHJvdyBpbiBhOgogICAgICAgIGZvciB2YWwgaW4gcm93OgogICAgICAgICAgICBwcmludChmInt2YWw6LjRmfSIsIGVuZD0iICIpCiAgICAgICAgcHJpbnQoKQoKICAgIHByaW50KCJcblRoZSBzb2x1dGlvbiBpczoiKQogICAgZm9yIGkgaW4gcmFuZ2Uobik6CiAgICAgICAgcHJpbnQoZiJ4e2krMX0gPSB7YVtpXVtuXTouNmZ9IikKCmdhdXNzX2pvcmRhbigpCg==