【记得交作业】波波离散实验报告四(python实现)

实验名称二元关系及其性质

实验目的和要求

掌握二元关系在计算机上的表示方法,并掌握如果判定关系的性质。

实验内容:

实验四 二元关系及其性质

编程判断一个二元关系是否为等价关系,如果是,求其商集。

等价关系:集合A上的二元关系R同时具有自反性、对称性和传递性,则称R是A上的等价关系。

【实验原理和方法】

(1)A上的二元关系用一个n×n关系矩阵R=表示,定义一个n×n数组r[n][n]表示n×n矩阵关系。

(2)若R对角线上的元素都是1,则R具有自反性。

思路:使用flag标记,符合等价关系值为1.

实验心得:

我只会判断一个关系是否为等价关系,求商集的原理还没有特别理解,希望大家能够帮忙补充!感谢!!!

代码如下:

mat=[]
n=int(input('输入阶数:'))
for i in range(n):
    mat.append(input('第{}行'.format(i+1)).split())
#自反
zifan=1
for i in range(n):
    if mat[i][i]!=1:
        zifan=0
#对称
duichen=1
for i in range(n):
    for j in range(n):
        if mat[i][j]!=mat[j][i]:
            duichen=0
#传递
chuandi=1
for i in range(n):
    for j in range(n):
        for k in range(n):
            if mat[i][j]==1 and mat[j][k]==1 and mat[i][k]!=1:
                chuandi=0
if zifan==duichen==chuandi==1:
    print('是等价关系!')

else:
    print('不是等价关系!')

运行结果如下:

 代码可能存在借鉴,侵删!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Python示例代码,展示了如何使用普通滤波、维纳滤波、卡尔曼滤波和自适应滤波等方法来消除或压制信号中的噪声。 ``` import numpy as np import matplotlib.pyplot as plt from scipy.signal import wiener, medfilt from filterpy.kalman import KalmanFilter from filterpy.common import Q_discrete_white_noise # 生成一个包含噪声的信号 np.random.seed(0) t = np.linspace(0, 1, 100) signal = np.sin(2*np.pi*10*t) + np.random.normal(0, 0.5, 100) # 普通滤波 filtered_signal = medfilt(signal, kernel_size=3) # 维纳滤波 wiener_signal = wiener(signal) # 卡尔曼滤波 kf = KalmanFilter(dim_x=2, dim_z=1) kf.x = np.array([[signal[0]], [0.]]) kf.F = np.array([[1., 1.], [0., 1.]]) kf.H = np.array([[1., 0.]]) kf.P *= 1000. kf.R = 5 kf.Q = Q_discrete_white_noise(dim=2, dt=0.1, var=0.13) kalman_signal = [] for z in signal: kf.predict() kf.update(z) kalman_signal.append(kf.x[0]) # 自适应滤波 alpha = 0.05 adaptive_signal = np.zeros_like(signal) for i in range(1, len(signal)): adaptive_signal[i] = alpha * signal[i] + (1 - alpha) * adaptive_signal[i-1] # 绘制结果 fig, ax = plt.subplots(5, 1, figsize=(10, 10)) ax[0].plot(t, signal) ax[0].set_title('Original Signal') ax[1].plot(t, filtered_signal) ax[1].set_title('Median Filter') ax[2].plot(t, wiener_signal) ax[2].set_title('Wiener Filter') ax[3].plot(t, kalman_signal) ax[3].set_title('Kalman Filter') ax[4].plot(t, adaptive_signal) ax[4].set_title('Adaptive Filter') plt.show() ``` 这个代码使用 `medfilt()` 函数进行中值滤波,使用 `wiener()` 函数进行维纳滤波,使用 `filterpy` 库中的 `KalmanFilter` 类进行卡尔曼滤波,使用一个简单的递归公式进行自适应滤波。你可以根据自己的需选择合适的滤波方法和参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值