高编作业(八)

Numpy作业

题目截图
这里写图片描述
生成A和B

from scipy import linalg
import numpy as np

A = np.random.normal(0,1,100000).reshape(200,500)
B = linalg.toeplitz(list(range(1,500)))
9.1

题目截图
这里写图片描述
代码

# 9.1
print(A + A)
print(np.dot(A, A.T))
print(np.dot(A.T, A))
print(np.dot(A, B))

def compute(x):
    return np.dot(A, B - x * np.eye(500))
9.2

题目截图
这里写图片描述
代码

# 9.2
b = np.linspace(1, 500, 500)
# 解线性方程
print(np.linalg.solve(B, b))
9.3

题目截图
这里写图片描述
代码

# 9.3
# 求范数
print(linalg.norm(A, 'fro'))
print(linalg.norm(B, np.inf))
# 求奇异值
b = linalg.svdvals(B).tolist()
print(max(b))
print(min(b))
9.4

题目截图
这里写图片描述
代码

def getMatrix(n):
    return np.random.normal(0, 1, n*n).reshape(n, n)

def calculateTime(n):
    Z = getMatrix(n) # Z矩阵
    v = np.array(list(range(1, n+1))[::-1]) # 初始向量
    a, tempa = linalg.norm(v, np.inf), 0 # 特征值
    x = 0 # 记录次数
    t = time.clock() # 记录时间
    while True:
        tempa = a
        y = np.dot(Z, v)
        a = linalg.norm(y, np.inf)
        v = y / a
        x += 1
        if abs(tempa - a) < 0.000001:# 判停条件
            break
    t = time.clock() - t
    return x, t, v, a

result = calculateTime(10)
print("次数为:%d"%result[0])
print("时间为:%f"%result[1])
print("特征向量为:",end="")
print(result[2])
print("特征值为:%f"%result[3])

结果截图
这里写图片描述

9.5

题目截图
这里写图片描述
代码

# 9.5
def getSingle(n, p):
    M = np.random.binomial(1, p, [n, n])
    return max(linalg.svdvals(M))

print(getSingle(10, 0.25))
print(getSingle(100, 0.25))
print(getSingle(1000, 0.25))
print(getSingle(2000, 0.25))

结果截图
这里写图片描述
由结果可知,当n足够大时,矩阵的最大奇异值收敛于np

9.6

题目截图
这里写图片描述
代码

A = np.random.normal(0, 1, 400).reshape(20, 20)
def getClosed(A, val):
    a = min(A[A>val])
    b = max(A[A<=val])
    return b if abs(a-val) > abs(b-val) else a
print(getClosed(A, 0.5))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值