Heim > Backend-Entwicklung > Python-Tutorial > So ermitteln Sie mit Python die Norm und die Determinante einer Matrix

So ermitteln Sie mit Python die Norm und die Determinante einer Matrix

WBOY
Freigeben: 2023-05-10 23:10:06
nach vorne
1338 Leute haben es durchsucht

In der Funktion von scipy.linalg werden häufig zwei Parameter bereitgestellt. Einer ist check_finite. Wenn er True ist, erfolgt eine begrenzte Prüfung Der andere Typ ist overwrite_xxxx, der angibt, ob xxxx während des Berechnungsprozesses überschrieben werden kann. Der Einfachheit halber wird später gesagt, dass a einen Überschreibschalter bereitstellt, was bedeutet, dass es einen Parameter overwrite_a gibt, wenn er True ist. code> ermöglicht das Überschreiben des Berechnungsprozesses. Wenn ein eingeschränkter Prüfschalter bereitgestellt wird, bedeutet dies, dass der Parameter <code>check_finite bereitgestellt wird. scipy.linalg的函数中,往往会提供两种参数,其一是check_finite,当为True时将进行有限检查,另一类是overwrite_xxxx,表示xxxx在计算过程中是否可以被覆写。简洁起见,后文中说a提供覆写开关,就表示存在一个参数overwrite_a,当其为True时,a允许计算过程中被覆写;若说提供有限检查开关,则代表提供check_finite参数。

范数

scipy.linalg中提供了函数norm用来求范数,其定义为

norm(a, ord=None, axis=None, keepdims=False, check_finite=True)
Nach dem Login kopieren

其中ord用于声明范数的阶

ord矩阵范数向量范数



None弗罗贝尼乌斯范数2-范数
&#39;fro&#39;弗罗贝尼乌斯范数-
&#39;nuc&#39;核范数-
infmax(sum(abs(a), axis=1))max ⁡ ( ∣ a ∣ )
-infmin(sum(abs(a), axis=1))min ⁡ ( ∣ a ∣ )
0-sum(a!=0)
1max(sum(abs(a), axis=0))
-1min(sum(abs(a), axis=0))
22-范数(最大奇异值)
-2最小奇异值

a为向量,若ord为非零整数,记作n nn,设a i a_iai为矩阵a aa中的元素,则矩阵的n nn范数为

So ermitteln Sie mit Python die Norm und die Determinante einer Matrix

核范数又称“迹范数” (trace norm),表示矩阵的所有奇异值之和。

Frobenius范数可定义为

So ermitteln Sie mit Python die Norm und die Determinante einer Matrix

其实质是向量的2-范数在矩阵中的自然推广。

除了scipy.linalg之外,numpy.linalg中也提供了norm,其参数为

norm(x, ord=None, axis=None, keepdims=False)
Nach dem Login kopieren

其中order的可选参数与scipy.linalg中的norm函数相同。

行列式

scipy.linalg中,行列式函数为det,其定义非常简单,除了待求矩阵a之外,就只有a的覆写开关和有限检查。

示例如下

import numpy as np
from scipy import linalg
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
linalg.det(a)
# 0.0
a = np.array([[0,2,3], [4,5,6], [7,8,9]])
linalg.det(a)
# 3.0
Nach dem Login kopieren

scipy.linalg不提供trace函数,但是numpy提供,其定义为

umpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)
Nach dem Login kopieren

其中

  • offset为偏移量,表示相对于主对角线的偏移

  • axis1, axis2 表示坐标轴

  • dtype

    Norm

    Die Funktion norm wird in scipy.linalg bereitgestellt, um die Norm zu finden, die als
  • >>> x = np.random.rand(3,3)
    >>> print(x)
    [[0.26832187 0.64615363 0.09006217]
     [0.63106319 0.65573765 0.35842304]
     [0.66629322 0.16999836 0.92357658]]
    >>> np.trace(x)
    1.8476361016546932
    Nach dem Login kopieren
    wobei ord definiert ist wird verwendet, um die Reihenfolge der Norm zu deklarieren 🎜 tr>max(sum(abs(a), axis=0))
    ord Matrixnorm Vektornorm Nummer



    td>
    Keine Frobenius-Norm 2-Norm
    'fro' Frobenius-Norm -
    'nuc' Kernnorm -
    inf max(sum( abs(a), axis=1)) max ⁡ ( ∣ a ∣ )
    -inf min(sum(abs(a), axis=1)) min ⁡ ( ∣ a ∣ )
    0 - sum(a!=0)
    1
    td>
    -1 min(sum(abs(a), axis=0))
    2 2-norm (maximaler Singulärwert)
    -2 Minimaler Singularwert
    🎜 Wenn a ein Vektor ist >ord ist eine Ganzzahl ungleich Null und wird als n nn aufgezeichnet. Seien a i a_iai die Elemente in der Matrix a aa, dann ist die n nn-Norm der Matrix 🎜 🎜Wie man mit Python die Norm und Determinante einer Matrix findet🎜🎜kernel Auch die Norm bekannt als „Spurennorm“, stellt die Summe aller singulären Werte der Matrix dar. 🎜🎜Frobenius-Norm kann definiert werden als🎜🎜So verwenden Sie Python, um die Norm zu finden einer Matrix und einer Determinante“ />🎜🎜Das Wesentliche ist die natürliche Verallgemeinerung der 2-Norm von Vektoren in Matrizen. 🎜🎜Zusätzlich zu <code>scipy.linalg</code> bietet <code>numpy.linalg</code> auch <code>norm</code>, dessen Parameter 🎜rrreee🎜wobei <code>order Optional ist Die Parameter von </code> sind die gleichen wie die der Funktion <code>norm</code> in <code>scipy.linalg</code>. 🎜<h3>Determinante</h3>🎜In <code>scipy.linalg</code> ist die Determinantenfunktion <code>det</code> und ihre Definition ist sehr einfach, mit Ausnahme der zu findenden Matrix < code>a Abgesehen von </code> gibt es nur Override-Schalter und begrenzte Prüfungen von <code>a</code>. 🎜🎜Das Beispiel sieht wie folgt aus: rrreee<h3>trace</h3>🎜<code>scipy.linalg</code> stellt nicht die Funktion <code>trace</code> bereit, sondern <code>numpy</code > tut es, und seine Definition ist 🎜rrreee🎜wobei 🎜<ul class=" list-paddingleft-2><li>🎜<code>offset</code> der Versatz ist, der den Versatz relativ zur Hauptdiagonale 🎜🎜 angibt </li>
<li> 🎜<code>axis1, axis2</code> stellt die Koordinatenachse dar🎜🎜</li>
<li>🎜<code>dtype</code> ist der Datentyp, der zum Anpassen des Ausgabewerts verwendet wird🎜🎜🎜rrreee</li><p>Das obige ist der detaillierte Inhalt vonSo ermitteln Sie mit Python die Norm und die Determinante einer Matrix. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!</p>                </div>
            </div>
            <div style=
    Verwandte Etiketten:
    Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage