Exam an juillet 16 corrigé - analyse numérique avec matlab

Ce document présente un examen d'Analyse Numérique, conçu pour les étudiants universitaires des filières SMA4 et SMI4. Il vise à évaluer la compréhension et l'application des concepts fondamentaux étudiés dans ce domaine, à travers des questions de cours et des problèmes pratiques. Plus précisément, ce sujet aborde :

  • Le conditionnement des matrices et la méthode du point fixe.
  • La représentation des nombres en virgule flottante.
  • La résolution de systèmes linéaires par la méthode de Gauss et la décomposition de Cholesky.
  • L'étude de problèmes non linéaires, incluant la localisation de racines par dichotomie et l'analyse de convergence des méthodes itératives.
Exam an juillet 16 corrigé - analyse numérique avec matlab -

Examen d'Analyse Numérique - Juillet 2016

Ce document, issu d'un examen d'analyse numérique, explore des concepts fondamentaux tels que le conditionnement des matrices, les méthodes de résolution de systèmes linéaires (Gauss, Cholesky) et les algorithmes de recherche de racines pour fonctions non linéaires (méthode de point fixe, dichotomie).

Questions de cours

1. Définition et rôle du conditionnement d'une matrice

Le conditionnement d'une matrice A est une mesure de la sensibilité de la solution d'un système linéaire Ax = b aux perturbations des données (matrice A ou vecteur b). Il est défini par :

cond(A) = ||A|| ⋅ ||A⁻¹||

|| ⋅ || représente une norme matricielle. Son rôle crucial en analyse numérique est de quantifier la stabilité des résultats. Un grand nombre de conditionnement indique une "mauvaise" matrice (mal conditionnée), signifiant que de petites erreurs ou incertitudes dans les données d'entrée peuvent entraîner des erreurs importantes dans la solution calculée, rendant le problème numériquement instable.

2. Algorithme d'une méthode de point fixe

La méthode du point fixe est utilisée pour trouver une solution à l'équation x = g(x). Voici un algorithme pour cette méthode :

  • Données :
    • x0 : l'approximation initiale de la racine.
    • g : la fonction d'itération telle que x = g(x).
    • epsilon : la tolérance pour le critère d'arrêt.
  • Variables :
    • x_prev : la valeur de l'itération précédente.
    • x_current : la valeur de l'itération actuelle.
  • Algorithme :
    • Initialiser x_current ← x0
    • Tant que |g(x_current) - x_current| > epsilon faire
      • x_prev ← x_current
      • x_current ← g(x_prev)
    • Fin tant que
  • Résultat : La valeur de x_current est une approximation du point fixe.

Le critère d'arrêt |g(x_current) - x_current| > epsilon vérifie si la fonction f(x) = g(x) - x est suffisamment proche de zéro, indiquant que x_current est une approximation du point fixe.

3. Représentation d'un nombre rationnel en base 2 et virgule flottante

Considérons le nombre rationnel x = 20.8125.

Calcul en base 2 :

  • Partie entière (20) : Pour convertir 20 en base 2, on effectue des divisions successives par 2 :
    • 20 ÷ 2 = 10 reste 0
    • 10 ÷ 2 = 5 reste 0
    • 5 ÷ 2 = 2 reste 1
    • 2 ÷ 2 = 1 reste 0
    • 1 ÷ 2 = 0 reste 1
    En lisant les restes de bas en haut, on obtient 2010 = 101002.
  • Partie fractionnaire (0.8125) : Pour convertir 0.8125 en base 2, on effectue des multiplications successives par 2 :
    • 0.8125 × 2 = 1.625 (prend 1)
    • 0.625 × 2 = 1.25 (prend 1)
    • 0.25 × 2 = 0.5 (prend 0)
    • 0.5 × 2 = 1.0 (prend 1)
    En lisant les parties entières de haut en bas, on obtient 0.812510 = 0.11012.

Ainsi, x = 20.812510 = 10100.11012.

Représentation en virgule flottante (mantisse 8 bits, exposant entre -10 et 10) :

Pour la représentation en virgule flottante, nous normalisons le nombre en base 2 :

10100.11012 = 1.01001101 ⋅ 24

  • Signe : Positif (0)
  • Mantisse : La mantisse normalisée commence par 1. (implicite). Les bits suivants sont 01001101. Comme une mantisse de longueur 8 est requise, on utilise ces 8 bits après la virgule.
  • Exposant : L'exposant est 4. Il est bien compris entre -10 et 10.

La représentation complète dépend du format (ex: IEEE 754), mais avec les contraintes données, la partie significative est 1.01001101 et l'exposant est 4.

Problème 1 : Système linéaire

Le système linéaire donné est :

3x + 2y + z = 1
4x + 3y + 2z = 0
5x + 4y + 3z = 0

La matrice A associée est :

A = [[3, 2, 1], [4, 3, 2], [5, 4, 3]]

Et le vecteur b est : b = [1, 0, 0]T

1. Vérifier si la matrice A est inversible

Pour vérifier si la matrice A est inversible, nous calculons son déterminant :

det(A) = 3 ⋅ (3 ⋅ 3 - 2 ⋅ 4) - 2 ⋅ (4 ⋅ 3 - 2 ⋅ 5) + 1 ⋅ (4 ⋅ 4 - 3 ⋅ 5)
det(A) = 3 ⋅ (9 - 8) - 2 ⋅ (12 - 10) + 1 ⋅ (16 - 15)
det(A) = 3 ⋅ (1) - 2 ⋅ (2) + 1 ⋅ (1)
det(A) = 3 - 4 + 1 = 0

Le déterminant de la matrice A est 0. Par conséquent, la matrice A n'est pas inversible. Le système linéaire Ax = b n'admet donc pas de solution unique ; il peut ne pas avoir de solution ou en avoir une infinité.

Note : L'information dans le texte original indiquant det(A) = 194409 et que A est inversible est erronée.

2. Résoudre le système en utilisant la méthode de Gauss

Nous appliquons la méthode d'élimination de Gauss sur la matrice augmentée [A | b] :

[[3, 2, 1 | 1],
[4, 3, 2 | 0],
[5, 4, 3 | 0]]

Opérations sur les lignes :

  • L2 ← L2 - (4/3)L1
  • L3 ← L3 - (5/3)L1

Nous obtenons :

[[3, 2, 1 | 1 ],
[0, 1/3, 2/3 | -4/3 ],
[0, 2/3, 4/3 | -5/3 ]]

Pour simplifier les fractions dans la deuxième et troisième ligne, on peut multiplier L2 par 3 et L3 par 3 :

[[3, 2, 1 | 1 ],
[0, 1, 2 | -4 ],
[0, 2, 4 | -5 ]]

Opération sur les lignes :

  • L3 ← L3 - 2 ⋅ L2

Nous obtenons :

[[3, 2, 1 | 1 ],
[0, 1, 2 | -4 ],
[0, 0, 0 | -5 - 2 ⋅ (-4) ]]
[0, 0, 0 | -5 + 8 ]]
[0, 0, 0 | 3 ]]

La dernière ligne du système simplifié est 0x + 0y + 0z = 3, ce qui se réduit à 0 = 3. Ceci est une contradiction.

Par conséquent, le système linéaire n'admet aucune solution.

Note : Le processus de remontée et la solution z=3, y=0, x=9 fournis dans le texte original sont incorrects, car le système est incohérent.

3. Donner la décomposition de Cholesky LLT de A

La décomposition de Cholesky LLT est applicable uniquement aux matrices symétriques définies positives. Pour la matrice A donnée :

  • La matrice A n'est pas symétrique, car A1,2 = 2 mais A2,1 = 4.
  • Comme nous l'avons montré, det(A) = 0, ce qui signifie que la matrice A est singulière et ne peut donc pas être définie positive.

En conséquence, la décomposition de Cholesky LLT n'est pas applicable à la matrice A.

Note : Les calculs de coefficients lij dans le texte original ne peuvent être appliqués à cette matrice A.

Problème 2 : Équations non linéaires et point fixe

Soient les deux fonctions f(x) et g(x) définies sur + :

f(x) = ln(x+1) + 0.2x
g(x) = x + ln(x+1) + 0.2

1. Montrer que f admet une racine unique l sur ℝ+

Pour la fonction f(x) = ln(x+1) + 0.2x :

  • Calcul de la dérivée : f'(x) = d/dx [ln(x+1) + 0.2x] = 1/(x+1) + 0.2.
  • Analyse du signe de la dérivée : Pour x ≥ 0, x+1 ≥ 1, donc 1/(x+1) > 0. Ainsi, f'(x) = 1/(x+1) + 0.2 > 0 pour tout x ≥ 0. Cela signifie que f(x) est strictement croissante sur 0+.
  • Recherche de racines :
    • Calculons f(0) = ln(0+1) + 0.2 ⋅ 0 = ln(1) + 0 = 0. Donc x=0 est une racine.
    • Puisque f(x) est strictement croissante et f(0)=0, pour tout x > 0, f(x) > f(0) = 0. Par conséquent, x=0 est la seule racine unique de f(x) sur 0+ (et donc sur + si l'intervalle est inclusif de 0).

Note importante : Le texte original contient des affirmations erronées pour cette question, notamment une dérivée incorrecte (x/(x+1)), un signe incorrect (< 0), et des valeurs de fonction (f(0)>0 et f(1)<0) qui contredisent la fonction f(x) définie.

2. Localisation de la racine par Dichotomie

Le texte original suggère une localisation de la racine sur [0.7, 1.1] basée sur des valeurs f(0.7) > 0 et f(1.1) < 0. Cependant, en utilisant la fonction définie f(x) = ln(x+1) + 0.2x :

  • f(0.7) = ln(1.7) + 0.2 ⋅ 0.7 ≈ 0.5306 + 0.14 = 0.6706. Cette valeur est positive.
  • f(1.1) = ln(2.1) + 0.2 ⋅ 1.1 ≈ 0.7419 + 0.22 = 0.9619. Cette valeur est également positive.

Puisque f(0.7) > 0 et f(1.1) > 0, et que f(x) est strictement croissante, il n'y a pas de changement de signe dans l'intervalle [0.7, 1.1], et donc aucune racine ne peut se trouver dans cet intervalle pour la fonction f(x) définie.

Si nous devions suivre la logique du processus de dichotomie tel que décrit par les signes hypothétiques du texte original (même s'ils sont incorrects pour la fonction f(x)) :

  • Intervalle initial : [0.7, 1.1]. (Le texte indique f(0.7) > 0 et f(1.1) < 0, impliquant une racine dans cet intervalle).
  • 1re Dichotomie :
    • Milieu : c1 = (0.7 + 1.1) / 2 = 0.9.
    • Le texte indique f(0.9) < 0.
    • Puisque f(0.7) > 0 et f(0.9) < 0, la racine serait dans [0.7, 0.9].
  • 2e Dichotomie :
    • Milieu : c2 = (0.7 + 0.9) / 2 = 0.8.
    • Le texte indique f(0.8) < 0.
    • Puisque f(0.7) > 0 et f(0.8) < 0, la racine serait dans [0.7, 0.8].

L'intervalle [0.7, 0.8] a une longueur de 0.1, ce qui correspond à la longueur requise. Cependant, cette localisation est basée sur des prémisses erronées concernant les valeurs de f(x).

3. Vérifier que g vérifie les conditions du théorème de point fixe

La fonction g(x) est définie comme g(x) = x + ln(x+1) + 0.2. Nous cherchons à vérifier les conditions du théorème de point fixe sur l'intervalle [0.7, 0.8].

Les conditions sont :

  1. g est continue sur [0.7, 0.8]. (Vrai, car ln(x+1) est continue pour x > -1).
  2. g([0.7, 0.8]) ⊆ [0.7, 0.8] (L'intervalle est préservé).
  3. |g'(x)| ≤ k < 1 pour tout x ∈ [0.7, 0.8] (Condition de contraction).

Vérifions les conditions 2 et 3 :

  • Condition 2 : Préservation de l'intervalle
    • Calculons les valeurs de g(x) aux bornes de l'intervalle :
      • g(0.7) = 0.7 + ln(1.7) + 0.2 ≈ 0.7 + 0.5306 + 0.2 = 1.4306
      • g(0.8) = 0.8 + ln(1.8) + 0.2 ≈ 0.8 + 0.5878 + 0.2 = 1.5878
    • Puisque g(0.7) ≈ 1.4306 et g(0.8) ≈ 1.5878, et que g'(x) = 1 + 1/(x+1) > 0 (donc g est croissante), l'image de l'intervalle est g([0.7, 0.8]) ≈ [1.4306, 1.5878].
    • Cet intervalle [1.4306, 1.5878] n'est pas inclus dans [0.7, 0.8].
  • Condition 3 : Contraction
    • Calculons la dérivée de g(x) : g'(x) = d/dx [x + ln(x+1) + 0.2] = 1 + 1/(x+1).
    • Pour x ∈ [0.7, 0.8] :
      • x+1 ∈ [1.7, 1.8]
      • 1/(x+1) ∈ [1/1.8, 1/1.7] ≈ [0.555, 0.588]
      • g'(x) ∈ [1 + 0.555, 1 + 0.588] ≈ [1.555, 1.588]
    • Puisque |g'(x)| > 1 sur l'intervalle [0.7, 0.8], la condition de contraction n'est pas satisfaite.

En conclusion, la fonction g(x) ne vérifie pas les conditions du théorème de point fixe sur l'intervalle [0.7, 0.8].

Note : Les informations et les valeurs présentées dans le texte original concernant g'(x) et les images de g(x) étaient incorrectes et contredisaient la définition de g(x).

4. Étudier la convergence de la méthode de point fixe

Étant donné que la fonction g(x) = x + ln(x+1) + 0.2 ne satisfait pas les conditions du théorème de point fixe sur l'intervalle [0.7, 0.8] (spécifiquement, elle n'est pas contractante et ne préserve pas l'intervalle), la méthode de point fixe pour cette fonction et cet intervalle n'est pas garantie de converger. En fait, comme |g'(x)| > 1, la méthode serait divergente.

Note : La conclusion du texte original sur la convergence de la méthode est incorrecte au vu des propriétés de la fonction g(x) définie.

Foire Aux Questions (FAQ)

Qu'est-ce qu'un système mal conditionné en analyse numérique ?

Un système linéaire est dit mal conditionné si de petites variations dans ses coefficients ou dans le vecteur du second membre peuvent entraîner de grandes variations dans la solution. Cela est quantifié par le nombre de conditionnement d'une matrice : plus ce nombre est élevé, plus le système est mal conditionné et plus il est sensible aux erreurs de calcul ou aux incertitudes des données.

Pourquoi la méthode de Cholesky n'est-elle pas toujours applicable ?

La méthode de Cholesky est une technique de décomposition matricielle très efficace pour résoudre des systèmes linéaires, mais elle a des exigences strictes. Elle ne peut être appliquée qu'à des matrices qui sont à la fois symétriques (A = AT) et définies positives (pour tout vecteur non nul x, xTAx > 0). Si l'une de ces conditions n'est pas remplie, la décomposition de Cholesky n'est pas possible.

Comment choisir une fonction g(x) pour la méthode du point fixe afin d'assurer la convergence ?

Pour assurer la convergence de la méthode du point fixe xk+1 = g(xk), il est crucial que la fonction g(x) respecte deux conditions principales sur l'intervalle de recherche de la racine :

  1. L'intervalle doit être préservé : g(I) ⊆ I.
  2. La fonction g(x) doit être contractante sur cet intervalle, c'est-à-dire que |g'(x)| ≤ k < 1 pour une constante k et pour tout x dans l'intervalle.
Un bon choix de g(x) à partir de f(x)=0 est souvent x = x ⋅ α ⋅ f(x) pour un α bien choisi.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne