日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中matrix函数_使用python解线性矩阵方程(numpy中的matrix类)

發布時間:2025/4/5 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中matrix函数_使用python解线性矩阵方程(numpy中的matrix类) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這學期有一門運籌學,講的兩大塊兒:線性優化和非線性優化問題。在非線性優化問題這里涉及到拉格朗日乘子法,經常要算一些非常變態的線性方程,于是我就想用python求解線性方程。查閱資料的過程中找到了一個極其簡單的解決方式,也學到了不少東西。先把代碼給出。

import numpy as np

# A = np.mat('1 2 3;2 -1 1;3 0 -1')

A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])

b = np.array([9, 8, 3])

x = np.linalg.solve(A, b)

print(x)

是不是很簡潔?因為調用了強大的包numpy~ 我們想解決的問題是求解矩陣方程$Ax=b$。在這里調用numpy中的線性代數包np.linalg,使用其中的function->solve(A, b)。幾行代碼就解決了問題。在這里solve函數有兩個輸入,第一個輸入是矩陣,可以采用numpy里的矩陣數據類型或者最常用的數組數據類型。第二個輸入是右端項b,一個一維numpy數組即可。函數返回方程的解,shape和b是相同的。如果矩陣A是奇異的或者不是方陣,函數就會報錯。

好了,問題得到了絕佳的解決,大不了把python當計算器來用唄~

下面是補充知識:numpy中的matrix類

matrix類是numpy中的一個過時的類,可能會在未來被移除。因為現在大多數人都會用更加靈活好用的ndarray,移除它也是可以理解的。

>>> a = np.matrix('1 2; 3 4')

>>> a

matrix([[1, 2],

[3, 4]])

>>> np.matrix([[1, 2], [3, 4]])

matrix([[1, 2],

[3, 4]])

matrix有兩種構造方式,從第二種我們看到和一般的數組類型一模一樣,在這里我們就能窺到matrix其實就是繼承了ndarray,基于ndarray。拿matrix進行線性代數運算是因為它有很多方便的函數。

matrix.T transpose:返回矩陣的轉置矩陣

matrix.H hermitian (conjugate) transpose:返回復數矩陣的共軛元素矩陣

matrix.I inverse:返回矩陣a逆矩陣

matrix.A base array:返回矩陣基于的數組

matrix.AI   flattened ndarray: 返回展平的數組

其他的很多類方法不再介紹,以上四個是最基本的類似語法糖的函數。

需要注意的是,ndarray類型同樣能方便地進行轉置和求逆。

A = np.array([[1, 2], [3, 4]])

print(A.T)

A_I = np.linalg.inv(A)

總結

以上是生活随笔為你收集整理的python中matrix函数_使用python解线性矩阵方程(numpy中的matrix类)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。