Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168703
Image: ubuntu2004
\HUGE{Eliminacja Gaussa :}
from numpy import *
def RandomArray( sizeA,sizeB, startOfRange, endOfRange): arr = random.rand(sizeA,sizeB) arr[:,:] = arr[:,:]*(endOfRange - startOfRange) + startOfRange return arr
def GaussEquations( arrA, arrB): A = copy(arrA) B = copy(arrB) (a_N,a_M) = A.shape (b_N,b_M) = B.shape if (a_N == b_N): N = a_N # ELIMINACJA for k in range(0,N): for i in range(k+1,N): m_ik = A[i,k]/A[k,k] B[i] = B[i] - m_ik * B[k] A[i,:] = A[i,:] - m_ik *A[k,:] ## print A, B # PODSTAWIANIE X = zeros((1,N)) for i in range (N-1,-1,-1): j = range(i+1,N) s = sum(A[i,j]*X[0,j]) X[0,i] = (B[i] - s)/A[i,i] ## print X return X else : print "Błąd wymiarow macierzy"
def Validation(arrA, arrB, arrX, eps) : VALID = dot(arrA,arrX.transpose()) s = sum((VALID[:]-arrB[:])**2) if s < eps : return True else : return False
def main(): N = 5 ## A = zeros((N,N)) A = RandomArray(N,N,-5,5) ## B = zeros((N,1)) B = RandomArray(N,1,-5,5) ## A = array([[1.,2.,3.], ## [1.,3.,4.], ## [1.,3.,5.]]) ## B = array([[5.], ## [1.], ## [-2.]]) X = GaussEquations(A,B) ## print "A: \n",A ## print "B: \n",B ## print "X: ",X eps = 1e-16; stan = Validation(A,B,X,eps) if stan : print "Poprawnie rozwiazane!" else : print "Zle rozwiazane" if __name__ == '__main__': main()
Poprawnie rozwiazane!
C = array([[1.,2.,3.], [1.,3.,4.], [1.,3.,5.]]) D = array([[5.], [1.], [-2.]])
print GaussEquations(C,D)
[[ 16. -1. -3.]]