Table of Contents

    Aide sur la bibliothèque numpy

    Sources :

    https://info-llg.fr/commun-mpsi/pdf/10.pivot.pdf

    In [2]:
    # -*- coding: utf-8 -*-
    from math import *
    from random import *
    import matplotlib.pyplot as plt 
    import numpy as np
    

    Résoudre un système d'équations du type :

    $\left\{ \begin{array}{rl} x + y &= 7 \\ x-y&= -1 \end{array} \right.$

    On représente le système sous la forme :

    $\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}$$\begin{pmatrix} x \\ y \end{pmatrix}$=$\begin{pmatrix} 7 \\ -1 \end{pmatrix}$

    Module utilisé de numpy linalg : http://math.mad.free.fr/depot/numpy/calmat.html

    In [30]:
    A=np.array([[1,1],[1,-1]])
    
    B=np.array([7,-1])
    
    solution=np.linalg.solve(A,B)
    
    In [31]:
    solution
    
    Out[31]:
    array([3., 4.])
    In [14]:
    np.linalg.det(A)
    
    Out[14]:
    -2.0
    In [33]:
     
    
    Out[33]:
    array([[ 7.29196704, -0.70803296],
           [ 7.29196704, -1.29196704]])
    In [36]:
    # Le cas où il n'y a pas de solution
    
    
    
    A1=np.array([[1,1],[1,1]])
    
    B1=np.array([7,-1])
    
    In [28]:
    solution=np.linalg.solve(A1,B1)
    
    ---------------------------------------------------------------------------
    LinAlgError                               Traceback (most recent call last)
    <ipython-input-28-9885727420fb> in <module>
    ----> 1 solution=np.linalg.solve(A1,B1)
    
    ~\Anaconda3\lib\site-packages\numpy\linalg\linalg.py in solve(a, b)
        401     signature = 'DD->D' if isComplexType(t) else 'dd->d'
        402     extobj = get_linalg_error_extobj(_raise_linalgerror_singular)
    --> 403     r = gufunc(a, b, signature=signature, extobj=extobj)
        404 
        405     return wrap(r.astype(result_t, copy=False))
    
    ~\Anaconda3\lib\site-packages\numpy\linalg\linalg.py in _raise_linalgerror_singular(err, flag)
         95 
         96 def _raise_linalgerror_singular(err, flag):
    ---> 97     raise LinAlgError("Singular matrix")
         98 
         99 def _raise_linalgerror_nonposdef(err, flag):
    
    LinAlgError: Singular matrix
    In [27]:
    np.linalg.det(A1)
    
    Out[27]:
    0.0
    In [38]:
    # Le cas où il y a une infinité de  solution
    # Il faut rester critique sur la solution trouvée par numpy
    
    A2=np.array([[1,1],[5,5]])
    
    B2=np.array([1,5])
    
    solution=np.linalg.solve(A2,B2)
    
    solution
    
    Out[38]:
    array([0., 1.])
    In [24]:
    np.linalg.det(A2)
    
    Out[24]:
    2.775557561562896e-16
    In [25]:
    np.linalg.inv(A2)
    
    Out[25]:
    array([[ 1.80143985e+16, -3.60287970e+15],
           [-1.80143985e+16,  3.60287970e+15]])

    Application à la géométrie dans l'espace

    Démontrer que trois vecteurs ne sont pas coplanaires. Soit le repère orhonormé $(O,\vec{i},\vec{j})$

    On considère les vecteurs $\vec{u}$(1;-3;5), $\vec{v}$(4;1;1), $\vec{w}$(0;1;1), $\vec{t}$(-2;-4;12) . Démontrer que les trois vecteurs $\vec{u}$, $\vec{v}$, $\vec{w}$ ne sont pas coplanaires.

    In [34]:
    A=np.array([[1,4,0],[-3,1,1],[5,1,1]])
    
    B=np.array([0,0,0])
    
    solution=np.linalg.solve(A,B)
    
    solution
    
    Out[34]:
    array([0., 0., 0.])

    Déterminer l'expression de $\vec{t}$ en fonction de $\vec{u}$, $\vec{v}$, $\vec{w}$.

    In [35]:
    A=np.array([[1,4,0],[-3,1,1],[5,1,1]])
    
    B=np.array([-2,-4,12])
    
    solution=np.linalg.solve(A,B)
    
    solution
    
    Out[35]:
    array([ 2., -1.,  3.])

    On conclut que $\vec{t}=2\vec{u}-\vec{v}+3\vec{w}$

    In [ ]: