Python 實現線性代數計算器

2021-10-05 11:14:44 字數 1462 閱讀 5630

計算逆序數,運用o(n^2)的演算法計算

# 逆序數計算

def reversepairs(nums):

"""計算陣列的逆序數,輸入陣列,返回逆序數

"""res, n= 0, len(nums)

for i in range(1,n):

for j in range(0,i):

if nums[j]>nums[i]:

res +=1

return res

nums = [4,6,1,5,2,3]

res = reversepairs(nums)

print(res)

任意數字行列式的計算

# 數字行列式計算

def determinant(matrix):

"""計算numpy矩陣的行列式,輸入numpy矩陣,返回行列式的值

"""return np.linalg.det(matrix)

a = np.array([(3,-1,0,7),(1,0,1,5),(2,3,-3,1),(0,0,1,-2)],dtype=np.int32)

res = determinant(a)

print(res)

字母行列式,使用sympy符號計算功能

# 符號行列式的計算

a = sym.symbols('a')

b = sym.symbols('b')

c = sym.symbols('c')

d = sym.symbols('d')

a = sym.matrix(

[[a,1,0,0],[-1,b,1,0],[0,-1,c,1],[0,0,-1,d]])a

sym.det(a)

計算矩陣的秩,內部使用svd分解演算法

# 計算數字矩陣的秩

def rank(matrix):

"""計算numpy矩陣的秩,輸入numpy矩陣,返回矩陣的秩

"""return np.linalg.matrix_rank(matrix)

a = np.array([(2,-1,2),(4,0,2),(0,-3,3)],dtype=np.int32)

res = rank(a)

print(res)

計算矩陣的逆矩陣

# 計算矩陣的逆矩陣

def inverse(matrix):

"""計算numpy矩陣的逆,輸入numpy矩陣,返回矩陣的逆矩陣

"""return np.linalg.inv(matrix)

a = np.array([(0,0,0,2),(1,2,0,0),(3,4,0,0),(0,0,5,0)],dtype=np.int32)

res = inverse(a)

print(res)

線性代數實現(部分)

1.數學能力決定程式設計師發展上限。2.c語言程式設計也是可以使用部分物件導向思想的,關鍵在人,而不在工具。3.如下程式設計風格大量出現在linux kernel 其他開源 中,很明顯使用的物件導向程式設計思想。think about it linear algebra.h ifndef linea...

線性代數與Python

1.向量 1.1向量例子 1.2向量加法與減法 1.3向量的乘法 2.矩陣 2.1矩陣例子 2.2矩陣的形狀 2.3矩陣的建立函式 向量是指可以加總 以生成新的向量 可以乘以標量 即數字 也可以生成新的向量的物件。向量是有限維空間的點。向量以分量方式 componentwise 做運算。這意味著,如...

Python之numpy 線性代數

linalg linear algebra,norm則表示範數,首先需要注意的是範數是對向量 或者矩陣 的度量,是乙個標量 scalar 這裡只對常用設定進行說明,x表示要度量的向量,ord表示範數的種類,範數理論的乙個小推論告訴我們 1 2 2 用dot函式計算矩陣乘積 x np.array 1....