python_exercise9_不是特别正确的解答

#E9.1

import numpy  as np
from scipy.linalg import toeplitz

n = 200
m=500
A = np.matrix(np.round(np.random.normal(4,6,n*m),0).reshape(n,m),'int',True)
aList = []
for i in range(1,m+1):
	aList.append(i)
B = np.matrix(toeplitz(aList,aList).reshape(m,m),'int',True)

print(A)
print(B)
print(A+A)
print(A.dot(A.T))
print(A.T.dot(A))
print(A.dot(B))

def computes(A,B,lamda):
	I = np.eye(m)
	temp = B - lamda*I
	result = A.dot(temp)

computes(A,B,10)


#E9.2
import numpy  as np
from scipy.linalg import toeplitz
m=500
aList = []

for i in range(1,m+1):
	aList.append(i)
B = np.matrix(toeplitz(aList,aList).reshape(m,m),'int',True)

b_list = []
for i in range(1,m+1):
	b_list.append(i)
b = np.array(b_list)

A_abs = np.linalg.det(B)
B_r = np.linalg.inv(B)
result = B_r.dot(b)
print(B)
print(B_r)
print(result)


#E9.3
import numpy  as np
from scipy.linalg import toeplitz
n=200
m=500
aList = []

for i in range(1,m+1):
	aList.append(i)
A = np.matrix(np.round(np.random.normal(4,6,n*m),0).reshape(n,m),'int',True)
B = np.matrix(toeplitz(aList,aList).reshape(m,m),'int',True)
B_inf = np.linalg.norm(B, ord=np.inf)
A_fro = np.linalg.norm(A,ord='fro')
print(A_fro)
print(B_inf)# infinity norm

#E9.4
import numpy  as np
from scipy.linalg import toeplitz
import time

t0 = time.clock()
n=200
A = np.matrix(np.round(np.random.normal(4,6,n*n),0).reshape(n,n),'int',True)
eigenvalues, eigenvectors = np.linalg.eig(A)
print(str(time.clock()-t0)+'s')

print(eigenvalues)
print(eigenvectors)

pos = []
max = -9999999
t0 = time.clock()
for x in range(0,n):
	if eigenvalues[x] > max:
		if len(pos) != 0:
			pos.clear()
		pos.append(x)
	elif eigenvalues[x] == max:
		pos.append(x)
	else:
		pass
print(str(time.clock()-t0)+'s')
#n个迭代就可以了
for p in pos:
	print("展示最大特征值的位置:")
	print(str(p)+' : ')
	print("展示最大特征值:")
	print(str(eigenvalues[p]))
	print("展示最大特征向量:")
	print(str(eigenvectors[x]))

#E9.5
import numpy  as np
import scipy
n = 200
p = 0.4
C = np.random.binomial(1, p, n*n).reshape(n,n)
print(C.size)
U,S,Vh = np.linalg.svd(C)
print(max(S))

#relationship:n*p 约等于 max(奇异值)

#E9.6
import numpy  as np
import math
def func(z,A):
	#closest  = 0
	A_matrix = np.matrix(A,'int',True)
	z_list = [z for i in range(0,len(A))]
	Z_matrix = np.matrix(z_list,'int',True)
	pos = np.argmin(abs(A_matrix-Z_matrix))
	return A[pos]

A = [1,2,3,4,5]
z = -9
print(func(z,A))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值