Des calculs précis avec des matrices Totalement non négatifs

Original: http://math.mit.edu/~plamen/software/TNTool.html


Version actuelle Paru le 16 Août 2013.
Quoi de neuf:

  •      TNQR maintenant retourne Q. Proposé par Richard Carini.
  •      TNBDBVR (contribution de JoséJavier Martinez) pour la décomposition d’une matrice bidiagonale BernsteinVandermonde rectangulaire.

Remerciements
Ce logiciel a été développé dans le cadre du soutien de la NSF Grant DMS-0314286


Les instructions d’installation:
Téléchargez et décompressez le package TNTool.zip. Vous devrez peut-être recompiler mexdlasq1.c en tapant “mex mexdlasq1.c” à l’invite MATLAB.


Description:
Ce logiciel peut effectuer pratiquement tous les calculs matriciels avec des matrices non singulières totalement non négatifs à la précision relative élevée. En d’autres termes, malgré un mauvais conditionnement typique notoire de ces matrices, il est possible de réaliser pratiquement tous les calculs avec eux presque comme si aucune erreur d’arrondi se produisent dans le processus (ce qui signifie que l’incertitude de la sortie est sensiblement le même que celui de la entrée).

La plupart des algorithmes sont décrits ici et ici. Toutes les matrices TN sont représentés par leurs décompositions bidiagonale.
HRA signifie Haute précision relative.” La plupart des fonctions offrent une telle précision.


Description de la fonction:

TNEigenvalues
Syntaxe: z = TNEigenvalues (B)
Description: calcule les valeurs propres de la matrice de TN A, dont la décomposition est stocké dans bidiagonale B (ce est à dire, B = BD (A)) à HRA.
Exemple 1: TNEigenvalues ([1 2; 3 4]) renvoie les valeurs propres: [10,6235; 0,3765] de la matrice de TN [1 2; 3 10], dont la décomposition est stocké comme bidiagonale [1 2; 3 4].
Exemple 2: TNEigenvalues (ceux (n)) renvoie les valeurs propres de la matrice n par n Pascal.

TNSingularValues
Syntaxe: z = TNSingularValues (B)
Description: Calcule les valeurs singulières de la matrice A, telle que B = BD (A), au HRA.

TNAddToNext
Syntaxe: A = TNAddToNext (B, x, i)
Description: Si A est une matrice TN, tel que B = BD (A), cette fonction calcule la décomposition bidiagonale de la matrice TN obtenu de A en ajoutant x fois la (i-1) er rang au ième. La procédure est gratuite soustraction et le résultat est calculé à HRA.
Commentaires: Pour les mêmes opérations sur les colonnes, travailler sur B ‘et de les transposer.

TNAddToPrevious
Syntaxe: A = TNAddToPrevious (B, x, y, i)
Description: Vu B = BD (A), où A est TN, ce sous-programme calcule la décomposition bidiagonale de la matrice de TN obtenu à partir de A, en ajoutant un multiple X de la ième colonne de la (i-1) ème et mise à l’échelle des colonnes i -1 et i par y et 1 / y, respectivement. La procédure est gratuite soustraction et le résultat est calculé à HRA.
Commentaires: Pour les mêmes opérations sur les lignes, travailler sur B ‘et de les transposer.

TNBDBV
Syntaxe: A = TNBDBV (c)
Description: Calcule la décomposition bidiagonale d’une matrice de VandermondeBernstein correspondant à un problème d’interpolation de Lagrange en utilisant la base de Bernstein. Ici, c est le vecteur contenant les noeuds d’interpolation. Il est basé sur le papier Un algorithme rapide et précis pour résoudre BernsteinVandermonde systèmes linéaires(Algèbre linéaire et ses applications, 2007).
Commentaires: écrit et contribué par Ana Marco et Jose Javier Martinez

TNBDBVR
Syntaxe: A = TNBDBVR (c, m1)
Description: Calcule la décomposition bidiagonale d’une matrice rectangulaire BernsteinVandermonde. Ici, c est le vecteur des noeuds et m1 est le nombre de colonnes de la matrice.
Commentaires: écrit et contribué par Ana Marco et Jose Javier Martinez

TNBDCV
Syntaxe: A = TNBDCV (d, s, c)
Description: Calcule la décomposition bidiagonale d’une matrice de Cauchy-Vandermonde dont un seul pôle est multiple. d est le pôle. s est la multiplicité de d. c est le vecteur des noeuds d’interpolation. Il utilise l’algorithme de MartinezPena décrit dans le document Factorisations de matrices de Cauchy-Vandermonde avec un pôle multiple,Des recherches récentes sur pur et algèbre, 85-95, Nouvelle Sci appliquée. Publ., Hauppauge, NY, 2003.
Commentaires: écrit et contribué par Ana Marco, JoséJavier Martinez, Juan Manuel Pena.

TNbidiag
Syntaxe: C = TNbidiag (B)
Description: Effectuer Golub-Kahan bidiagonalization d’une matrice A TN, tel que B = BD (A). Retourne BD (C), où C est bidiagonale, calculé à HRA.

TNCauchyBD
Syntaxe: B = TNCauchyBD (x, y)
Description: Calcule la décomposition bidiagonale B = BD (C) de la matrice de Cauchy C (i, j) = 1 / (x (i) + y (j)) à HRA.
Commentaires: il faut avoir x (1) <<x (n), y (1) <<y (n) et x (1) + y (1)> 0 pour que C pour être TN.

TNCauchyEig
Syntaxe: z = TNCauchyEig (x, y)
Description: Calcule les valeurs propres de la matrice de Cauchy C (i, j) = 1 / (x (i) + y (j)) pour HRA.
Commentaires: il faut avoir x (1) <<x (n), y (1) <<y (n) et x (1) + y (1)> 0 pour que C pour être TN.
Exemple: TNCauchyEig ([01:10, 0: 9]) renvoie les valeurs propres de la matrice de 10 par 10 Hilbert.

TNCauchySVD
Syntaxe: s = TNCauchySVD (x, y)
Description: calcule les valeurs singulières de la matrice de Cauchy C (i, j) = 1 / (x (i) + y (j)) à HRA.
Commentaires: il faut avoir x (1) <<x (n), y (1) <<y (n) et x (1) + y (1)> 0 pour que C pour être TN.

TNDiagonalScale
Syntaxe: A = TNDiagonalScale (f, B)
Description: Si B = BD (A), calcule BD (diag (f) * A) à HRA.
Commentaires: Fonctionne sur des matrices rectangulaires.

TNExpand
Syntaxe: A = TNExpand (B)
Description: Renvoie la matrice TN A, dont la décomposition est stockée dans bidiagonale B, au HRA.
Commentaires: Une fois que A est récupéré à partir de BD = B (A), il ne est pas, en général, possible de récupérer BD (A) d’une façon précise.

TNGVandBD
Syntaxe: B = TNGVandBD (x, lambda)
Description: Calcule la décomposition bidiagonale du TN généralisée Vandermonde matrice G = [xij1 + lambda (nj + 1)] pour HRA. Pour G soit TN, nous devons avoir 0 <x (1) <<x (n) et réel, et lambda (1)> = lambda (2)> = > = lambda (n )> = 0 doivent être des entiers.

TNGVandEig
Syntaxe: B = TNGVandEig (x, lambda)
Description: Calcule les valeurs propres d’une matrice de Vandermonde TN généralisée (voir TNGVandBD pour les détails).

TNGVandSVD
Syntaxe: B = TNGVandSVD (x, lambda)
Description: Calcule la SVD d’une matrice de Vandermonde TN généralisée (voir TNGvandBD pour les détails).

TNGVandSolve
Syntaxe: y = TNGVandSolve (lambda, x, b)
Description: Résout Gy = b, où G est un TN généralisée matrice Vandermonde (tels que définis dans TNGVandBD), en utilisant une méthode de typePereyra Bjôrck.
Commentaires: Voir le document intitulé “La Solution précis et efficace d’un système linéaire Vandermonde généralisé totalement positif,” ici pour les détails.

TNInverse
Syntaxe: C = TNInverse (B)
Description: Compte tenu B = BD (A), retourne C = BD (A-1) pour HRA.

TNJInverse
Syntaxe: C = TNJInverse (B)
Description: Compte tenu B = BD (A), retourne la décomposition bidiagonale de la Jinverse de A: JA-1J, où J = diag ((1) i), à la HRA.
Commentaires: JA-1J est TN. TNJInverse (B) est la même que abs (TNInverse (B)).

TNProduct
Syntaxe: C = TNProduct (A, B)
Description: Compte tenu de A = BD (F) et B = BD (G), calcule C = BD (FG) pour HRA.
Commentaires: Lorsque F et G sont TN, il en est de FG.

TNQR
Syntaxe: [Q, C] = TNQR (B)
Description: Vu = BD B (A), avec A = QR étant la décomposition QR de A avec la diagonale de R positif, renvoie C = BD (R) de HRA et la matrice Q. La matrice Q est également précise dans la sens approprié, mais chaque élément est pas exact de HRA.
Remarques: Le calcul de Q ajouté le 16 Août 2013, en Richard Carini.

TNQRiter
Syntaxe: C = TNQRiter (B)
Description: Compte tenu B = BD (A), retourne C = BD (F) pour HRA, où A est symétrique et F = Q ^ TAQ est le résultat d’une étape de QR itération sans pivotement. En d’autres termes, si A = QR est la décomposition QR de A avec la diagonale de R étant positif, alors F = RQ. La matrice F est TP (type ‘aide TNQRiterpour plus de détails).

TNRandom
Syntaxe: A = TNRandom (m, n)
Description: Génère une matrice TN aléatoire que A = TNExpand (rand (m, n)).

TNSchurComplement
Syntaxe: C = TNSchurComplement (B)
Description: Compte tenu B = BD (A), calcule C = BD (E), où E est obtenu à partir de A après une étape de l’élimination gaussienne pour HRA.
Commentaires: On peut alors «effacer» la première rangée et / ou colonne en utilisant TNSubmatrix afin d’obtenir la décomposition bidiagonale du complément de Schur seulement.

TNSolve
Syntaxe: x = TNSolve (B, b)
Description: Si A et B est TN = BD (A), résout le système linéaire Ax = b en utilisant la substitution vers l’arrière. Ainsi, pour ne importe quelle matrice de TN pour lesquels BD (A) est disponible, TNSolve donne une méthode de type BjôrckPereyra.
Exemple: La résolution d’un système d’équations Vandermonde se fait comme TNSolve (TNVandBD (x), b), où x sont les noeuds de la matrice de Vandermonde.

TNSubmatrix
Syntaxe: C = TNSubmatrix (B, i)
Description: Si A et B est TN = BD (A), calcule la décomposition bidiagonale de la sous-matrice de A obtenue en effaçant la ligne i de A à HRA.
Commentaires: Un sous-matrice d’une matrice TN est TN. En appliquant cette fonction de façon répétée, on peut obtenir la décomposition de toute sous-matrice bidiagonale d’une matrice TN HRA, compte tenu de la décomposition bidiagonale de la matrice d’origine pour commencer.

TNTridiagGECP
Syntaxe: [P, L, D] = TNTridiagGECP (B)
Description: Si T est symétrique, tridiagonale, et TN, et B = BD (T), cette routine calcule la décomposition du LDU T résultant de l’élimination de Gauss avec pivotant complète T = PLDLTPT au HRA.
Commentaires: Un O (n3) algorithme pour calculer une décomposition de rang révélant d’une matrice TN trigiagonal (qui est simplement une matrice SPD positif).

TNtridiag
Syntaxe: C = TNtridiag (B)
Description: Si B = BD (A), et A est un TN, calcule BD (T) à HRA, où T est une matrice tridiagonale de TN symétrique semblable à A.
Commentaires: bloc de construction de TNEigenvalues.

TNTridiagMinor
Syntaxe: a = TNTridiagMinor (B, alpha, bêta)
Description: Si B = BD (A), où A est tridiagonale matrice TN symétrique, calcule det A (alpha, bêta) pour HRA. alpha et bêta sont des ensembles d’index, qui doivent être de la même longueur et triés dans l’ordre croissant.

TNTridiagSubmatrix
Syntaxe: C = TNTridiagSubmatrix (B, alpha)
Description: Si B = BD (A), où A est tridiagonale, symétrique, et TN, calcule BD (A (alpha, alpha)), où alpha est un ensemble d’indices.

TNVandBD
Syntaxe: B = TNVandBD (x)
Description: Calcule la décomposition bidiagonale du TN matrice Vandermonde V = [xij1] pour HRA. Pour être TN V, nous devons avoir 0 <x (1) <<x (n) et réel.

TNVandEig
Syntaxe: B = TNVandEig (x)
Description: Calcule les valeurs propres d’une matrice de Vandermonde TN (voir TNVandBD pour les détails).

TNVandSVD
Syntaxe: B = TNVandSVD (x)
Description: Calcule la SVD d’une matrice TN Vandermonde (voir TNVandBD pour les détails).

TNBD
Syntaxe: B = TNBD (A)
Description: Calcule la décomposition bidiagonale de la matrice A en effectuant Neville élimination.
Commentaires: Ce est la seule fonction dans le paquet qui ne garantit pas l’exactitude relative élevée. Il est fourni comme un outil de débogage, car il faut avoir TNExpand (TNBD (A)) = A en arithmétique exacte.