category
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import time
|
||||
|
||||
|
||||
|
||||
time_1 = np.array([])
|
||||
time_2 = np.array([])
|
||||
time_3 = np.array([])
|
||||
n_all = np.arange(2,5000,200) # 测试的范围
|
||||
start_all = time.process_time()
|
||||
for n in n_all:
|
||||
print(n)
|
||||
matrix_1 = np.zeros((n,n))
|
||||
matrix_2 = np.zeros((n,n))
|
||||
for i0 in range(n):
|
||||
for j0 in range(n):
|
||||
matrix_1[i0,j0] = np.random.uniform(-10, 10)
|
||||
for i0 in range(n):
|
||||
for j0 in range(n):
|
||||
matrix_2[i0,j0] = np.random.uniform(-10, 10)
|
||||
|
||||
start = time.process_time()
|
||||
matrix_3 = np.dot(matrix_1, matrix_2) # 矩阵乘积
|
||||
end = time.process_time()
|
||||
time_1 = np.append(time_1, [end-start], axis=0)
|
||||
|
||||
start = time.process_time()
|
||||
matrix_4 = np.linalg.inv(matrix_1) # 矩阵求逆
|
||||
end = time.process_time()
|
||||
time_2 = np.append(time_2, [end-start], axis=0)
|
||||
|
||||
start = time.process_time()
|
||||
eigenvalue, eigenvector = np.linalg.eig(matrix_1) # 求矩阵本征值
|
||||
end = time.process_time()
|
||||
time_3 = np.append(time_3, [end-start], axis=0)
|
||||
|
||||
|
||||
|
||||
end_all = time.process_time()
|
||||
print('总共运行时间:', (end_all-start_all)/60, '分')
|
||||
|
||||
plt.subplot(131)
|
||||
plt.xlabel('n^3/10^9')
|
||||
plt.ylabel('时间(秒)')
|
||||
plt.title('矩阵乘积')
|
||||
plt.plot((n_all/10**3)*(n_all/10**3)*(n_all/10**3), time_1, 'o-')
|
||||
|
||||
plt.subplot(132)
|
||||
plt.xlabel('n^3/10^9')
|
||||
plt.title('矩阵求逆')
|
||||
plt.plot((n_all/10**3)*(n_all/10**3)*(n_all/10**3), time_2, 'o-')
|
||||
|
||||
plt.subplot(133)
|
||||
plt.xlabel('n^3/10^9')
|
||||
plt.title('求矩阵本征值')
|
||||
plt.plot((n_all/10**3)*(n_all/10**3)*(n_all/10**3), time_3, 'o-')
|
||||
|
||||
plt.rcParams['font.sans-serif'] = ['SimHei'] # 在画图中正常显示中文
|
||||
plt.rcParams['axes.unicode_minus'] = False # 中文化后,加上这个使正常显示负号
|
||||
plt.show()
|
Reference in New Issue
Block a user