Élimination gaussienne partielle Pivotant - Corner Cleve Cleve Moler sur les mathématiques et l'informatique

Dans de rares cas, l'élimination de Gauss avec pivot partiel est instable. Mais les situations sont si peu probable que nous continuons d'utiliser l'algorithme comme la base de nos calculs de la matrice.

pivot croissance

Je hésite presque à soulever cette question. élimination de Gauss avec pivotement partiel est potentiellement instable. Nous savons d'une matrice de test particulier, et ont su pendant des années, où la solution aux équations linéaires simultanées calculées par notre opérateur backslash emblématique est moins précis que nous nous attendons en général. La solution est contaminée par de grandes erreurs d'arrondi de façon inacceptable associés à de grands éléments rencontrés au cours du processus d'élimination. La matrice incriminée est générée par la fonction suivante, qui est un cas particulier de la fonction GFPP dans la collection de Nick Higham des matrices de test Matlab.

Voici le 8-en-8.

élimination de Gauss avec pivot partiel ne fait pas réellement tout pivotement avec cette matrice particulière. La première ligne est ajoutée à chacune des autres rangées d'introduire des zéros dans la première colonne. Cela produit deux par deux dans la dernière colonne. Comme des étapes similaires sont répétées pour créer un des éléments de U. triangulaires supérieures dans la dernière colonne double avec chaque étape. La croissance de l'élément dans l'élément triangulaire finale U est 2 ^ (n-1).

Donc, si la matrice d'ordre n est réglé sur le nombre de bits dans le mot à virgule flottante (plus un), le dernier élément diagonal de U va croître à 1 / eps.

Si nous essayons d'utiliser la barre oblique inverse pour résoudre un système linéaire impliquant cette matrice et un côté droit aléatoire, la substitution de retour commencera par U (n, n). Les erreurs d'arrondi peuvent s'attendre à être aussi grand au format EPS (U (n, n)) et marais la solution elle-même.

Ordinairement, nous nous attendons à la solution calculée par élimination gaussienne d'avoir un résidu de l'ordre d'erreur roundoff. Mais dans ce cas, le résidu est de plusieurs ordres de grandeur plus grand. Backslash a échoué.

Tout ce que nous faisons à cette matrice pour provoquer le pivotement lors de l'élimination empêchera la croissance des éléments en U. Une possibilité est d'échanger les deux premières lignes.

C'est beaucoup mieux. Maintenant, utilisez la barre oblique inverse et regarder le résidu.

Ainsi, le résidu est maintenant de l'ordre de roundoff par rapport à A et x. Backslash fonctionne comme prévu.

Présentez-bruit

Une autre façon de provoquer le pivotement est de la matrice avec perturberait un peu de bruit blanc.

Alors U est bien comportés. Voyons voir à propos backslash.

Encore une fois le résidu est de l'ordre de roundoff et fonctionne backslash comme prévu.

Facteur de croissance

Supposons que nous utilisons l'élimination gaussienne avec tout processus pivotant pour résoudre un système d'équations linéaires impliquant une matrice $ A $. Soit a _ $ ^ $ représentent les éléments de la matrice après l'étape e $ k $ de l'élimination. Le facteur de croissance pour le processus de pivotement est la quantité

Ce facteur de croissance est une quantité cruciale dans l'analyse des erreurs de Wilkinson roundoff. Si $ \ rho $ est pas trop grand, alors l'algorithme d'élimination est stable. Malheureusement, la matrice que nous venons de le voir, GFPP. montre que le facteur de croissance pour le pivotement partiel est d'au moins 2 $ ^ $.

Au moment où il présentait son analyse au début des années 1970, Wilkinson était au courant de cette matrice. Mais il a dit qu'il était un cas très particulier. Il a indiqué:

Nous savons par expérience que toute augmentation substantielle de la taille des éléments de même successifs An est rare avec un pivotement extrêmement partiel. Aucun exemple qui a surgi a naturellement dans mon expérience étant donné une augmentation aussi importante que 16.

Au cours du développement de Linpack dans les années 1970, un collègue à l'Argonne, J. T. Goodman, et je l'ai fait quelques expériences avec des matrices aléatoires pour vérifier la croissance de l'élément à pivotement partiel. Nous avons utilisé plusieurs distributions d'éléments différents et ce qui était alors des matrices d'ordre modeste, à savoir les valeurs de $ n $ entre 10 et 50. Le plus grand facteur de croissance que nous avons trouvé était pour une matrice de 0 et de 1 de l'ordre 40. La valeur était $ \ rho $ = 23. on n'a jamais vu une croissance aussi importante que linéaire, $ \ rho = n $, et encore moins exponentielle, $ \ rho = 2 ^ $.

La croissance moyenne des affaires

Est stable à l'élimination de Gauss de pivotement partielle en moyenne? Tout ce que nous savons sur le sujet indique que la réponse est catégoriquement oui, et que l'on n'a pas besoin d'hypothèses au-delà des propriétés statistiques pour expliquer le succès de cet algorithme pendant près d'un demi-siècle de calcul numérique.

La croissance Worst Case

Les Higham Brothers, Nick et Des Higham, a publié un document en 1989 sur les facteurs de croissance dans l'élimination gaussienne. La plupart de leur papier applique à tout type de pivotement et implique une croissance qui est $ O (n) $. Mais ils ont un théorème qui applique uniquement au pivotement partiel et qui caractérise toutes les matrices qui ont $ \ rho = 2 ^ $. Essentiellement, ces matrices doivent avoir le comportement que nous avons vu dans GFPP. à savoir aucun pivotement réel et chaque étape ajoute une ligne à toutes les lignes suivantes, en doublant les valeurs de la dernière colonne dans le processus.

La croissance exponentielle dans la pratique

complète pivotant

pivotant complet nécessite O $ (n ^ 3) $ comparaisons au lieu de $ O (n ^ 2) $ requis par pivotement partiel. Plus important encore, l'accès complet répété à l'ensemble de la matrice modifie les modèles d'accès mémoire. Avec hiérarchie de stockage informatique moderne, y compris le cache et la mémoire virtuelle, c'est une considération très importante.

Le facteur de croissance $ \ rho $ avec un pivotement complet est intéressant et je prévois de mener une enquête dans mon prochain blog.

Lugui est l'un des programmes de démonstration inclus avec calcul numérique avec Matlab. Je vais aussi décrire dans mon prochain blog. Pour l'instant, je vais l'utiliser pour générer un graphique pour ce blog. Voici le résultat d'une factorisation, le facteur triangulaire inférieure L en vert et le facteur triangulaire supérieure U en bleu.

Élimination gaussienne partielle Pivotant - Corner Cleve Cleve Moler sur les mathématiques et l'informatique

Les références

Higham / papiers / hihi89.pdf>, SIAM J. Matrice Anal. Appl. 10, 155-164, 1989.

Articles Liés