onenormest#
- scipy.sparse.linalg.onenormest(A, t=2, itmax=5, compute_v=False, compute_w=False)[Quellcode]#
Berechnet eine untere Schranke der 1-Norm eines spärlichen Arrays.
- Parameter:
- Andarray oder anderer linearer Operator
Ein linearer Operator, der transponiert werden kann und Matrixprodukte erzeugen kann.
- tint, optional
Ein positiver Parameter, der den Kompromiss zwischen Genauigkeit und Zeit- sowie Speicherverbrauch steuert. Größere Werte dauern länger und verbrauchen mehr Speicher, liefern aber genauere Ergebnisse.
- itmaxint, optional
Verwendet höchstens so viele Iterationen.
- compute_vbool, optional
Fordert einen normmaximierenden linearen Operator-Eingabevektor an, falls True.
- compute_wbool, optional
Fordert einen normmaximierenden linearen Operator-Ausgabevektor an, falls True.
- Rückgabe:
- estfloat
Eine Unterschätzung der 1-Norm des spärlichen Arrays.
- vndarray, optional
Der Vektor, für den gilt ||Av||_1 == est*||v||_1. Er kann als Eingabe für den linearen Operator betrachtet werden, die eine Ausgabe mit besonders großer Norm ergibt.
- wndarray, optional
Der Vektor Av, der eine relativ große 1-Norm hat. Er kann als Ausgabe des linearen Operators betrachtet werden, die im Verhältnis zur Eingabe eine relativ große Norm aufweist.
Hinweise
Dies ist Algorithmus 2.4 von [1].
In [2] wird er wie folgt beschrieben: „Dieser Algorithmus erfordert typischerweise die Auswertung von etwa 4t Matrix-Vektor-Produkten und liefert fast immer eine Normschätzung (die tatsächlich eine untere Schranke der Norm ist), die innerhalb eines Faktors 3 korrekt ist.“
Hinzugefügt in Version 0.13.0.
Referenzen
[1]Nicholas J. Higham und Francoise Tisseur (2000), „A Block Algorithm for Matrix 1-Norm Estimation, with an Application to 1-Norm Pseudospectra.“ SIAM J. Matrix Anal. Appl. Bd. 21, Nr. 4, S. 1185-1201.
[2]Awad H. Al-Mohy und Nicholas J. Higham (2009), „A new scaling and squaring algorithm for the matrix exponential.“ SIAM J. Matrix Anal. Appl. Bd. 31, Nr. 3, S. 970-989.
Beispiele
>>> import numpy as np >>> from scipy.sparse import csc_array >>> from scipy.sparse.linalg import onenormest >>> A = csc_array([[1., 0., 0.], [5., 8., 2.], [0., -1., 0.]], dtype=float) >>> A.toarray() array([[ 1., 0., 0.], [ 5., 8., 2.], [ 0., -1., 0.]]) >>> onenormest(A) 9.0 >>> np.linalg.norm(A.toarray(), ord=1) 9.0