9.1
代码如下:
import numpy
A = numpy.zeros([200, 500])
B = numpy.zeros([500, 500])
for i in range(200):
for j in range(500):
A[i][j] = numpy.round(numpy.random.normal(0, 1, 1),2)
for i in range(500):
B[i][0] = numpy.round(numpy.random.normal(0, 1, 1),2)
B[0][i] = numpy.round(numpy.random.normal(0, 1, 1),2)
for i in range(1,500):
for j in range(i, 500):
B[i][j] = B[i-1][j-1]
print(A)
print()
print(B)
print()
print(A+A)
print()
print(numpy.dot(A, B))
print()
print(numpy.dot(A, numpy.transpose(A)))
print()
print(numpy.dot(numpy.transpose(A), A))
9.2
代码如下:
import numpy
B = numpy.zeros([500, 500])
for i in range(500):
B[i][0] = numpy.round(numpy.random.normal(0, 1, 1),2)
B[0][i] = numpy.round(numpy.random.normal(0, 1, 1),2)
for i in range(1,500):
for j in range(i, 500):
B[i][j] = B[i-1][j-1]
b = numpy.arange(500)
print(numpy.linalg.solve(B, b))
9.3
代码如下:
import numpy
A = numpy.zeros([200, 500])
B = numpy.zeros([500, 500])
for i in range(200):
for j in range(500):
A[i][j] = numpy.round(numpy.random.normal(0, 1, 1),2)
for i in range(500):
B[i][0] = numpy.round(numpy.random.normal(0, 1, 1),2)
B[0][i] = numpy.round(numpy.random.normal(0, 1, 1),2)
for i in range(1,500):
for j in range(i, 500):
B[i][j] = B[i-1][j-1]
print(numpy.linalg.norm(A,"fro"))
print()
print(numpy.linalg.norm(B,numpy.inf))
print()
U,sigma,VT=numpy.linalg.svd(B)
print(max(sigma))
print(min(sigma))
print()
9.4
代码如下:
import numpy
Z = numpy.zeros([200, 200])
for i in range(200):
for j in range(200):
Z[i][j] = numpy.round(numpy.random.normal(0, 1, 1),2)
eva, eve = numpy.linalg.eig(Z)
print(max(eva))
maxvector = [i for i in range(200) if eva[i]==max(eva)]
print(eve[maxvector[0]])
9.5
代码如下:
import numpy
import scipy
p = 0.3
Z = numpy.random.binomial(200 * 200 , p, size=(200, 200) )
print(Z)
U,sigma,VT=numpy.linalg.svd(Z)
print(max(sigma))
9.6
代码如下:
import numpy
A = numpy.zeros([200, 500])
Z = numpy.zeros([200, 500])
z = 5
for i in range(200):
for j in range(500):
A[i][j] = numpy.round(numpy.random.normal(0, 1, 1),2)
Z[i][j] = z
A = A.reshape((1, 200*500))
Z = Z.reshape((1, 200*500))
A.sort()
print(A)
A = A - Z
print(A)
D = [i for i in range(200*500) if A[0][i]>0]
if len(D) == 0 or D[0] == 0 or A[0][D[0]] + A[0][D[0]-1] < 0:
print(A[0][200*500-1]+z)
else:
print(A[0][D[0]-1]+z)