第二次离散实验报告(DOC)
实验二 离散时间信号的时域分析
实验二 离散时间信号的时域分析1.实验目的(1)学习MA TLAB 软件及其在信号处理中的应用,加深对常用离散时间信号的理解。
(2)利用MA TLAB 产生常见离散时间信号及其图形的显示,进行简单运算。
(3)熟悉MA TLAB 对离散信号的处理及其应用。
2.实验原理离散时间信号是时间为离散变量的信号。
其函数值在时间上是不连续的“序列”。
(1)单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 如果序列在时间轴上面有K 个单位的延迟,则可以得到)(k n -δ,即:1,()0,n k n k n kd ì=ïï-=íï¹ïî 该序列可以用MA TLAB 中的zeros 函数来实现。
(2)正弦序列)/2sin()(ϕπ+=Fs fn A n x可以利用sin 函数来产生。
(3)指数序列()(),n x n a n a R e =在MA TLAB 中通过:0:1;n N =-和.^;x a n =来实现。
3.实验内容及其步骤(1)复习有关离散时间信号的有关内容。
(2)通过程序实现上述几种信号的产生,并进行简单的运算操作。
单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 参考:% Generation of a Unit Sample Sequenceclf;% Generate a vector from -10 to 20n = -10:20;% Generate the unit sample sequenceu = [zeros(1,10) 1 zeros(1,20)];% Plot the unit sample sequencestem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence');axis([-10 20 0 1.2]);如果序列在时间轴上面有K 个单位的延迟,则可以得到)(k n -δ,即:1,()0,n k n k n kd ì=ïï-=íï¹ïî ,通过程序来实现如下所示结果。
离散数学 实验报告
离散数学实验报告离散数学实验报告引言:离散数学是一门研究离散结构的数学学科,它对于计算机科学、信息技术等领域具有重要的应用价值。
本实验报告旨在通过实际案例,探讨离散数学在现实生活中的应用。
一、图论在社交网络中的应用社交网络已成为人们日常生活中不可或缺的一部分。
图论作为离散数学的重要分支,对于分析和研究社交网络具有重要意义。
以微信为例,我们可以通过图论的方法,分析微信中的好友关系、群组关系等。
通过构建好友关系图,我们可以计算某个人在社交网络中的影响力,进而预测他的行为模式。
二、布尔代数在电路设计中的应用布尔代数是离散数学中的重要内容,它在电路设计中扮演着重要的角色。
通过布尔代数的运算规则和定理,我们可以简化复杂的逻辑电路,提高电路的可靠性和效率。
例如,我们可以使用布尔代数中的与、或、非等逻辑运算符,设计出满足特定功能需求的逻辑电路。
三、排列组合在密码学中的应用密码学是离散数学的一个重要应用领域。
排列组合是密码学中常用的数学工具之一。
通过排列组合的方法,我们可以设计出强大的密码算法,保障信息的安全性。
例如,RSA加密算法中的大素数的选择,就涉及了排列组合的知识。
四、概率论在数据分析中的应用概率论是离散数学中的一门重要学科,它在数据分析中具有广泛的应用。
通过概率论的方法,我们可以对数据进行统计和分析,从而得出一些有意义的结论。
例如,在市场调研中,我们可以通过抽样调查的方法,利用概率论的知识,对整个市场的情况进行推断。
五、图论在物流规划中的应用物流规划是现代物流管理中的一个重要环节。
图论作为离散数学的重要分支,可以帮助我们解决物流规划中的一些问题。
例如,我们可以通过构建物流网络图,分析货物的流动路径,优化物流的运输效率,降低物流成本。
结论:离散数学作为一门重要的数学学科,在现实生活中具有广泛的应用。
通过对离散数学的学习和应用,我们可以解决实际问题,提高工作效率,推动社会的发展。
希望通过本实验报告的介绍,能够增加对离散数学的兴趣,进一步挖掘离散数学在实际生活中的潜力。
离散数学实验报告
“离散数学”实验报告目录一、实验目的 (3)二、实验内容 (3)三、实验环境 (3)四、实验原理和实现过程(算法描述) (3)1、实验原理........................................................................................................2、实验过程.......................................................................................................五、实验数据及结果分析 (13)六、源程序清单 (24)源代码 (24)七、其他收获及体会 (45)一、实验目的实验一:熟悉掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。
实验二:掌握关系的概念与性质,基本的关系运算,关系的各种闭包的求法。
理解等价类的概念,掌握等价类的求解方法。
实验三:理解图论的基本概念,图的矩阵表示,图的连通性,图的遍历,以及求图的连通支方法。
二、实验内容实验一:1. 从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。
(A)2. 求任意一个命题公式的真值表(B,并根据真值表求主范式(C))实验二:1.求有限集上给定关系的自反、对称和传递闭包。
(有两种求解方法,只做一种为A,两种都做为B)2. 求有限集上等价关系的数目。
(有两种求解方法,只做一种为A,两种都做为B)3. 求解商集,输入集合和等价关系,求相应的商集。
(C)实验三:以偶对的形式输入一个无向简单图的边,建立该图的邻接矩阵,判断图是否连通(A)。
并计算任意两个结点间的距离(B)。
对不连通的图输出其各个连通支(C)。
三、实验环境C或C++语言编程环境实现。
四、实验原理和实现过程(算法描述)实验一:1.实验原理(1)合取:二元命题联结词。
实验二 离散信号的卷积和
(数字信号处理)实验报告实验名称 实验二 离散信号的卷积和 实验时间 年 9 月 28 日 专业班级 学 号 姓 名成 绩 教师评语: 一、 实验目的1、掌握两个离散信号卷积和的计算方法和编程技术。
2、进一步熟悉用MATLAB 描绘二维图像的方法。
二、 实验原理与计算方法两个离散序列x(n)与y(n)的卷积和f(n)定义为∑∞-∞=-=*=m m n y m x n y n x n f )()()()()(由于通常信号处理中所碰到的都是有始信号或有限时间信号,因此在实际计算卷积和时,求和是在有限范围内进行的。
计算过程中上下限的选取和所得结果的分布区间取决于参与卷积的两个序列,下面将分别进行讨论: 1、两个从n = 0开始的序列)()()(n u n x n x =和)()()(n u n y n y =的卷积和∑∑=∞-∞=-=--=nm m n u m n y m x m n u m n y m u m x n f 0)()]()([)()()()()( (1)上式右边因子u(n)表示卷积和的结果也是一个从n = 0开始的序列。
2、从n = n1开始的序列)()()(1n n u n x n x -=和从n = n2开始的序列)()()(2n n u n y n y -=的卷积和,其中n1和n2为任意整数。
∑∑-=∞-∞=---=----=21)()]()([)()()()()(2121n n n m m n n n u m n y m x n m n u m n y n m u m x n f (2)上式右边因子u(n-n1-n2)表示卷积和是一个从n = n1+n2开始的序列。
3、从n = n1开始的长度为N1的加窗序列)()()(1n w n x n x N =和从n = n2开始的长度为N2的加窗序列)()()(2n w n y n y N =的卷积和,其中⎩⎨⎧-+≤≤=otherwise 0 1 1 )(1111N n n n n w N⎩⎨⎧-+≤≤=o t h e r w i s e 0 11 )(2222N n n n n w N则∑∞-∞=--=m N N m n w m n y m wm x n f )()()()()(21(3)所得卷积和也是一个加窗序列,从n = n1+ n2开始,长度为N1+ N2-1。
离散数学实验报告(两篇)
引言:离散数学是一门基础性的数学学科,广泛应用于计算机科学、电子信息等领域。
本文是《离散数学实验报告(二)》,通过对离散数学实验的深入研究和实践,总结了相关的理论知识和应用技巧,希望能够对读者对离散数学有更加深入的理解。
概述:本实验主要涉及离散数学中的集合、关系、图论等基本概念及其应用。
通过对离散数学的实验学习,深入掌握了这些概念和应用,对于在实际问题中的应用和拓展具有重要的意义。
正文内容:一、集合相关概念及应用1.定义:集合是由元素组成的无序的整体。
介绍了集合的基本概念、集合的表示法以及集合的运算。
2.集合的应用:介绍了集合在数学、计算机科学中的应用,如数据库的查询、关系代数等。
二、关系相关概念及应用1.定义:关系是一个元素与另一个元素之间的对应关系。
介绍了关系的基本概念、关系的表示方法及其运算。
2.关系的应用:介绍了关系在图像处理、社交网络分析等领域的应用,如图像中的像素点之间的关系、社交网络中用户之间的关系等。
三、图论基础知识及应用1.定义:图是由顶点和边组成的抽象的数学模型。
介绍了图的基本概念、图的表示方法和图的运算。
2.图论的应用:介绍了图论在路由算法、电子商务等领域的应用,如路由器的路由选择、电子商务中的商品推荐等。
四、布尔代数的概念及应用1.定义:布尔代数是一种基于集合论和逻辑学的代数系统。
介绍了布尔代数的基本概念、布尔表达式及其化简方法。
2.布尔代数的应用:介绍了布尔代数在电路设计、开关控制等方面的应用,如逻辑门电路的设计、开关控制系统的建模等。
五、递归的概念及应用1.定义:递归是一种通过调用自身来解决问题的方法。
介绍了递归的基本原理、递归的应用技巧。
2.递归的应用:介绍了递归在算法设计、树的遍历等方面的应用,如快速排序算法、树结构的遍历等。
总结:通过本次离散数学的实验学习,我深入掌握了集合、关系、图论等基本概念与应用。
集合的应用在数据库查询、关系代数等方面起到了重要的作用。
关系的应用在图像处理、社交网络分析等领域有广泛的应用。
中南大学自动化专业离散数学实验报告2
中南大学自动化专业离散数学实验报告2离散数学作为计算机科学与技术专业的基础课程之一,对于培养学生的逻辑思维和抽象思维能力具有重要意义。
本次实验是关于离散数学中的图论部分,通过实际操作和计算来理解和应用图的相关概念和算法。
实验一开始,我们首先学习了图的基本概念和术语,例如顶点、边、路径、回路等。
然后,我们学习了图的表示方法,包括邻接矩阵和邻接表。
通过实际操作,我们发现邻接矩阵适合表示稠密图,而邻接表适合表示稀疏图。
这种不同的表示方法对于图的遍历和搜索算法有着重要的影响。
接下来,我们进行了图的遍历实验。
通过深度优先搜索和广度优先搜索算法,我们可以遍历图中的所有节点,并找到特定节点之间的路径。
深度优先搜索算法通过递归的方式进行,它会首先访问一个节点的所有邻接节点,然后再递归地访问这些邻接节点的邻接节点。
广度优先搜索算法则是通过队列的方式进行,它会首先访问一个节点的所有邻接节点,然后将这些邻接节点按照访问的顺序加入队列中,再逐个出队进行访问。
通过实验,我们发现深度优先搜索算法更适合用于寻找路径,而广度优先搜索算法更适合用于寻找最短路径。
在实验的后半部分,我们学习了最小生成树和最短路径算法。
最小生成树算法用于找到一个连通图的最小生成树,其中包含了连接图中所有节点的最短路径。
我们学习了Prim算法和Kruskal算法,它们分别基于贪心算法和并查集来实现。
通过实验,我们发现Prim算法适合用于稠密图,而Kruskal算法适合用于稀疏图。
最短路径算法用于找到两个节点之间的最短路径,我们学习了Dijkstra算法和Floyd算法。
Dijkstra算法通过贪心策略逐步更新节点之间的最短路径,而Floyd算法则通过动态规划的方式计算所有节点之间的最短路径。
通过实验,我们发现Dijkstra算法适合用于稀疏图,而Floyd算法适合用于稠密图。
总结起来,本次实验让我们深入了解了离散数学中的图论部分,并通过实际操作和计算来应用图的相关概念和算法。
离散数学实验报告
离散数学实验报告一、实验目的离散数学是现代数学的一个重要分支,它在计算机科学、信息科学、人工智能等领域有着广泛的应用。
本次离散数学实验的目的在于通过实际操作和编程实现,深入理解离散数学中的基本概念、原理和算法,提高解决实际问题的能力,培养逻辑思维和创新能力。
二、实验环境本次实验使用的编程语言为 Python,开发环境为 PyCharm。
同时,还使用了一些相关的数学库和工具,如 sympy 库用于符号计算。
三、实验内容1、集合运算集合是离散数学中的基本概念之一。
在实验中,我们首先定义了两个集合 A 和 B,然后进行了并集、交集、差集等运算。
通过编程实现这些运算,加深了对集合运算定义和性质的理解。
```pythonA ={1, 2, 3, 4, 5}B ={4, 5, 6, 7, 8}并集union_set = Aunion(B)print("并集:", union_set)交集intersection_set = Aintersection(B)print("交集:", intersection_set)差集difference_set = Adifference(B)print("A 与 B 的差集:", difference_set)```2、关系的表示与性质判断关系是离散数学中的另一个重要概念。
我们使用矩阵来表示关系,并通过编程判断关系的自反性、对称性和传递性。
```pythonimport numpy as np定义关系矩阵relation_matrix = nparray(1, 0, 1, 0, 1, 0, 1, 0, 1)判断自反性is_reflexive = all(relation_matrixii == 1 for i inrange(len(relation_matrix)))print("自反性:", is_reflexive)判断对称性is_symmetric = all(relation_matrixij == relation_matrixji for i in range(len(relation_matrix)) for j in range(len(relation_matrix)))print("对称性:", is_symmetric)判断传递性is_transitive = Truefor i in range(len(relation_matrix)):for j in range(len(relation_matrix)):for k in range(len(relation_matrix)):if relation_matrixij == 1 and relation_matrixjk == 1 and relation_matrixik == 0:is_transitive = Falsebreakprint("传递性:", is_transitive)```3、图的遍历图是离散数学中的重要结构。
离散信号分析实验报告
离散信号分析实验报告离散信号分析实验报告引言离散信号分析是一门重要的信号处理技术,广泛应用于通信、图像处理、音频处理等领域。
本实验旨在通过实际操作,探索离散信号分析的基本原理和方法,并通过实验结果验证理论知识的正确性。
实验一:离散信号采样与重构在离散信号分析中,采样是将连续时间信号转换为离散时间信号的过程。
首先,我们使用示波器对连续时间信号进行采样,得到一组离散时间信号。
然后,通过重构技术,将离散时间信号恢复为连续时间信号。
实验中,我们选择了一个正弦信号作为输入信号,通过改变采样频率和重构方法,观察信号的失真情况。
实验结果表明,当采样频率低于信号频率的两倍时,会发生混叠现象,导致信号失真。
而当采样频率高于信号频率的两倍时,信号可以被完全恢复。
此外,使用不同的重构方法也会对信号的失真程度产生影响。
通过实验,我们深入理解了采样和重构的原理,并了解到了如何选择合适的采样频率和重构方法。
实验二:离散信号频谱分析频谱分析是离散信号分析的重要内容之一。
在实验中,我们使用FFT算法对离散信号进行频谱分析,并观察信号在频域上的特征。
通过改变输入信号的频率、幅度和相位,我们可以观察到频谱分析结果的变化。
实验结果表明,在频域上,信号的频谱图呈现出明显的峰值,对应着信号的频率成分。
当输入信号为单频信号时,频谱图上只有一个峰值;而当输入信号为复合信号时,频谱图上会有多个峰值。
此外,改变信号的幅度和相位也会对频谱图产生影响。
通过实验,我们进一步理解了离散信号在频域上的特性,为后续的信号处理工作奠定了基础。
实验三:离散信号滤波滤波是离散信号处理中常用的技术之一。
在实验中,我们使用FIR和IIR两种滤波器对输入信号进行滤波,并比较它们的性能差异。
通过观察输出信号的波形和频谱,我们可以评估滤波器的效果。
实验结果表明,FIR滤波器具有线性相位特性,能够实现较好的频率响应;而IIR滤波器则具有较窄的带宽和较快的响应速度。
根据不同的应用需求,我们可以选择合适的滤波器类型。
离散实验报告集合运算
一、实验目的1. 理解集合的基本概念和运算;2. 掌握集合的交、并、差、补等运算方法;3. 通过编程实现集合运算,提高编程能力。
二、实验原理集合是数学中的一种基本概念,用于描述一组具有某种共同属性的元素。
集合的运算主要包括交、并、差、补等。
以下是对这些运算的简要介绍:1. 交集(∩):两个集合A和B的交集是指同时属于A和B的元素组成的集合。
2. 并集(∪):两个集合A和B的并集是指属于A或B或同时属于A和B的元素组成的集合。
3. 差集(-):两个集合A和B的差集是指属于A但不属于B的元素组成的集合。
4. 补集(∁A):集合A的补集是指全集U中不属于A的元素组成的集合。
三、实验内容1. 编写程序,实现以下集合运算:(1)输入两个集合A和B,输出它们的交集C。
(2)输入两个集合A和B,输出它们的并集C。
(3)输入两个集合A和B,输出它们的差集C。
(4)输入一个集合A和全集U,输出A的补集C。
2. 编写程序,验证以下性质:(1)交换律:A∩B = B∩A,A∪B = B∪A。
(2)结合律:A∩(B∩C) = (A∩B)∩C,A∪(B∪C) = (A∪B)∪C。
(3)分配律:A∩(B∪C) = (A∩B)∪(A∩C),A∪(B∩C) = (A∪B)∩(A∪C)。
四、实验步骤1. 定义一个函数用于输入集合,使用数组存储集合元素。
2. 定义一个函数用于计算两个集合的交集,使用嵌套循环遍历两个集合,将相同的元素添加到新集合中。
3. 定义一个函数用于计算两个集合的并集,使用嵌套循环遍历两个集合,将所有元素添加到新集合中。
4. 定义一个函数用于计算两个集合的差集,使用嵌套循环遍历两个集合,将属于A但不属于B的元素添加到新集合中。
5. 定义一个函数用于计算集合的补集,使用嵌套循环遍历全集和集合A,将不属于A的元素添加到新集合中。
6. 编写主函数,调用上述函数,输入集合,输出运算结果。
五、实验结果与分析1. 实验结果(1)输入集合A:{1, 2, 3, 4, 5},集合B:{3, 4, 5, 6, 7},输出交集C:{3, 4, 5}。
离散信号实验报告
一、实验目的1. 理解离散信号的概念及其特点。
2. 掌握离散信号的表示方法。
3. 掌握离散信号的基本运算方法。
4. 熟悉离散系统响应的求解方法。
5. 利用MATLAB进行离散信号分析。
二、实验原理离散信号是指时间上不连续的信号,与连续信号相比,具有以下特点:1. 采样性:离散信号是在时间上等间隔取样的信号。
2. 有限性:离散信号在时间上有限,即在有限的时间内存在。
3. 线性时不变性:离散系统具有线性时不变性,即系统对信号的时延和幅度变换保持不变。
离散信号的表示方法主要有以下几种:1. 序列表示法:用括号括起来的序列表示,如x[n]。
2. 图形表示法:用坐标轴表示,横轴为时间,纵轴为信号幅度。
3. Z变换表示法:用Z变换表示,如X(z)。
离散信号的基本运算方法包括:1. 加法运算:两个离散信号相加,结果为它们的序列对应元素相加。
2. 乘法运算:两个离散信号相乘,结果为它们的序列对应元素相乘。
3. 移位运算:将离散信号沿时间轴左移或右移。
4. 展平运算:将离散信号沿时间轴展平,即将信号序列展开成矩阵形式。
离散系统响应的求解方法主要有以下几种:1. 离散卷积法:用离散卷积运算求解离散系统响应。
2. Z变换法:用Z变换求解离散系统响应。
3. 快速傅里叶变换(FFT)法:用FFT求解离散系统响应。
三、实验内容及步骤1. 实验一:离散信号的表示方法(1)在MATLAB中,创建一个离散信号序列x[n],并绘制其图形表示。
(2)利用Z变换,将离散信号序列转换为Z变换表示。
2. 实验二:离散信号的基本运算(1)在MATLAB中,创建两个离散信号序列x[n]和y[n],并进行加法运算、乘法运算、移位运算和展平运算。
(2)绘制运算结果,并分析运算结果的特点。
3. 实验三:离散系统响应的求解(1)在MATLAB中,创建一个离散信号序列x[n],并设计一个离散系统。
(2)利用离散卷积法、Z变换法和FFT法求解离散系统响应。
离散分析实验报告
一、实验目的1. 理解离散信号与系统的基本概念,熟悉离散信号与系统的特点。
2. 掌握离散信号与系统的分析方法,包括时域分析、频域分析、Z变换分析等。
3. 熟悉MATLAB软件在离散信号与系统分析中的应用,提高运用MATLAB进行实验的能力。
二、实验原理1. 离散信号与系统离散信号是指在一定时间间隔内取有限个值的信号,通常用离散时间序列表示。
离散系统是指输入输出均为离散信号的系统。
2. 离散信号与系统的分析方法(1)时域分析:通过观察信号在时域内的变化规律,分析系统的稳定性和时域特性。
(2)频域分析:通过将信号和系统从时域转换为频域,分析系统的频率响应和频谱特性。
(3)Z变换分析:将离散信号和系统从时域转换为Z域,分析系统的传递函数和频率响应。
三、实验内容1. 离散信号的时域分析(1)输入信号:f(n) = cos(2πn/3) + 0.5sin(4πn/3),n = 0, 1, 2, ..., 15。
(2)MATLAB代码:```n = 0:15;f = cos(2pin/3) + 0.5sin(4pin/3);plot(n, f);xlabel('n');ylabel('f(n)');title('离散信号时域分析');```2. 离散系统的时域分析(1)输入信号:f(n) = cos(2πn/3) + 0.5sin(4πn/3),n = 0, 1, 2, ..., 15。
(2)系统函数:H(z) = (z^2 + 0.5z - 0.25) / (z^3 + 0.75z^2 + 0.25z)。
(3)MATLAB代码:```n = 0:15;f = cos(2pin/3) + 0.5sin(4pin/3);h = (z^2 + 0.5z - 0.25) / (z^3 + 0.75z^2 + 0.25z);y = filter(h, 1, f);plot(n, f, 'b-', n, y, 'r--');xlabel('n');ylabel('f(n), y(n)');title('离散系统时域分析');```3. 离散信号的频域分析(1)输入信号:f(n) = cos(2πn/3) + 0.5sin(4πn/3),n = 0, 1, 2, ..., 15。
武汉工程大学matlab实验二离散时间信号的分析实验【范本模板】
武汉工程大学数字信号处理实验报告二专业班级:14级通信03班学生姓名:秦重双学号:1404201114实验时间:2017年5月3日实验地点:4B315指导老师: 杨述斌实验一离散时间信号的分析实验一、实验目的①认识常用的各种信号,理解其数学表达式和波形表示。
②掌握在计算机中生成及绘制数值信号波形的方法。
③掌握序列的简单运算及计算机实现与作用。
④理解离散时间傅里叶变换、Z变换及它们的性质和信号的频域特性。
二、实验设备计算机,MATLAB语言环境。
三、实验基础理论1、序列的相关概念离散时间信号用一个称为样本的数字序列来表示。
一般用{x[n]}表示,其中自变量n的取值范围是﹣∞到﹢∞之间的整数。
为了表示方便,序列通常直接用x[n]表示。
离散时间信号可以是一个有限长序列,也可以是一个无限长序列。
有限长(也称为有限时宽)序列仅定义在有限的时间间隔中:﹣∞≤N1 ≤N2 ≤+∝。
有限长序列的长度或时宽为N=N1 -N2+1。
满足x[n+kN]=x[n](对于所有n)的序列称为周期为N的周期序列,其中N取任意正整数;k取任意整数;2、常见序列常见序列有单位取样值信号、单位阶跃序列、矩形序列、斜变序列、单边指数序列、正弦序列、复指数序列等。
3、序列的基本运算序列的基本运算有加法、乘法、倒置(反转)、移位、尺度变换、卷积等。
4、离散傅里叶变换的相关概念5、Z变换的相关概念四.实验内容与步骤1、知识准备认真复习以上基础理论,理解本实验所用到的实验原理。
2、离散时间信号(序列)的产生利用MATLAB语言编程和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形,以加深对离散信号时域表示的理解。
①单位取样值信号Matlab程序x=0;y=1;stem(x,y);title('单位样值’);axis([—2,2,0,1]);②单位阶跃序列Matlab程序n0=0;n1=—5;n2=5;n=[n1:n2];x=[(n—n0)>=0];stem(n,x);xlabel('n');ylabel(’x(n)’);title(’单位阶跃序列’);③指数序列、正弦序列Matlab程序n=[0:10];x=(1/3)。
离散实验报告
离散实验报告离散实验报告概述:离散实验是一种基于离散数学原理的实验方法,旨在通过实际操作与观察,验证离散数学理论的正确性与应用性。
本报告将围绕离散实验的目的、方法、结果与分析展开,以期为读者提供一份全面的实验报告。
实验目的:离散实验的目的在于通过实际操作,验证离散数学理论在现实世界中的应用。
具体来说,本次实验旨在验证集合论、图论以及逻辑推理等离散数学的基本概念与原理在实际问题中的有效性。
实验方法:本次实验采用了多种实验方法,包括实地观察、数据收集与分析、计算机模拟等。
首先,我们选择了几个实际问题,如社交网络中的好友关系、物流网络中的最短路径问题等,以验证图论在解决网络问题中的可行性。
然后,我们进行了一系列数据收集,包括好友关系的网络拓扑结构、物流网络中各节点之间的距离等。
最后,我们利用计算机模拟工具,如Python编程语言,实现了离散数学中的算法,如Dijkstra算法、最小生成树算法等,来解决实际问题。
实验结果与分析:通过本次实验,我们得出了一系列实验结果,并对其进行了深入的分析。
首先,在社交网络中的好友关系实验中,我们发现图论中的邻接矩阵与邻接表等数据结构能够很好地表示好友关系,并且通过深度优先搜索与广度优先搜索等算法,能够高效地找到两个人之间的联系路径。
其次,在物流网络中的最短路径实验中,我们发现Dijkstra算法能够快速地找到两个节点之间的最短路径,并且通过最小生成树算法,能够有效地规划物流网络的布局,降低总体成本。
结论:通过本次离散实验,我们验证了离散数学理论在实际问题中的应用性与有效性。
图论、集合论以及逻辑推理等离散数学的基本概念与原理,为解决实际问题提供了有力的工具与方法。
通过实地观察、数据收集与分析、计算机模拟等实验方法,我们得出了一系列实验结果,并对其进行了深入的分析。
我们相信,离散实验的结果将为离散数学的研究与应用提供有力的支持与参考。
展望:离散实验作为一种验证离散数学理论的有效方法,具有广阔的发展前景。
离散数学 实验报告
离散数学实验报告离散数学实验报告一、引言离散数学是一门研究离散结构及其运算规则的数学学科,它在计算机科学、信息科学、通信工程等领域具有重要的应用价值。
本实验旨在通过实际案例,探索离散数学在现实生活中的应用。
二、实验目的本实验的目的是通过离散数学的理论知识,解决一个实际问题。
我们选择了图论中的最短路径问题作为案例,以展示离散数学在网络路由、物流规划等领域的应用。
三、实验过程1.问题描述我们的实验场景是一个城市的交通网络,其中各个交叉路口被看作是图的节点,而道路则是图的边。
我们需要找到两个给定节点之间的最短路径,以便规划出行路线。
2.建模为了解决这个问题,我们需要将实际情况抽象成数学模型。
我们将交通网络表示为一个有向图,每个节点代表一个交叉路口,每条边代表一条道路。
每条边上还需要标注距离或时间等权重。
3.算法选择在离散数学中,有多种算法可以解决最短路径问题,如迪杰斯特拉算法、弗洛伊德算法等。
根据实际情况和需求,我们选择了迪杰斯特拉算法。
4.算法实现我们使用编程语言实现了迪杰斯特拉算法,并将其应用于我们的交通网络模型。
算法的核心思想是通过不断更新节点之间的最短距离,逐步找到最短路径。
5.实验结果经过实验,我们成功找到了两个给定节点之间的最短路径,并计算出了最短距离。
这对于规划出行路线具有重要意义,可以帮助人们节省时间和资源。
四、实验总结通过这个实验,我们深入理解了离散数学在实际问题中的应用。
离散数学的概念和算法不仅仅是理论上的抽象,它们可以帮助我们解决现实生活中的复杂问题。
离散数学的应用远不止于此,它还可以用于密码学、数据压缩、人工智能等领域。
通过学习离散数学,我们能够培养出良好的抽象思维和问题解决能力,为未来的科学研究和工程实践打下坚实的基础。
总之,离散数学是一门具有广泛应用前景的学科,通过实验,我们对其应用领域有了更深入的了解。
希望未来能有更多的人关注和研究离散数学,为推动科学技术的发展做出贡献。
离散数学实验报(2)
离散数学实验报告(2)实验名称:Wharshell算法姓名:卢松指导老师:冯伟森年级:11级2班学号:1143041172学院:计算机一、功能给定n个结点的图G的邻接矩阵A,求G的道路矩阵P。
二、算法(1)将图G的邻接矩阵送入P(n,n)中。
1→i(1)1→j。
(2)对于k=1,2,…,n,作P jkν(P jiΛP ik)→P jk。
(3)j+1→j,若j≤n,则转(4)。
(4)i+1→I,若i≤n,则转(3)。
三、源程序#include<stdio.h>#define N 4main(){int i,j,k;int p[N][N];printf("道路矩阵的warshell算法:\n");for(i=0;i<N;i++){for(j=0;j<N;j++){scanf("%d",&p[i][j]);}printf("\n");}printf("您输入的矩阵为:\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%8d",p[i][j]);}printf("\n");}for(i=0;i<N;i++)for(j=0;j<N;j++)for(k=0;k<N;k++)if(p[j][i]*p[i][j]==1)p[j][i]=1; printf("道路矩阵为:\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%8d",p[i][j]);}printf("\n");}}结果:四、实验总结此次实验可以的算是成功的,但是由于自己的疏忽导致在输入数据时出现了一些问题,但是经历过多次调试后最终出现正确的结果,感觉到要注意细节,注重实际操作才能真的做到游刃有余。
离散数学实验报告
离散数学实验报告离散数学实验报告一、引言离散数学是现代数学的一个重要分支,它研究离散的数学结构和离散的数学对象。
本实验报告将介绍我对离散数学的学习和实践的一些心得体会。
二、集合论集合论是离散数学的基础,它研究集合及其运算。
在实验中,我学习了集合的表示方法和运算规则。
集合的表示方法有枚举法、描述法和图示法等。
集合的运算包括并、交、差和补等。
通过实践操作,我深刻理解了集合的概念和运算规则。
三、逻辑与命题逻辑是离散数学的另一个重要内容,它研究推理和思维的规律。
在实验中,我学习了逻辑的基本概念和符号表示法。
逻辑中的命题是逻辑推理的基本单位,它可以是真或假。
通过实践操作,我能够正确地分析和判断命题的真值,并进行逻辑推理。
四、关系与函数关系与函数是离散数学中的重要内容,它们描述了元素之间的联系。
在实验中,我学习了关系的定义和性质,包括自反性、对称性和传递性等。
函数是一种特殊的关系,它将一个集合的元素映射到另一个集合。
通过实践操作,我能够正确地定义和分析关系与函数。
五、图论图论是离散数学中的重要分支,它研究图及其性质。
在实验中,我学习了图的基本概念和表示方法。
图由顶点和边组成,可以分为有向图和无向图。
通过实践操作,我能够正确地定义和分析图的性质,如度、路径和连通性等。
六、组合数学组合数学是离散数学的另一个重要分支,它研究离散对象的组合和排列。
在实验中,我学习了组合数学的基本原理和方法。
组合数学中的排列和组合是常见的计数问题,通过实践操作,我能够正确地计算排列和组合的数量。
七、实践应用离散数学在计算机科学、通信工程和运筹学等领域有着广泛的应用。
在实验中,我了解了离散数学在实际问题中的应用。
例如,图论可以用于网络路由算法的设计,组合数学可以用于密码学中的加密算法设计。
通过实践操作,我能够将离散数学的知识应用到实际问题中,提高问题的解决效率。
八、总结通过本次离散数学实验,我深入了解了离散数学的基本概念和方法,并通过实践操作加深了对离散数学的理解。
离散化方法研究
东南大学自动化学院实验报告课程名称:计算机控制技术第二次实验实验名称:离散化方法的研究院(系):自动化专业:自动化姓名:学号:实验室:实验组别:同组人员:实验时间:2012 年 3 月26 日评定成绩:审阅教师:一、实验目的1.学习并掌握数字控制器的设计方法(按模拟系统设计方法与按离散设计方法); 2.熟悉将模拟控制器D(S)离散为数字控制器的原理与方法(按模拟系统设计方法); 3.通过数模混合实验,对D(S)的多种离散化方法作比较研究,并对D(S)离散化前后闭环系统的性能进行比较,以加深对计算机控制系统的理解。
二、实验设备1.THBDC -1型 控制理论·计算机控制技术实验平台 2.PCI -1711数据采集卡一块3.PC 机1台(安装软件“VC++”及“THJK_Server ”)三、实验原理由于计算机的发展,计算机及其相应的信号变换装置(A/D 和D/A )取代了常规的模拟控制。
在对原有的连续控制系统进行改造时,最方便的办法是将原来的模拟控制器离散化。
在介绍设计方法之前,首先应该分析计算机控制系统的特点。
图3-1为计算机控制系统的原理框图。
图3-1 计算机控制系统原理框图由图3-1可见,从虚线I 向左看,数字计算机的作用是一个数字控制器,其输入量和输出量都是离散的数字量,所以,这一系统具有离散系统的特性,分析的工具是z 变换。
由虚线II 向右看,被控对象的输入和输出都是模拟量,所以该系统是连续变化的模拟系统,可以用拉氏变换进行分析。
通过上面的分析可知,计算机控制系统实际上是一个混合系统,既可以在一定条件下近似地把它看成模拟系统,用连续变化的模拟系统的分析工具进行动态分析和设计,再将设计结果转变成数字计算机的控制算法。
也可以把计算机控制系统经过适当变换,变成纯粹的离散系统,用z 变化等工具进行分析设计,直接设计出控制算法。
按模拟系统设计方法进行设计的基本思想是,当采样系统的采样频率足够高时,采样系统的特性接近于连续变化的模拟系统,此时忽略采样开关和保持器,将整个系统看成是连续变化的模拟系统,用s 域的方法设计校正装置D(s),再用s 域到z 域的离散化方法求得离散传递函数D(z)。
离散系统频率响应和零极点分布实验报告
输出参数:h是计算所得的频率响应值;f是在0到fs/2频率范围内的频率值。
2.系统的有理分式形式转化成零极点增益形式的函数
[z,p,k]=tf2zp(b,a)
y[k]-1.6y[k-1]+1.28y[k-2]=0.5x[k]+0.1x[k-1]
(1)编程求此系统的单位脉冲响应序列,并画出其波形。
(2)若输出序列x[k]=δ[k]+2δ[k-1]+3δ[k-2]+4δ[k-3]+5[k-4]),编程求此系统输出序列y[k],并画出其波形。
(3)编程得到系响应的幅度响应和相位响应,并画出图。
4.绘制离散系统零极点图函数
zplane(b,a)
zplane(z,p,k)
输入参数:b,a,z,p,k与tf2zp相同
zplane(b,a)画出以矢量b和a描述的离散时间系统的零极点图。
zplane(z,p,k)画出以零点矢量z和极点矢量p以及增益k描述的离散时间的零极点图。
三、实验程序
一个LTI离散时间系统的输入输出差方方程为
(4)编程得到系统的零极点分布图,分析系统的因果性和稳定性。
(1)
n=0:30
a=[1,-1.6,1.28]
b=[0.5,0.1]
y=impz(b,a,n)
STEM(y)
TITLE('输入信号')
xlabel('时间序列')
ylabel('信号幅度')
(2)
x=[1,2,3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“离散数学”实验报告(实验1)专业网络工程班级网133学号139074337姓名李阳一.实验目的;本实验课程是计算机专业学生的一门专业基础课程,通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。
熟悉掌握集合中的交、并、相对补、对称差、笛卡尔乘积、以及集合间的关系运算等,进一步能用它们来解决实际问题。
二.实验内容;从键盘输入两个集合A和B的元素,求它们的交∩、并∪、相对补-、对称差(+)、笛卡尔乘积×、以及集合间的关系复合运算×三. 实验原理;1.实验原理(1)交:A∩B={x|x∈A∧x∈B}对于集合A和集合B,由即属于A又属于B的所有元素所组成的集合,。
(2)并:A∪B={x|x∈A∨x∈B}若A和B是集合,则A和B并集是有所有A的元素或所有B的元素,而没有其他元素的集合。
(3)相对补:B - A = { x| x∈B,x∉A}A -B = { x| x∈A,x∉B}若 A 和 B 是集合,则 A 在 B 中的相对补集,或叫做 B 和 A 的集合论差,是这样一个集合,其元素属于 B,但不属于 A。
(4)对称差:A(+)B={x|x∈A∪B,x∉A∩B}A(+)B=(A∪B)—(A∩B)A(+)B=(A—B)∪(B—A)集合A与集合B中所有不属于A∩B的元素的集合。
(5)笛卡尔乘积:AxB={<x,y>|x∈A∧y∈B}设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作AxB. (6)求集合间关系的复合运算:RoS=})S∧<{>∈>∈<>∃<x,Ry,zyz|y(x,设R是X到Y的关系,S是Y到Z的关系,则RoS称为R和S的复合关系。
四.实验数据及结果分析;欢迎界面:程序运行界面一:输入两个简单一点的集合:程序运行界面二:输入两个元素为序偶的集合:五.源程序清单;//本次最困难的地方是逻辑理不清,导致程序无错,但是输不出来想要的。
#include "stdio.h"#include "string.h"#include "stdlib.h"const unsigned int NUMBER=10;const unsigned int LONG=15;const unsigned int HALF_LONG=8;//f=';'=59 Fen[]=";" Fen[0]=-93 Fen[1]=-69const int E_Fen=59,C_Fen1=-93,C_Fen2=-69;//d=','=44 Dou[]="," Dou[0]=-93 Dou[1]=-84const int E_Dou=44,C_Dou1=-93,C_Dou2=-84;//E_L_Kuo='<'=60 E_R_Kuo='>'=62const int E_L_Kuo=60 , E_R_Kuo=62;//C_L_Kuo[]="《"const int C_L_Kuo1=-95 , C_L_Kuo2=-74;//C_R_Kuo[]="》"const int C_R_Kuo1=-95 , C_R_Kuo2=-73;unsigned int stringcmp(const char *p1,const char *p2);void welcome();void get_s(char **p,char g);char choice();void jiao(char **pa,char **pb,char **p_ab);void bing(char **pa_to_pb,char **pb_to_pa,char **p_ab);void x_d_b(char **p,char **p_ab,char **p_to);void d_c_c(char **pa_to_pb,char **pb_to_pa);void print(char **p);void free_all(char **p);void new_Fu_He(char **pa,char **pb,char **pc);void new_Xuou_Fu_He(char **pa,char **pb,char **pc);unsigned int jie_qu(const char *x1,const char *x2,char *f_jq,char *s_jq); void Dele_Same_Str(char **pc);unsigned int stringcmp(const char *p1,const char *p2){int i1,i2;for(i1=0,i2=0;p1[i1]!='\0';i1++,i2++){if(p1[i1]==p2[i2])continue;//E_Dou=44,C_Dou1=-93,C_Dou2=-84if(p1[i1]==C_Dou1 && p1[i1+1]==C_Dou2){if(p2[i2]==E_Dou){i1++;continue;}}if(p2[i2]==C_Dou1 && p2[i2+1]==C_Dou2){{i2++;continue;}}//E_L_Kuo=60 C_L_Kuo1=-95 , C_L_Kuo2=-74;if(p1[i1]==C_L_Kuo1 && p1[i1+1]==C_L_Kuo2) {if(p2[i2]==E_L_Kuo){i1++;continue;}}if(p2[i2]==C_L_Kuo1 && p2[i2+1]==C_L_Kuo2) {if(p1[i1]==E_L_Kuo){i2++;continue;}}// E_R_Kuo=62 C_R_Kuo1=-95 , C_R_Kuo2=-73;if(p1[i1]==C_R_Kuo1 && p1[i1+1]==C_R_Kuo2) {{i1++;continue;}}if(p2[i2]==C_R_Kuo1 && p2[i2+1]==C_R_Kuo2){if(p1[i1]==E_R_Kuo){i2++;continue;}}return 1;}return 0;}void welcome(){printf("************************************************************\n");printf("** **\n");printf("** **\n");printf("** 欢迎进入逻辑运算软件**\n");printf("** **\n");printf("** (可运算集合的交,并,相对补,对称差) **\n");printf("** **\n");printf("** **\n");printf("** **\n");printf("** 用∩表示交**\n");printf("** 用∪表示并**\n");printf("** 用-表示相对补**\n");printf("** 用(+)表示对称差**\n");printf("** 用<null>表示集合为空**\n");printf("** **\n");printf("** 一次只能运算两个集合**\n");printf("** 集合元素不得多于10个**\n");printf("** 元素长度不得多于15个字节**\n");printf("** **\n");printf("** 每个元素间用分号;或者是;隔开**\n");printf("** eg:…2;3…或者…2;3…**\n");printf("** **\n");printf("** 序偶自身之间用,或是,分开**\n");printf("** eg:…《1,2》;《2,3》…**\n");printf("************************************************************\n\n"); }void get_s(char **p,char g){char *s=NULL;char t[LONG]={'\0'};int s_i,p_k,t_j,t_m;if((s=(char*)calloc(LONG*NUMBER,sizeof(char)))==NULL){printf("内存分配失败!\n");exit(1);}printf("请输入%c集合元素:\n %c={",g,g);gets(s);putchar('}');putchar('\n');s_i=strlen(s);s[s_i]=';';p_k=0;//E_Fen=59,C_Fen1=-93,C_Fen2=-69for(s_i=0,t_j=0;s[s_i]!='\0';s_i++,t_j++){if(s[s_i]!=E_Fen){if(s[s_i]!=C_Fen1 && s[s_i]!=C_Fen2)t[t_j]=s[s_i];//切记条件多时,就用if一个个表示出来,不可妄想省if,那样只会把逻辑搞的很混乱if(s[s_i]==C_Fen1 && s[s_i+1]!=C_Fen2)t[t_j]=s[s_i];}if((s[s_i]==E_Fen)||(s[s_i]==C_Fen2 && s[s_i-1]==C_Fen1)){if((p[p_k]=(char*)calloc(LONG,sizeof(char)))==NULL){printf("内存分配失败!\n");exit(1);}strcpy(p[p_k],t);t_j=-1;p_k++;for(t_m=0;t_m<LONG;t_m++)t[t_m]='\0';}if(p_k>NUMBER){printf("集合元素多于%ud!存储失败。