Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. def sprawdzZamien(a, i, n):
  2.     if(a[i][i]==0):
  3.         for k in range(i+1, n):
  4.             if(a[k][i]!=0):
  5.                 a[i], a[k]=a[k], a[i]
  6.                 break
  7.     if(a[i][i]==0):
  8.         return False
  9.     else:
  10.         return True
  11. def gausse(tab, odp):
  12.     a=tab
  13.     n=len(tab)
  14.     for i in range(n):
  15.         a[i].insert(n+1, odp[i])
  16.     if(not sprawdzZamien(a, 0, n)):
  17.         return False
  18.     for k in range(1,n):
  19.         for i in range(k, n):
  20.             if(not sprawdzZamien(a, k-1, n)):
  21.                 return False
  22.             wsp=a[i][k-1]/a[k-1][k-1]
  23.             for j in range(n+1):
  24.                 a[i][j]-=wsp*a[k-1][j]
  25.     for i in range(n):
  26.         for j in range(n+1):
  27.             print ("{:>6}".format(a[i][j]), end="")
  28.         print()
  29.     if(a[n-1][n-1]==0):
  30.         return False
  31.     x=[]
  32.     for i in range(n):
  33.         x.append(0)
  34.     for i in range(n-1, -1,-1):
  35.         x[i]=a[i][n]/a[i][i]
  36.         for c in range(n-1, i, -1):
  37.             x[i]=x[i]-a[i][c]*x[c]/a[i][i]
  38.     return x
  39. odp=gausse([[0, -3, -2], [1, 1, 2], [4, 1, 4]], [-2, -1, -2])
  40. print ("x =", odp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement