NumPy作业题

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)))

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

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

from scipy import linalg
import numpy as np

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

b = np.linspace(1, 500, 500)
print(np.linalg.solve(B, 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,501)))

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


from scipy import linalg
import numpy as np
import time 
A = np.random.normal(0,1,100000).reshape(200,500)
B = linalg.toeplitz(list(range(1,501)))

def Times(n):
    Z = np.random.normal(0, 1, n*n).reshape(n, n)#Z矩阵
    v = np.array(list(range(1, n+1))[::-1]) #初始特征向量
    a = linalg.norm(v, np.inf)#特征值
    temp = 0 
    times = 0 #次数
    t = time.clock() #时间
    while True:
        temp = a
        y = np.dot(Z, v)
        a = linalg.norm(y, np.inf)
        v = y / a
        times = times + 1
        if abs(temp - a) < 0.000001:
            break
    t = time.clock() - t
    return times, t, v, a

n = input()
result = Times(int(n))
print("Times:%d"%result[0])
print("Time:%f"%result[1])
print("Eigenvector:",end="")
print(result[2])
print("Eigenvalue:%f"%result[3])

from scipy import linalg
import numpy as np
import time 
A = np.random.normal(0,1,100000).reshape(200,500)
B = linalg.toeplitz(list(range(1,501)))

n = input()
p = input()
C = np.random.binomial(1, float(p), [int(n), int(n)])
x = linalg.svdvals(C).tolist()
print(max(x))

from scipy import linalg
import numpy as np
import time 
A = np.random.normal(0,1,100000).reshape(200,500)
B = linalg.toeplitz(list(range(1,501)))

def closest(A, z):
	a = min(A[A > z])#A矩阵中大于z的值的最小值
	b = max(A[A <= z])#A矩阵中小于等于z的值的最小值
	if abs(a - z) > abs(b - z):
		return b
	else:
		return a

z = input()
print(closest(A, float(z)))


### 信号与系统:卷积和的作业题及解析 #### 1. 卷积和的基本定义 卷积和是离散时间信号处理中的一个核心概念,用于描述线性时不变(LTI)系统的输入输出关系。对于两个离散时间序列 \(x[n]\) 和 \(h[n]\),它们的卷积和定义为[^1]: \[ y[n] = \sum_{k=-\infty}^{\infty} x[k] h[n-k] \] 其中,\(y[n]\) 是输出序列,\(x[n]\) 是输入序列,\(h[n]\) 是系统的单位脉冲响应。 #### 2. 示例练习题 以下是一些关于卷积和的经典练习题及其解析: ##### 练习题 1 已知输入信号 \(x[n] = u[n]\)(单位阶跃信号),系统的单位脉冲响应 \(h[n] = a^n u[n]\),求输出信号 \(y[n]\) 的表达式。 - 解析:根据卷积和的定义,可以将 \(y[n]\) 表达为: \[ y[n] = \sum_{k=-\infty}^{\infty} x[k] h[n-k] = \sum_{k=0}^{n} a^{n-k} \] 通过代数变换,得到结果为: \[ y[n] = \frac{1-a^{n+1}}{1-a}, \quad n \geq 0 \] 其中,\(a \neq 1\)。如果 \(a = 1\),则结果简化为 \(y[n] = n+1\)。 ##### 练习题 2 已知输入信号 \(x[n] = \delta[n]\)(单位脉冲信号),系统的单位脉冲响应 \(h[n] = (0.5)^n u[n]\),求输出信号 \(y[n]\)。 - 解析:由于单位脉冲信号的性质,卷积和的结果直接等于系统的单位脉冲响应: \[ y[n] = h[n] = (0.5)^n u[n] \] ##### 练习题 3 已知输入信号 \(x[n] = \{1, 2, 3, 4\}\),系统的单位脉冲响应 \(h[n] = \{1, -1\}\),求输出信号 \(y[n]\)。 - 解析:通过手动计算卷积和,可以得到输出信号为: \[ y[n] = \{1, 1, 2, 2, -4\} \] 具体计算过程如下: ```python import numpy as np # 定义输入信号和单位脉冲响应 x = np.array([1, 2, 3, 4]) h = np.array([1, -1]) # 计算卷积和 y = np.convolve(x, h, mode=&#39;full&#39;) print(y) # 输出: [ 1 1 2 2 -4] ``` #### 3. 相关理论扩展 卷积和不仅在信号与系统中具有重要意义,在深度学习领域也有类似的应用。例如,在卷积神经网络(CNN)中,卷积层通过卷积核对输入特征图进行操作,类似于信号处理中的卷积运算[^2]。不同之处在于,CNN 中的卷积核权重是通过训练过程自动学习的,而信号处理中的卷积核通常由设计者预先定义。 #### 4. 实际应用 卷积和在实际工程中有广泛的应用,例如: - 图像处理中的边缘检测、锐化和模糊等操作可以通过特定的卷积核实现[^3]。 - 通信系统中的滤波器设计也依赖于卷积和的概念。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值