Advertisement
Walhfort

1TSI_INFO_DM2

Jan 27th, 2016
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | None | 0 0
  1. # -*- coding: utf-8 -*-*
  2. """
  3. Created on Wed Oct 21 01:14:48 2015
  4.  
  5. @author: Walhfort
  6. """
  7. import numpy as np
  8.  
  9. A=np.array([[1,1,1],[-2,-1,1],[3,2,-2]],dtype=float)
  10. B=np.array([[6],[-1],[1]],dtype=float)
  11.  
  12. "---1---"
  13. def augmente(A,B):
  14.     M=np.append(A,B,axis=1)
  15.     return M
  16.  
  17. "---2---"
  18. def echangeligne(M,i,j):
  19.     lignei=M[i]
  20.     lignej=M[j]
  21.     M=np.delete(M,j,axis=0)  
  22.     M=np.insert(M,j,lignei,axis=0)
  23.     M=np.delete(M,i,axis=0)
  24.     M=np.insert(M,i,lignej,axis=0)
  25.     return M
  26.    
  27. "---3---"  
  28. def pivot(M,i):
  29.     ligne = i
  30.     C = abs(M[i,i])
  31.     for k in range (i,len(M)):
  32.         if abs(C) < abs(M[k,i]):
  33.             C = abs(M[k,i])
  34.             ligne = k
  35.     return echangeligne(M,i,ligne)
  36.    
  37. "---4---"
  38. def elimined(M,i,j,l):
  39.     ligne=M[j]-l*M[i]
  40.     M=np.delete(M,j,axis=0)
  41.     M=np.insert(M,j,ligne,axis=0)
  42.     return M
  43.  
  44.  
  45. "---5---"
  46. def normalise(M):
  47.     for k in range(len(M)):
  48.         coeff=M[k]/M[k,k]
  49.         M=np.delete(M,k,axis=0)
  50.         M=np.insert(M,k,coeff,axis=0)
  51.     return M
  52.  
  53. "---6---"
  54. def eliminem(M,i,j,l):
  55.     T=M[j]-l*M[i]
  56.     M=np.delete(M,j,axis=0)
  57.     M=np.insert(M,j,T,axis=0)
  58.     return M
  59.  
  60. "---7---"
  61. def secondmembre(M):
  62.     return M[0:len(M),len(M)]
  63.    
  64. "---8---"
  65. def gauss(A,B):
  66.     M=augmente(A,B)
  67.     for k in range(len(M)):
  68.         M=pivot(M,k)
  69.         for i in range(k,len(M)-1):
  70.             print M
  71.             M=elimined(M,k,i+1,float(M[i+1,k]/M[k,k]))
  72.     M=normalise(M)
  73.     print M
  74.     for k in range(len(M)):
  75.         for i in range(k):
  76.             print M
  77.             M=eliminem(M,k,i,float(M[i,k]))
  78.     return secondmembre(M)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement