SmtC: Show me the Code
Ole Peter Smith
Instituto de Matemática e Estatística
Universidade Federal de Goiás
http://www.olesmith.com.br

Eliminação do Gauss
Quando Pedro me fala sobre Paulo
Sei mais do Pedro do que do Paulo
Sigmund Freud

Atividades 7:

  1. Arquivo N01.py: Representa em Python as matrices como Python lists of lists:
    \(\underline{\underline{\textbf{A}}}_0=\left(\begin{array}{cccc}1& 1& 1& 1\\1&-1& 1&-1\\ 1& 1&-1&-1\\-1& 1& 1&-1\\\end{array}\right),\) \(\underline{\underline{\textbf{A}}}_1=\left(\begin{array}{cccc}1& 2& 4& 8\\1&-1& 1&-1\\1&-2& 4&-8\\1& 1& 1& 1\\\end{array}\right),\)
    \(\underline{\underline{\textbf{A}}}_2=\left(\begin{array}{cccc}1& 1& 1& 1\\1&-1& 1&-1\\1& 2& 4& 8\\1& 3& 9&27\\ \end{array}\right),\) \(\underline{\underline{\textbf{A}}}_3=\left(\begin{array}{cccc}1& 1& 1& 1\\1& 2& 4& 8\\1& 3& 9&27\\1& 4&16&64\\\end{array}\right),\)
    Python Listing: N01.py.
    from Matrix import *
    
    #Lista de matrices
    A=[
        [
            [ -1.0, 1.0, 1.0, 1.0,],
            [  1.0,-1.0, 1.0, 1.0,],
            [  1.0, 1.0,-1.0, 1.0,],
            [  1.0, 1.0, 1.0,-1.0,],
        ],
        Matrix_Vandermonte([ 2.0,-1.0,-2.0, 1.0 ]),
        Matrix_Vandermonte([ 1.0,-1.0, 2.0, 3.0 ]),
        Matrix_Vandermonte([ 1.0, 2.0, 3.0, 4.0 ]),
    ]
    
  2. Arquivo N02py: Encontre as inversas das matrizes no item anterior.
    Python Listing: N02.py.
    from Matrix import *
    from Gauss import *
    
    from N01 import *
    
    for i in range( len(A) ):
        print i,":"
    
        Matrix_Print(A[i])
        AA=Inverse(A[i])
        Matrix_Print(AA)
    
    0 :
    [
        [-1.000000,1.000000,1.000000,1.000000]
        [1.000000,-1.000000,1.000000,1.000000]
        [1.000000,1.000000,-1.000000,1.000000]
        [1.000000,1.000000,1.000000,-1.000000]
    ]
    Gauss Forward, det -16.0
    Matrix_Gauss_Test, Residual: 0.000000e+00
    [
        [-0.250000,0.250000,0.250000,0.250000]
        [0.250000,-0.250000,0.250000,0.250000]
        [0.250000,0.250000,-0.250000,0.250000]
        [0.250000,0.250000,0.250000,-0.250000]
    ]
    1 :
    [
        [1.000000,2.000000,4.000000,8.000000]
        [1.000000,-1.000000,1.000000,-1.000000]
        [1.000000,-2.000000,4.000000,-8.000000]
        [1.000000,1.000000,1.000000,1.000000]
    ]
    Gauss Forward, det 72.0
    Matrix_Gauss_Test, Residual: 2.127425e-16
    [
        [-0.166667,0.666667,-0.166667,0.666667]
        [-0.083333,-0.666667,0.083333,0.666667]
        [0.166667,-0.166667,0.166667,-0.166667]
        [0.083333,0.166667,-0.083333,-0.166667]
    ]
    2 :
    [
        [1.000000,1.000000,1.000000,1.000000]
        [1.000000,-1.000000,1.000000,-1.000000]
        [1.000000,2.000000,4.000000,8.000000]
        [1.000000,3.000000,9.000000,27.000000]
    ]
    Gauss Forward, det -48.0
    Matrix_Gauss_Test, Residual: 7.351626e-17
    [
        [1.500000,0.250000,-1.000000,0.250000]
        [0.250000,-0.458333,0.333333,-0.125000]
        [-1.000000,0.250000,1.000000,-0.250000]
        [0.250000,-0.041667,-0.333333,0.125000]
    ]
    3 :
    [
        [1.000000,1.000000,1.000000,1.000000]
        [1.000000,2.000000,4.000000,8.000000]
        [1.000000,3.000000,9.000000,27.000000]
        [1.000000,4.000000,16.000000,64.000000]
    ]
    Gauss Forward, det 12.0
    Matrix_Gauss_Test, Residual: 5.594315e-16
    [
        [4.000000,-6.000000,4.000000,-1.000000]
        [-4.333333,9.500000,-7.000000,1.833333]
        [1.500000,-4.000000,3.500000,-1.000000]
        [-0.166667,0.500000,-0.500000,0.166667]
    ]
    
    
    Output from: /usr/bin/python N02.py
  3. Arquivo N03py: Gere matrices de Vandermonte regulares de ordem 5,6,7,8,9 e 10 e encontre suas inversas.
    Python Listing: N03.py.
    from Matrix import *
    from Gauss import *
    
    v=[0.0]
    for i in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]:
        v.append( 1.0*i )
        A=Matrix_Vandermonte(v)
        print "Ordem",i+1,":"
    
        AA=Inverse(A)
    
    Ordem 2 :
    Gauss Forward, det 1.0
    Matrix_Gauss_Test, Residual: 0.000000e+00
    Ordem 3 :
    Gauss Forward, det 2.0
    Matrix_Gauss_Test, Residual: 0.000000e+00
    Ordem 4 :
    Gauss Forward, det 12.0
    Matrix_Gauss_Test, Residual: 5.909070e-16
    Ordem 5 :
    Gauss Forward, det 288.0
    Matrix_Gauss_Test, Residual: 2.123877e-15
    Ordem 6 :
    Gauss Forward, det 34560.0
    Matrix_Gauss_Test, Residual: 3.431676e-14
    Ordem 7 :
    Gauss Forward, det 24883200.0
    Matrix_Gauss_Test, Residual: 3.373950e-13
    Ordem 8 :
    Gauss Forward, det 1.25411328e+11
    Matrix_Gauss_Test, Residual: 2.793467e-12
    Ordem 9 :
    Gauss Forward, det 5.05658474496e+15
    Matrix_Gauss_Test, Residual: 1.127236e-11
    Ordem 10 :
    Gauss Forward, det 1.83493347225e+21
    Matrix_Gauss_Test, Residual: 7.379216e-11
    Ordem 11 :
    Gauss Forward, det 6.6586065841e+27
    Matrix_Gauss_Test, Residual: 8.298242e-10
    Ordem 12 :
    Gauss Forward, det 2.65790267296e+35
    Matrix_Gauss_Test, Residual: 4.848438e-09
    Ordem 13 :
    Gauss Forward, det 1.27313963299e+44
    Matrix_Gauss_Test, Residual: 3.850929e-08
    Ordem 14 :
    Gauss Forward, det 7.92786697562e+53
    Matrix_Gauss_Test, Residual: 6.818547e-04
    Ordem 15 :
    Gauss Forward, det 6.91138269044e+64
    Matrix_Gauss_Test, Residual: 2.825255e-01
    Ordem 16 :
    Gauss Forward, det 9.03784344483e+76
    Matrix_Gauss_Test, Residual: 1.966895e-05
    
    
    Output from: /usr/bin/python N03.py
Messages:
0 secs.