在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ Scipy Linalg
Scipy積分
Scipy優(yōu)化算法
Scipy特殊包
Scipy簇聚
Scipy ODR
Scipy Ndimage
Scipy插值
Scipy CSGraph
Scipy輸入和輸出
Scipy開發(fā)環(huán)境安裝
Scipy簡介
Scipy常量
Scipy統(tǒng)計函數(shù)
Scipy Linalg
Scipy空間
Scipy FFTpack
Scipy基本功能
Scipy教程

Scipy Linalg

SciPy是使用優(yōu)化的ATLAS LAPACK和BLAS庫構(gòu)建的。 它具有非??斓木€性代數(shù)能力。 所有這些線性代數(shù)例程都需要一個可以轉(zhuǎn)換為二維數(shù)組的對象。 這些例程的輸出也是一個二維數(shù)組。

SciPy.linalg與NumPy.linalg

scipy.linalg包含numpy.linalg中的所有函數(shù)。 另外,scipy.linalg還有一些不在numpy.linalg中的高級函數(shù)。 在numpy.linalg上使用scipy.linalg的另一個優(yōu)點是它總是用BLAS/LAPACK支持編譯,而對于NumPy,這是可選的。 因此,根據(jù)NumPy的安裝方式,SciPy版本可能會更快。

線性方程組

scipy.linalg.solve特征為未知的x,y值求解線性方程a * x + b * y = Z。

作為一個例子,假設(shè)需要解下面的聯(lián)立方程。

要求解xy,z值的上述方程式,可以使用矩陣求逆來求解向量,如下所示。

但是,最好使用linalg.solve命令,該命令可以更快,更穩(wěn)定。

求解函數(shù)采用兩個輸入'a''b',其中'a'表示系數(shù),'b'表示相應(yīng)的右側(cè)值并返回解矩陣。

現(xiàn)在來看看下面的例子。

#importing the scipy and numpy packages
from scipy import linalg
import numpy as np

#Declaring the numpy arrays
a = np.array([[3, 2, 0], [1, -1, 0], [0, 5, 1]])
b = np.array([2, 4, -1])

#Passing the values to the solve function
x = linalg.solve(a, b)

#printing the result array
print (x)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

[ 2. -2.  9.]

查找一個行列式

方陣A的行列式通常表示為| A |并且是線性代數(shù)中經(jīng)常使用的量。 在SciPy中,這是使用det()函數(shù)計算的。 它將矩陣作為輸入并返回一個標(biāo)量值。

下面來看看一個例子。

#importing the scipy and numpy packages
from scipy import linalg
import numpy as np

#Declaring the numpy array
A = np.array([[1,2],[3,4]])

#Passing the values to the det function
x = linalg.det(A)

#printing the result
print (x)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

-2.0

特征值和特征向量

特征值 - 特征向量問題是最常用的線性代數(shù)運算之一。 我們可以通過考慮以下關(guān)系式來找到方陣(A)的特征值(λ)和相應(yīng)的特征向量(v)

Av = λv

scipy.linalg.eig從普通或廣義特征值問題計算特征值。 該函數(shù)返回特征值和特征向量。

讓我們來看看下面的例子。

#importing the scipy and numpy packages
from scipy import linalg
import numpy as np

#Declaring the numpy array
A = np.array([[1,2],[3,4]])

#Passing the values to the eig function
l, v = linalg.eig(A)

#printing the result for eigen values
print (l)

#printing the result for eigen vectors
print (v)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

[-0.37228132+0.j  5.37228132+0.j]
[[-0.82456484 -0.41597356]
 [ 0.56576746 -0.90937671]]

奇異值分解

奇異值分解(SVD)可以被認為是特征值問題擴展到非矩陣的矩陣。

scipy.linalg.svd將矩陣'a'分解為兩個酉矩陣'U''Vh',以及一個奇異值(實數(shù),非負)的一維數(shù)組's',使得a == U * S * Vh,其中'S'是具有主對角線's'的適當(dāng)形狀的零點矩陣。

讓我們來看看下面的例子。參考以下代碼 -

#importing the scipy and numpy packages
from scipy import linalg
import numpy as np

#Declaring the numpy array
a = np.random.randn(3, 2) + 1.j*np.random.randn(3, 2)

#Passing the values to the eig function
U, s, Vh = linalg.svd(a)

# printing the result
print (U, Vh, s)

執(zhí)行上面示例代碼,得到以下結(jié)果 -

[[-0.60142679+0.28212127j  0.35719830-0.03260559j  0.61548126-0.22632383j]
 [-0.00477296+0.44250532j  0.64058557+0.15734719j -0.40414313+0.45357092j]
 [ 0.46360086+0.38462177j -0.18611686+0.6337182j   0.44311251+0.06747886j]] [[ 0.98724353+0.j         -0.01113675+0.15882756j]
 [-0.15921753+0.j         -0.06905445+0.9848255j ]] [ 2.04228408  1.33798044]

上一篇:Scipy特殊包下一篇:Scipy教程