高级编程技术第十一周作业:numpy练习

Exercise 9.1: Matrix operations:

import numpy as np
from scipy.linalg import toeplitz
n = 5
m = 10
A = np.random.normal(size=(n,m)) #服从正态分布的矩阵
c = np.random.randn(10)
r = np.random.randn(10)
B = toeplitz(c,r) #托普利兹矩阵
print("A+A:")
A1 = A + A
print(A1)
print("A*A^T:")
t = A.T
A2 = A.dot(t)
print(A2)
print("A^T*A:")
A3 = t.dot(A)
print(A3);
print("AB:")
A4 = A.dot(B)
print(A4)
I = np.eye(10,dtype = int)
print(I)
def func(x,A,B):
	temp = x * I
	c = B - temp
	comeout = A.dot(c)
	return comeout

Output = func(5,A,B)
print(Output)


Exercise 9.2: Solving a linear system

import numpy as np
from scipy.linalg import toeplitz
n = 5
m = 5
A = np.random.normal(size=(n,m)) #服从正态分布的矩阵
c = np.random.randn(10)
r = np.random.randn(10)
b = np.array([1,4,5,7,9])
x = np.linalg.solve(A,b)
print("Solution:")
print(x)

Exercise 9.3: Norms

import numpy as np
from scipy.linalg import toeplitz
import numpy.linalg
n = 5
m = 10
A = np.random.normal(size=(n,m)) #服从正态分布的矩阵
c = np.random.randn(10)
r = np.random.randn(10)
B = toeplitz(c,r) #托普利兹矩阵
print("A的Frobenius范数:")
x = numpy.linalg.norm(A,"fro")
print(x)
print("B的无穷范数:")
x = numpy.linalg.norm(B,np.inf)
print(x)
print("B的最大奇异值为:")
a,b = numpy.linalg.eig(B)
print(max(a))


Exercise 9.4:  power iteration

import numpy as np
import scipy
A = np.random.normal(size=(10, 10))
n = 0
u = np.random.randn(10)
x1 = 10
x2 = 0
while abs(x2 - x1) > 0.01:
    n += 1
    x1 = x2
    v = A.dot(u)
    x2 = np.max(v)
    u = np.true_divide(v, x2)
print("最大特征值")
print(x2)
print("最大特征向量")
print(u)
print("迭代次数:")
print(n)

Exercise 9.5: Singular Values

import numpy as np
import scipy
C = np.random.randint(0,2,size=(5,5))
a,b = np.linalg.eig(C)
print("特征值:")
print(a)
print("特征向量")
print(b)

Exercise 9.6:Nearest neighbor

import numpy as np
import scipy
A = np.random.randn(10)
z = 1
print(A)
def findnearest(A,z):
    return A[np.argmin(np.abs(A-z))]
nearest = findnearest(A,1)
print("最接近的值为:")
print(nearest)


猜你喜欢

转载自blog.csdn.net/weixin_38742280/article/details/80371893