def solution(e):
     out.clear_output()
     with out:
         A = np.array([[1, 2, 1], [0, 1, 2], [0, 0, 1]])
         display(Markdown('Après échelonnage, la matrice devient'))
         al.printA(A)
         display(
             Markdown(
                 "Ainsi le rang colonne de la matrice augmentée est 3, et le système n'admet pas de solution"
             ))
def ch4_10ex1_3_ech():
    global m
    A = [[1, 2, 1], [0, 1, 2], [1, 1, 1]]
    al.printA(A)
    [i, j, r, alpha] = al.manualEch(A)
    MatriceList = [np.array(A)]
    m2 = A
    button = widgets.Button(description='Appliquer')
    out = widgets.Output()

    def callback(e):
        #global m2
        out.clear_output()
        with out:
            #m2=
            al.echelonnage(i, j, r, alpha, A, m2, MatriceList)

    button.on_click(callback)
    display(button)
    display(out)
def ch4_10ex1_2_1_ech():
    global m
    print('Échelonnez la matrice transposée de A')
    A_sol = np.array([[1, 4, 3, 4], [2, 6, 5, 8], [1, 0, 1, 4]])
    A_sol_t = A_sol.transpose()
    al.printA(A_sol_t)
    [i, j, r, alpha] = al.manualEch(A_sol_t)
    MatriceList = [np.array(A_sol_t)]
    m = A_sol_t

    button = widgets.Button(description='Appliquer')
    out = widgets.Output()

    def applique(e):
        global m
        out.clear_output()
        with out:
            m = al.echelonnage(i, j, r, alpha, A_sol_t, m, MatriceList)

    button.on_click(applique)
    display(button)
    display(out)
 def solution(e):
     out.clear_output()
     with out:
         A = np.array([[1, 2, 3], [0, 1, 2]])
         A_t = A.transpose()
         display(
             Markdown(
                 'Pour trouver le rang colonne de $A$, nous utilisons la remarque 1 et trouvous le rang ligne de la transposée de $A$.'
             ))
         display(
             Markdown(
                 'Par les propositions 1 et 2, nous échelonnons la matrice transposée et observont le nombre de lignes qui contiennent des pivots'
             ))
         M = al.echelonMat('E', A_t)
         display(Markdown('Ainsi le rang colonne de $A$ est 2'))
def ch4_10ex1_1(A, b):
    A_sol = [[1, 4, 3, 4], [2, 6, 5, 8], [1, 0, 1, 4]]
    b_sol = [[1], [1], [1]]
    if A == [] or b == []:
        print("Attention, vous avez laissé au moins une des deux entrée vide")
    elif not (len(A) == len(b)):
        print("Les tailles de la matrice et du vecteur ne correspondent pas")
    else:
        if A == A_sol:
            if b == b_sol:
                print("Correct !")
            else:
                print(
                    "Le vecteur b est faux, votre reponse correspond au système suivant:"
                )
                al.printSyst(A, b)
        elif b == b_sol:
            print(
                "La Matrice A est fausse, votre reponse correspond au système suivant:"
            )
            al.printSyst(A, b)
        else:
            print("Faux, votre réponse correspond au système suivant:")
            al.printSyst(A, b)
 def callback(e):
     #global m2
     out.clear_output()
     with out:
         #m2=
         al.echelonnage(i, j, r, alpha, A, m2, MatriceList)
 def applique(e):
     global m
     out.clear_output()
     with out:
         m = al.echelonnage(i, j, r, alpha, A_sol_t, m, MatriceList)