Python을 사용하여 행렬의 표준과 행렬식을 찾는 방법

WBOY
풀어 주다: 2023-05-10 23:10:06
앞으로
1326명이 탐색했습니다.

scipy.linalg 함수에는 두 개의 매개변수가 제공되는 경우가 많습니다. 하나는 true인 경우 제한된 검사가 수행됩니다. 수행되는 경우 다른 유형은 overwrite_xxxx이며, 이는 계산 프로세스 중에 xxxx를 덮어쓸 수 있는지 여부를 나타냅니다. 단순화를 위해 나중에 a가 덮어쓰기 스위치를 제공한다고 설명하겠습니다. 이는 True일 때 매개변수 overwrite_a가 있음을 의미합니다. code>는 계산 프로세스를 재정의합니다. 제한된 확인 스위치가 제공되면 check_finite 매개변수가 제공된다는 의미입니다. 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)
로그인 후 복사

其中ord用于声明范数的阶

ord矩阵范数向量范数



None弗罗贝尼乌斯范数2-范数
'fro'弗罗贝尼乌斯范数-
'nuc'核范数-
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范数为

Python을 사용하여 행렬의 표준과 행렬식을 찾는 방법

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

Frobenius范数可定义为

Python을 사용하여 행렬의 표준과 행렬식을 찾는 방법

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

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

norm(x, ord=None, axis=None, keepdims=False)
로그인 후 복사

其中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
로그인 후 복사

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

umpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)
로그인 후 복사

其中

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

  • axis1, axis2 表示坐标轴

  • dtype

    Norm

    norm 함수는 scipy.linalg에 제공되어
  • >>> 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
    로그인 후 복사
    여기서 ord로 정의된 표준을 찾습니다. 는 노름의 순서를 선언하는 데 사용됩니다. 🎜 tr>max(sum(abs(a), 축=0))
    ord 행렬 노름 벡터 노름 숫자



    td>
    없음 프로베니우스 노름 2-노름
    'fro' 프로베니우스 표준 -
    'nuc' 핵 표준 -
    inf max(sum( abs(a), 축=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-노름(최대 특이값)
    -2 최소 특이값
    🎜 a가 벡터인 경우. >ord는 0이 아닌 정수이며 n nn으로 기록됩니다. a i a_iai를 행렬 a aa의 요소로 두고 행렬의 n nn 노름은 ​​🎜 🎜파이썬을 사용하여 행렬의 노름과 행렬식을 찾는 방법🎜🎜kernel 노름도, "추적 놈"으로 알려져 있으며, 행렬의 모든 특이값의 합을 나타냅니다. 🎜🎜Frobenius 표준은 다음과 같이 정의할 수 있습니다.🎜🎜Python을 사용하여 표준을 찾는 방법 of a 행렬 및 행렬식🎜🎜핵심은 행렬에서 벡터의 2-노름을 자연스럽게 일반화하는 것입니다. 🎜🎜scipy.linalg 외에도 numpy.linalg는 매개변수가 🎜rrreee🎜인 norm도 제공합니다. 여기서 order는 선택 사항입니다. 의 매개변수는 scipy.linalgnorm 함수와 동일합니다. 🎜

    행렬

    🎜 scipy.linalg에서 행렬식 함수는 det이고 정의는 매우 간단합니다. 단, 찾을 행렬은 a 외에도 재정의 스위치와 a에 대한 제한된 검사만 있습니다. 🎜🎜예제는 다음과 같습니다🎜rrreee

    trace

    🎜scipy.linalgtrace 기능을 제공하지 않지만, numpy는 그렇습니다. 정의는 🎜rrreee🎜입니다. 여기서 🎜
    • 🎜offset은 주 대각선을 기준으로 한 오프셋을 나타내는 오프셋입니다 🎜🎜
    • 🎜axis1, axis2는 좌표축을 나타냅니다🎜🎜
    • 🎜dtype은 출력 값을 조정하는 데 사용되는 데이터 유형입니다🎜🎜🎜rrreee

    위 내용은 Python을 사용하여 행렬의 표준과 행렬식을 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿