scipy.sparse.linalg.

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