math:matrices:systeme_lineaire:directe
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
math:matrices:systeme_lineaire:directe [2019/02/04 23:15] – ↷ Liens modifiés en raison d'un déplacement. root | math:matrices:systeme_lineaire:directe [2020/04/28 23:00] (Version actuelle) – mhtml -> html root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | |||
=====Systèmes linéaires===== | =====Systèmes linéaires===== | ||
====Résolution==== | ====Résolution==== | ||
Ligne 23: | Ligne 22: | ||
$$y_i = \frac{b_i - \sum_{j=1}^{i-1}l_{i, | $$y_i = \frac{b_i - \sum_{j=1}^{i-1}l_{i, | ||
- | [[math:matrices: | + | |
+ | Si $l_{i,i} = 0$, deux possibilités | ||
Complexité : $N^2/2$ multiplications et additions, $N$ divisions. | Complexité : $N^2/2$ multiplications et additions, $N$ divisions. | ||
Puis on applique le même principe avec la matrice supérieure $U$ pour déterminer le vecteur $x$. | Puis on applique le même principe avec la matrice supérieure $U$ pour déterminer le vecteur $x$. | ||
+ | |||
+ | Implémentation en python pour la résolution d'un système $Ax=b$ | ||
+ | <code python> | ||
+ | import numpy as np | ||
+ | |||
+ | def fsub(A,b): | ||
+ | if len(A) != len(A[0]): | ||
+ | raise ValueError(' | ||
+ | if len(A) != len(b): | ||
+ | raise ValueError(' | ||
+ | |||
+ | N = len(A) | ||
+ | x = np.empty(N) | ||
+ | sol = 1 | ||
+ | for i in range(0, N): | ||
+ | somme = b[i] - np.sum(A[i][0: | ||
+ | if somme != 0 and A[i][i] == 0: | ||
+ | return 0, np.nan | ||
+ | if somme == 0 and A[i][i] == 0: | ||
+ | x[i] = 0 | ||
+ | sol = -1 | ||
+ | else: | ||
+ | x[i] = somme / A[i][i] | ||
+ | | ||
+ | return sol, x | ||
+ | |||
+ | def bsub(A,b): | ||
+ | if len(A) != len(A[0]): | ||
+ | raise ValueError(' | ||
+ | if len(A) != len(b): | ||
+ | raise ValueError(' | ||
+ | | ||
+ | N = len(A) | ||
+ | x = np.empty(N) | ||
+ | sol = 1 | ||
+ | for i in range(N - 1, -1, -1): | ||
+ | if A[i][i] == 0: | ||
+ | determinant_null = True | ||
+ | somme = b[i] - np.sum(A[i][i+1: | ||
+ | # Pas de solution | ||
+ | if somme != 0 and A[i][i] == 0: | ||
+ | return 0, np.nan | ||
+ | # Infinité de solutions | ||
+ | if somme == 0 and A[i][i] == 0: | ||
+ | x[i] = 0 | ||
+ | sol = -1 | ||
+ | else: | ||
+ | x[i] = somme / A[i][i] | ||
+ | | ||
+ | return sol, x | ||
+ | |||
+ | fsub(np.array([[1, | ||
+ | fsub(np.array([[1, | ||
+ | fsub(np.array([[1, | ||
+ | </ | ||
+ | |||
+ | Implémentation en python pour inverser une matrice. On applique le même algorithme ci-dessus mais avec B matrice identité. | ||
+ | <code python> | ||
+ | import numpy as np | ||
+ | import math | ||
+ | import cmath | ||
+ | |||
+ | def pivotgauss(A): | ||
+ | if len(A) != len(A[0]): | ||
+ | raise ValueError(' | ||
+ | | ||
+ | N = len(A) | ||
+ | B = np.identity(N, | ||
+ | for i in range(0, N): | ||
+ | | ||
+ | indice = np.argmax(np.abs(A[i:, | ||
+ | |||
+ | if (A[i+indice, | ||
+ | A.fill(np.NaN) | ||
+ | # | ||
+ | return (0, A) | ||
+ | | ||
+ | A[[i, | ||
+ | B[[i, | ||
+ | | ||
+ | for j in range(i+1, N): | ||
+ | multiplicateur = A[j][i]/ | ||
+ | B[j,:] -= B[i,: | ||
+ | A[j][i:] -= A[i][i: | ||
+ | | ||
+ | B[i,:] /= A[i,i] | ||
+ | A[i,:] /= A[i,i] | ||
+ | | ||
+ | for i in range(N-1, -1, -1): | ||
+ | for j in range(0, i): | ||
+ | B[j,:] -= A[j, i]*B[i,:] | ||
+ | return (1, B) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===Pivot=== | ||
+ | |||
+ | La méthode du pivot a deux intérêts : éviter une division par 0 (voir ci-dessus) et réduire les erreurs numériques en triant les pivots par ordre décroissant. | ||
+ | |||
+ | Ci-dessous l' | ||
+ | |||
+ | Pour chaque colonne, on cherche la plus grande valeur absolue dans le triangle qu'on veut annuler et on inclut la diagonale. On permute la ligne puis on applique des permutations de lignes pour annuler toutes les valeurs de la colonne et la diagonale. | ||
+ | |||
+ | <code python> | ||
+ | import numpy as np | ||
+ | |||
+ | def pivotgauss(A, | ||
+ | if len(A) != len(A[0]): | ||
+ | raise ValueError(' | ||
+ | if len(A) != len(b): | ||
+ | raise ValueError(' | ||
+ | | ||
+ | N = len(A) | ||
+ | for i in range(0, N): | ||
+ | | ||
+ | indice = np.argmax(np.abs(A[i:, | ||
+ | |||
+ | if (A[i+indice, | ||
+ | # | ||
+ | # Si c'est aucune solution ou une infinité (cf. tp3). | ||
+ | continue | ||
+ | | ||
+ | A[[i, | ||
+ | b[i], b[i+indice] = b[i+indice], | ||
+ | | ||
+ | for j in range(i+1, N): | ||
+ | multiplicateur = A[j][i]/ | ||
+ | b[j] = b[j] - b[i]*multiplicateur | ||
+ | A[j][i:] = A[j][i:] - A[i][i: | ||
+ | </ | ||
+ | |||
+ | Triangularisation : | ||
+ | <code python> | ||
+ | def gauss(A, b): | ||
+ | pivotgauss(A, | ||
+ | (x, sol) = bsub(A, b) | ||
+ | return (x, sol) | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | [[https:// | ||
====Méthode de Gauss / Crout : LU (A non symétrique)==== | ====Méthode de Gauss / Crout : LU (A non symétrique)==== | ||
- | Valable pour une matrice carrée définie positive. | + | A doit être inversible (pas de pivot nul). |
Étape 1 : | Étape 1 : | ||
Ligne 68: | Ligne 212: | ||
Si l'un des $l_{jj}$ vaut 0, il faut appliquer un pivot. | Si l'un des $l_{jj}$ vaut 0, il faut appliquer un pivot. | ||
- | [[https:// | + | Implémentation du code en python |
- | Exemple | + | <code python> |
+ | def factorlu(A): | ||
+ | L = np.identity(len(A)) | ||
+ | U = A.copy() | ||
+ | |||
+ | for j in range(len(A)): | ||
+ | |||
+ | if (U[j][j] == 0): | ||
+ | L.fill(np.nan) | ||
+ | U.fill(np.nan) | ||
+ | return (L,U,0) | ||
+ | |||
+ | for i in range(j+1, | ||
+ | L[i, | ||
+ | U[i,j:] -=L[i, | ||
+ | |||
+ | return (L,U,1) | ||
+ | </ | ||
- | [[https:// | ||
====Méthode de Crout : CDtC (A symétrique)==== | ====Méthode de Crout : CDtC (A symétrique)==== | ||
Valable pour une matrice carrée symétrique définie positive. | Valable pour une matrice carrée symétrique définie positive. | ||
Ligne 98: | Ligne 258: | ||
Méthode : | Méthode : | ||
- | [[https:// | + | [[https:// |
Soit | Soit | ||
Ligne 263: | Ligne 423: | ||
Exemple : | Exemple : | ||
- | $A = \begin{pmatrix} 4 & | + | $A = \begin{pmatrix} 4 & |
$L = \begin{pmatrix} \sqrt 4 = 2 & 0 & 0 \\ \frac{12}{2} = 6 & \sqrt{37-6^2} = 1 & 0 \\ \frac{-16}{2} = -8 & \frac{-43-(-8)*6}{1} = 5 & \sqrt{98-8^2-5^2} = 3 \end{pmatrix}$ | $L = \begin{pmatrix} \sqrt 4 = 2 & 0 & 0 \\ \frac{12}{2} = 6 & \sqrt{37-6^2} = 1 & 0 \\ \frac{-16}{2} = -8 & \frac{-43-(-8)*6}{1} = 5 & \sqrt{98-8^2-5^2} = 3 \end{pmatrix}$ | ||
- | ====Suite convergente==== | + | Implémentation en python : |
- | $X^{n+1} = X^n-\varrho(AX^n-b)$ avec A symétrique. | + | |
- | On obtient | + | <code python> |
+ | def cholesky(A): | ||
+ | n = len(A) | ||
+ | L = np.zeros((n, | ||
+ | L[0,0] = cmath.sqrt(A[0, | ||
+ | L[1:,0] = A[1:, | ||
+ | |||
+ | for j in range(1, | ||
+ | if (not np.isreal(A[j, | ||
+ | # Matrice A non hermitienne | ||
+ | L.fill(np.nan) | ||
+ | return (L,-1) | ||
+ | |||
+ | carre = A[j,j] - np.dot(L[j,: | ||
+ | if (carre <= 0): | ||
+ | # Matrice non définie strictement positive | ||
+ | L.fill(np.nan) | ||
+ | return (L,0) | ||
+ | L[j,j] = cmath.sqrt(carre) | ||
+ | |||
+ | for i in range(j+1, | ||
+ | if (A[i,j] != np.conjugate(A[j, | ||
+ | # Matrice A non hermitienne | ||
+ | L.fill(np.nan) | ||
+ | return (L,0) | ||
+ | L[i, | ||
+ | |||
+ | return (L,1) | ||
+ | |||
+ | |||
+ | A4 = np.array( | ||
+ | [[ 4, 12, -16], | ||
+ | [ 12, 37, -43+2j], | ||
+ | [-16, -43-2j, | ||
+ | (L, sol) = cholesky(A4) | ||
+ | print (" | ||
+ | print (" | ||
+ | print (L.dot(L.transpose().conjugate())) | ||
+ | </ | ||
+ | |||
+ | ====QR (A non symétrique) méthode Householder==== | ||
+ | $QR = A$ avec R matrice diagonale supérieure et Q matrice orthogonale. | ||
+ | |||
+ | Soit $A_0 = A$ | ||
+ | |||
+ | $\alpha_i = A_{i-1}[1]$ avec $A[1]$ correspondant à la première colonne de $A$ et $i \in [1,N-1]$. | ||
+ | |||
+ | $v_i = \alpha_i \pm \|\alpha_i\| e_1 $ avec $e_1$ vecteur nul sauf la première ligne vaut 1. Le signe à prendre est le même que la première ligne de $A[1]$ pour éviter une valeur nulle. | ||
+ | |||
+ | $$Q_i = I - 2 \frac{v_i v_i^t }{\|v_i\|_2^2}$$ | ||
+ | |||
+ | $$A_i = \prod_{k=i-1}^{1}Q_i A$$ | ||
+ | |||
+ | $$A_i= | ||
+ | \begin{pmatrix} | ||
+ | U_{i-1} & B \\ | ||
+ | 0 & A_{i+1} \\ | ||
+ | \end{pmatrix}$$ | ||
+ | avec $U_x$ : matrice triangulaire supérieure de dimension $x$, et $b$ vecteur. | ||
+ | |||
+ | $$R = A_{N-1}$$ | ||
+ | |||
+ | $$Q = \prod_{k=1}^{N-1}Q_i$$ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | $$A=A_0= | ||
+ | \begin{pmatrix} | ||
+ | 12 & -51 & 4 \\ | ||
+ | 6 & 167 & -68 \\ | ||
+ | -4 & 24 & -41 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$\alpha_1 = | ||
+ | \begin{pmatrix} | ||
+ | 12 \\ | ||
+ | 6 \\ | ||
+ | -4 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$\|\alpha_1\| = 14$$ | ||
+ | |||
+ | $$v_1 = \alpha_1 \pm \|\alpha_1\| e_1 = | ||
+ | \begin{pmatrix} | ||
+ | 26 \\ | ||
+ | 6 \\ | ||
+ | -4 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$Q_1 = I - 2 \frac{v_1 v_1^T}{\|v_1\|_2^2} = | ||
+ | \begin{pmatrix} | ||
+ | -6/7 & -3/7 & 2/7 \\ | ||
+ | -3/7 & 82/91 & 6/91 \\ | ||
+ | 2/7 & 6/91 & 87/91 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$A_1 = Q_1 A_0 = \begin{pmatrix} | ||
+ | -14 & -21 & 14 \\ | ||
+ | 0 & 2261/13 & -854/13 \\ | ||
+ | 0 & 252/13 & -553/13 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$\alpha_2 = | ||
+ | \begin{pmatrix} | ||
+ | 2261/13 \\ | ||
+ | 252/13 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$\|\alpha_2\| = 175$$ | ||
+ | |||
+ | $$v_2 = \alpha_2 \pm \|\alpha_2\| e_1 = | ||
+ | \begin{pmatrix} | ||
+ | 4536/13 \\ | ||
+ | | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$Q_2 = I - 2 \frac{v_2 v_2^T}{\|v_2\|_2^2} = | ||
+ | \begin{pmatrix} | ||
+ | -323/325 & -36/325 \\ | ||
+ | -36/325 & 323/325 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$R = A_2 = Q_2 A_1 = \begin{pmatrix} | ||
+ | -14 & -21 & 14 \\ | ||
+ | 0 & -175 & 70 \\ | ||
+ | 0 & 0 & -35 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$Q = \begin{pmatrix} | ||
+ | -6/7 & -3/7 & 2/7 \\ | ||
+ | -3/7 & 82/91 & 6/91 \\ | ||
+ | 2/7 & 6/91 & 87/91 \\ | ||
+ | \end{pmatrix} | ||
+ | \begin{pmatrix} | ||
+ | 1 & 0 & 0 \\ | ||
+ | 0 & -323/325 & -36/325 \\ | ||
+ | 0 & -36/325 & 323/325 \\ | ||
+ | \end{pmatrix} = | ||
+ | \begin{pmatrix} | ||
+ | -6/7 & 69/175 & 58/175 \\ | ||
+ | -3/7 & -158/175 & -6/175 \\ | ||
+ | 2/7 & -6/35 & 33/35 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | ====QR | ||
+ | $\forall i \in [1,N]$ | ||
+ | |||
+ | $a_i$ les vecteurs colonnes de A. | ||
+ | |||
+ | $u_i = a_i - \sum_{j=1}^{i-1} (a_i \cdot e_j) e_j$ | ||
+ | |||
+ | $e_i = \frac{u_i}{\|u_i\|}$ | ||
+ | |||
+ | $Q = \left[e_1 | … | e_N \right]$ | ||
+ | |||
+ | $ | ||
+ | \begin{align} | ||
+ | & \forall i > j & R_{i,j} = 0 \\ | ||
+ | & \forall i \le j & R_{i,j} = a_j e_i \\ | ||
+ | \end{align} | ||
+ | $ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | $$A= | ||
+ | \begin{pmatrix} | ||
+ | 12 & -51 & 4 \\ | ||
+ | 6 & 167 & -68 \\ | ||
+ | -4 & 24 & -41 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$u_1 = \begin{pmatrix} | ||
+ | 12 \\ | ||
+ | 6 \\ | ||
+ | -4 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$\|u_1\| = 14$$ | ||
+ | |||
+ | $$e_1 = \frac{u_1}{\|u_1\|} = \begin{pmatrix} | ||
+ | 6/7 \\ | ||
+ | 3/7 \\ | ||
+ | -2/7 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $$a_2 \cdot e_1 = (-51)*6/7 + 167 * 3/7 + 24 * (-2) / 7 = 21$$ | ||
+ | |||
+ | $$u_2 = a_2 - (a_2 \cdot e_1) e_1 = | ||
+ | \begin{pmatrix} | ||
+ | -51 - 21 * 6 / 7 \\ | ||
+ | 167 - 21 * 3 / 7 \\ | ||
+ | 24 - 21 * (-2) / 7 \\ | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | -69 \\ | ||
+ | 158 \\ | ||
+ | 30 \\ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | $$\|u_2\| = 175$$ | ||
+ | |||
+ | $$e_2 = \frac{u_2}{\|u_2\|}$$ | ||
+ | |||
+ | $$a_3 \cdot e_1 = 4 * 6 / 7 + (-68) * 3 / 7 + (-41) * (-2) / 7 = -14$$ | ||
+ | |||
+ | $$a_3 \cdot e_2 = 4 * (-69) / 175 + (-68) * 158 / 175 + (-41) * 30 / 175 = -70$$ | ||
+ | |||
+ | $$u_3 = a_3 - (a_3 \cdot e_1) e_1 - (a_3 \cdot e_2) e_2 = | ||
+ | \begin{pmatrix} | ||
+ | 4 - (-14) * 6 / 7 - (-70) * (-69) / 175 \\ | ||
+ | -68 - (-14) * 3 / 7 - (-70) * 158 / 175 \\ | ||
+ | -41 - (-14) * (-2) / 7 - (-70) * 30 / 175 \\ | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | -58 / 5 \\ | ||
+ | 6/5 \\ | ||
+ | -33 \\ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | $$\|u_3\| = 35$$ | ||
+ | |||
+ | $$e_3 = \frac{u_3}{\|u_3\|}$$ | ||
+ | |||
+ | $$Q = | ||
+ | \begin{pmatrix} | ||
+ | 6/7 & -69/175 & -58/175 \\ | ||
+ | 3/7 & 158/175 & 6/175 \\ | ||
+ | -2/7 & 6/ 35 & -33/ 35 \\ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | $$R = | ||
+ | \begin{pmatrix} | ||
+ | 14 & 21 & -14 \\ | ||
+ | 0 & 175 & -70 \\ | ||
+ | 0 & 0 & 35 \\ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | ====QR (A non symétrique) méthode Givens==== | ||
+ | |||
+ | $\forall j \in [1,N-1]$ avec j désignant les colonnes. | ||
+ | |||
+ | $\forall i \in [j+1,N]$ par ordre décroissant avec désignant les lignes. | ||
+ | |||
+ | On cherche donc à annuler chaque terme sur le triangle inférieur. | ||
+ | |||
+ | Au départ $R_{1,N}$ vaut A. | ||
+ | |||
+ | $r_{i,j} = \sqrt{\left ( R^{ij}_{i, | ||
+ | |||
+ | On calcule la matrice de rotation $G^{i,j}$ : vaut la matrice identité sauf : | ||
+ | $$G_{i,i} = \frac{R_{i-1, | ||
+ | $$G_{i-1, | ||
+ | $$G_{i,i-1} = -\frac{R_{i, | ||
+ | $$G_{i-1,i} = \frac{R_{i, | ||
+ | |||
+ | Le $R^{(n+1)}$ suivant vaut $G*R^{(n)}$. | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | $$R^{(0)} = A= | ||
+ | \begin{pmatrix} | ||
+ | 12 & -51 & 4 \\ | ||
+ | 6 & 167 & -68 \\ | ||
+ | -4 & 24 & -41 \\ | ||
+ | \end{pmatrix}$$ | ||
+ | |||
+ | $i=3, j=1$ | ||
+ | |||
+ | $r_{3,1} = \sqrt{(-4)^2+6^2} = 2 \sqrt{13}$ | ||
+ | |||
+ | $$G^{(1)} = | ||
+ | \begin{pmatrix} | ||
+ | 1 & | ||
+ | 0 & | ||
+ | 0 & | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | 1 & | ||
+ | 0 & | ||
+ | 0 & | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | 1 & | ||
+ | 0 & | ||
+ | 0 & | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | $$R^{(1)} = G^{(1)} R^{(0)} = | ||
+ | \begin{pmatrix} | ||
+ | 12 & -51 & 4 \\ | ||
+ | 2 \sqrt{13} & 453/ | ||
+ | 0 & 406/ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | $i=2, j=1$ | ||
+ | |||
+ | $r_{2,1} = \sqrt{(12)^2+(2 \sqrt{13})^2} = 14$ | ||
+ | |||
+ | $$G^{(2)} = | ||
+ | \begin{pmatrix} | ||
+ | \frac{G^{(0)}_{i-1, | ||
+ | -\frac{G^{(0)}_{i, | ||
+ | 0 & | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | \frac{12}{14} & | ||
+ | -\frac{2 \sqrt{13}}{14} & | ||
+ | 0 & | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | \frac{6}{7} & | ||
+ | -\frac{\sqrt{13}}{7} & | ||
+ | 0 & | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | $$R^{(2)} = G^{(2)} R^{(1)} = | ||
+ | \begin{pmatrix} | ||
+ | 14 & 21 & -14 \\ | ||
+ | 0 & 483/ | ||
+ | 0 & 406/ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | $i=3, j=2$ | ||
+ | |||
+ | $r_{3,2} = \sqrt{(483/ | ||
+ | |||
+ | $$G^{(3)} = | ||
+ | \begin{pmatrix} | ||
+ | 1 & | ||
+ | 0 & | ||
+ | 0 & | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | 1 & 0 & 0 \\ | ||
+ | 0 & \frac{483/ | ||
+ | 0 & -\frac{406/ | ||
+ | \end{pmatrix} | ||
+ | = | ||
+ | \begin{pmatrix} | ||
+ | 1 & 0 & 0 \\ | ||
+ | 0 & \frac{69}{25\sqrt{13}} | ||
+ | 0 & -\frac{58}{25\sqrt{13}} & \frac{69}{25\sqrt{13}} \\ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | $$R^{(2)} = G^{(2)} R^{(1)} = | ||
+ | \begin{pmatrix} | ||
+ | 14 & 21 & -14 \\ | ||
+ | 0 & 175 & -70 \\ | ||
+ | 0 & 0 & -35 \\ | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
=====Bibliographie===== | =====Bibliographie===== |
math/matrices/systeme_lineaire/directe.1549318540.txt.gz · Dernière modification : 2019/02/04 23:15 de root