亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于python解線性矩陣方程(numpy中的matrix類)

發布時間:2020-09-30 21:13:48 來源:腳本之家 閱讀:185 作者:yaominghui 欄目:開發技術

這學期有一門運籌學,講的兩大塊兒:線性優化和非線性優化問題。在非線性優化問題這里涉及到拉格朗日乘子法,經常要算一些非常變態的線性方程,于是我就想用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=bAx=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:返回矩陣基于的數組<br data-filtered="filtered">matrix.AI   flattened ndarray: 返回展平的數組

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

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

A = np.array([[1, 2], [3, 4]])
print(A.T)
A_I = np.linalg.inv(A)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乡县| 义马市| 竹山县| 富民县| 英吉沙县| 额济纳旗| 吴桥县| 天水市| 喀喇| 丰城市| 和硕县| 恩平市| 临漳县| 南丹县| 信丰县| 宜良县| 维西| 乌拉特后旗| 昌图县| 长沙县| 黑水县| 梨树县| 辽宁省| 海阳市| 太和县| 仙桃市| 吉安县| 肇源县| 海淀区| 资阳市| 秭归县| 吉林市| 江华| 通山县| 娱乐| 景泰县| 洛阳市| 隆尧县| 阳西县| 舟曲县| 南丰县|