当前位置:文档之家› 算法实验指导书

算法实验指导书

算法实验指导书
算法实验指导书

算法设计与分析实验指导书

信电工程学院

2015.7

算法设计与分析

一.实验目的

算法设计与分析是计算机相关专业的核心课程之一。本实验加深学生对算法设计的基本策略、主要方法及实验过程的理解;培养学生针对具体的问题,选择合适的数据结构和设计结构清晰、正确有效的算法的能力。

二.实验内容

E05210801 算法概述

E05210802 分治法

E05210803 动态规划

E05210804 贪心法

E05210805 回溯法

E05210806 分支限界法

E05210807 NP完全问题

E05210808 近似算法

三.实验方法

本课程所有实验均需上机进行,每个实验都有明确的实验目的,并根据实验要求提供实验题。每位同学通过独立思考、与同学讨论、老师辅导答疑相结合的方法完成相应的实验题,在对题目进行分析、选择有效的方法、编程及测试的过程中,将达到加深学生印象、锻炼学生运用书本知识实际解决问题的能力。

四. 实验要求

学生按照实验要求,上机前写好上机实验预习报告。

上机实验时按实验要求完成每一个实验的内容。

认真书写实验报告,内容包括:实验的目的、实验原理、实验内容、实验步骤、实验结果等。

实验一算法概述

1. 实验目的

(1) 复习数据结构课程的相关知识,实现课程间的平滑过渡;

(2) 掌握并应用算法的数学分析和后验分析方法;

(3) 理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。

2. 实验内容

求两个自然数m和n的最大公约数。

3. 实验要求

(1) 至少设计出三个版本的求最大公约数算法;

(2) 对所设计的算法采用大O符号进行时间复杂性分析;

(3) 上机实现算法,并用计数法和计时法分别测算算法的运行时间;

(4) 通过分析对比,得出自己的结论。

实验二分治法

1. 实验目的

(1) 进一步掌握递归算法的设计思想以及递归程序的调试技术;

(2) 理解这样一个观点:分治与递归经常同时应用在算法设计之中。

2. 实验内容

设p1, p2, …, p n是平面上n个点构成的集合S,设计算法找出集合S中距离最近的点对。

3. 实验要求

(1) 分别用蛮力法和分治法求解最近对问题;

(2) 分析算法的时间性能,设计实验程序验证分析结论。

实验三动态规划

1. 实验目的

(1) 深刻掌握动态规划法的设计思想并能熟练运用;

(2) 理解这样一个观点:同样的问题可以用不同的方法解决,一个好的算法是反复努力和重修正的结果。

2. 实验内容

给定由n个整数组成的序列(a1, a2, …, a n),求该序列的子段和的最大值,当所有整数均为负整数时,其最大子段和为0。

3. 实验要求

(1) 分别用蛮力法、分治法和动态规划法设计最大子段和问题的算法;

(2) 比较不同算法的时间性能;

(3) 给出测试数据,写出程序文档。

实验四贪心算法

1. 实验目的

(1) 掌握最优子结构性质的证明方法;

(2) 掌握贪心法的设计思想并能熟练运用。

2. 实验内容

一辆汽车加满油后可以行驶一定距离。旅途中有若干个加油站。若要使沿途的加油次数最少,应在那些加油站停靠加油。

3. 实验要求

(1) 设计贪心算法求解汽车加油问题;

(2) 证明算法的正确性;

(3) 设计测试数据,写出程序文档。

实验五回溯法

1. 实验目的

(1) 掌握回溯法的设计思想;

(2) 掌握解空间树的构造方法,以及在求解过程中如何存储求解路径;

(3) 考察回溯法求解问题的有效程度。

2. 实验内容

给定n种物品和一个容量为C的背包,物品i(1≤i≤n)的重量是w i,其价值为v i,0/1背包问题是如何选择装入背包的物品(物品不可分割),使得装入背包中物品的总价值最大?

3. 实验要求

(1) 设计可能解的表示方式,构成解空间树;

(2) 设计回溯算法完成问题求解;

(3) 设计测试数据,统计搜索空间的结点数;

实验六分支限界法

1. 实验目的

(1) 进一步掌握分支限界法的设计思想,掌握限界函数的设计技巧;

(2) 考察分支限界法求解问题的有效程度,并与回溯法进行对比;

(3) 理解这样一个观点:好的限界函数不仅计算简单,还要保证最优解在搜索空间中,更重要的是能在搜索的早期对超出目标函数界的结点进行丢弃,减少搜索空间,从而尽快找到问题的最优解。

2. 实验内容

给定n个城市集合C={c1,c2,…,c n}, 从一个城市到另一个城市的距离d ij 为正整数,求一条最短且每个城市恰好经过一次的巡回路线。

3. 实验要求

(1) 对旅行售货员问题建立合理的模型,通过实验确定一个合理的限界函数;

(2) 设计算法实现旅行售货员问题;

(3) 设计测试数据,统计搜索空间的结点数。

实验七NP完全问题

1. 实验目的

(1) 掌握NP完全问题的特点;

(2) 理解这样一个观点:NP完全问题的算法具有指数时间,而指数时间算法的计算时间随着问题规模的增长而快速增长。

2. 实验内容

SAT问题也称为合取范式的可满足问题,一个合取范式形如:A1∧A2∧…∧A n,子句A i(1≤i≤n)形如:a1∨a2∨…∨a k,其中,a i称为文字,为某一布尔变量或该布尔变量的非。SAT问题是指:是否存在一组对所有布尔变量的赋值(TRUE或FALSE),使得整个合取范式取值为真。

3. 实验要求

(1) 设计算法求解SAT问题;

(2) 设定问题规模为3、5、10、20、50,设计实验程序考察算法的时间性能。

实验八近似算法

1. 实验目的

(1) 了解处理难解问题的策略;

(2) 掌握近似算法的设计思想并能熟练运用;

(3) 掌握近似算法的评价标准。

2. 实验内容

0-1背包问题的近似算法。

3. 实验要求

(1) 设计简单贪心算法G-KK;多项式时间近似方案PTAS;多项式时间近似方案FPTAS。

(2) 测试每种算法的性能。

算法分析与设计实验指导书

《算法分析与设计》实验指导书本书是为配合《算法分析与设计实验教学大纲》而编写的上机指导,其目的是使学生消化理论知识,加深对讲授容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 上机实验一般应包括以下几个步骤: (1)、准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机。(2)、上机输入和调试自己所编的程序。一人一组,独立上机调试,上机时出现的问题,最好独立解决。 (3)、上机结束后,整理出实验报告。 实验报告应包括: 1)问题分析 2)算法描述 3)运行结果、 4)算法性能分析。 实验一 实验名称:贪心算法应用及设计 实验学时:6学时 实验类型:验证 实验目的: 1.理解贪心算法的基本思想 2.掌握利用贪心算法求解问题的求解步骤 实验容 1.活动选择问题(2学时) 问题描述: 设有11个会议等待安排,用贪心法找出满足目标要求的会议集合,这些会议按结束时间的非减序排列如下表。 实验实现提示: 1)数据结构设计: 将会议开始时间存储在数组B中,结束时间存储在数组E中,数组下标为会议的代码。结果存储在数组A中,其元素A[i]==true,表示会议i被选中。 2)算法: void GreedySelect(int n, struct time B[], struct time E[], bool A[]) { int i,j;

A[1]=true; j=1; i=2; while( i<=n) if (B[i]>=E[j]) { A[i]=true; j=i;} else A[i]=false; } 思考题:证明所得的解是最优解? 2.单源点最短路径问题。(2学时) 问题描述 如图所示的有向带权图中,求源点0到其余顶点的最短路径及最短路径长度。并对算法进行性能分析。 实现提示 1)数据结构设计: 将图存储在邻接矩阵C中,结点个数为n,源点编号为u, 源点u到其余顶点的最短路径长度存储在dist[],最短路径存储在p[]。 2) 算法 void Dijkstra(int C[n][n], int n,int u,float dist[],int p[]) { bool s[n]; for( int i=1; i<=n; i++) { dist[i]=C[u][i]; s[i]=false; if (dist[i]=∞) p[i]=-1; else p[i]=u; } p[u]=-1; s[u]=true; for( i=1; i<=n; i++) { int temp= ∞; int t=u; for( int j=1;j<=n;j++)

计算方法实验

实验一: 姓名: 学号: 班级:2013级计算机6班实验地点:第二机房 实验时间:2015/3/17

1 实验目的和要求 1. 二分法求方程的根 2. 基本迭代法求方程的根 3. 用埃特金求方程010423=-+x x 在1.5处的一个根,精度要求410-。 4. 牛顿下山法求方程的根 求方程013=--x x 的根,初值取6.00=x ,精度满足510-。 5. 牛顿迭代法求解7,精度满足510- 2 实验环境和工具 机房 VC6 3 实验结果 3.1 算法流程图 3.2 程序核心代码 二分法代码 #include #include

void main() { double x,a=1.0,b=1.5; for(int i=1;i<10;i++) { x=(a+b)/2; if((a*a*a-a-1)*(x*x*x-x-1)<0) b=x; else a=x; if(b-a<0.01) break; cout< #include void main() { double x0=0.5,x,e=2.718281;

for(int i=1;i<20;i++) { x=pow(e,-x0); if(x-x0<0.00001) break; cout< #include #include using namespace std; ////////// double fun(double x); void AitkenIterative(double(*pf)(double x)); ////////// ////////// int main() { AitkenIterative(fun);

数据结构课程设计指导书

数据结构课程设计指导 一、课程设计要求 课程设计是数据结构课程的一个综合实践练习,是有别于课程实验的一个独立实践教学环节。课程设计一般在课程结束后进行,教学时数为1周。具体要求如下: 1、结合实际问题进一步理解和深化课程理论知识,做到理论与实际相结合。 2、能对实际问题进行分析和抽象,并进行数据结构设计和算法设计,具有初步的分析问题和解决问题的能力。 3、了解软件工程的理论与方法,初步掌握软件开发过程中的需求分析、系统设计、编码、测试等基本方法和技能。 4、进一步强化编程训练,提高程序设计能力。 5、设计内容要有一定的深度和难度,达到一定工作量,代码量不低于500行。 二、课程设计内容 课程设计的主要工作如下: 1、问题定义与需求分析:根据设计题目的要求,对问题进行分析,确定系统的功能需求和性能需求。 2、数据结构与算法设计:对问题描述中涉及的数据对象定义相应的数据结构,包括逻辑结构、存储定义和主要操作。对主要算法要进行时间和空间复杂度分析。 3、概要设计:采用面向对象方法设计软件结构,定义类及类之间的关系。要求系统结构合理、易于实现。 4、详细设计:对数据结构和基本操作做进一步的求精,写出数据存储定义,用程序流程图或伪码对算法进行描述。 5、编码与测试:用C++编程实现系统,并设计测试用例对系统进行测试,修改程序中的错误,形成格式和风格良好的源程序清单。 6、设计结果分析:对系统应用效果进行分析,评价系统的先进性、实际应用价值及在在的问题。 7、撰写课程设计报告。 三、课程设计考核 课程设计考核内容包括设计作品和设计报告两个部分。设计作品包括可运行的源程序(刻录成光盘),系统使用说明,主要程序代码(打印附在课程报告内)。课程设计报告主要报告系统分析、设计和实现过程,内容如下: 1、问题定义及设计要求; 2、主要设计内容:详细报告课程设计中所做的主要工作,包括系统分析、概要设计、数据结构设计、算法设计及模块设计和编程及测试等。 3、总结与体会:写出本次课程设计的主要创新点及存在的问题。 4、参考文献:列出所参考的主要文献。 5、小组成员及分工。 课程设计成绩分两部分,设计报告占50%,设计作品占50%。评价因素主要有:

《算法分析与设计》实验指导书

《计算机算法设计与分析》实验指导书(第一版)

前言 计算机算法分析与设计是面向设计的,它是计算机科学的核心。无论是计算机系统、系统软件和解决计算机的各种应用问题都可归结为算法的设计。通过本课程的学习,使学生掌握计算机领域中许多常用的非数值的算法描述:分治法、贪心法、动态规划、回溯法、分枝限界等算法,并掌握算法分析的方法,从而把学生的分析问题和解决问题能力提高到理论的高度。 前期课程为程序设计语言、数据结构、高等数学,即学生应该具备一门高级语言程序设计编程基础,学习基本的数据结构知识,还要求学生掌握较好的数学基础。 开发环境不限,本书采用C/C++语言的集成开发环境等。 实验完成后书写实验报告,包含实验问题、基本思想、关键算法流程图、测试数据及运行结果(截图)、调试心得和源程序。 总实验学时为16学时。

目录 预备实验验证算法的方法 (4) 实验目的: (4) 实验课时: (4) 实验原理: (4) 实验题目: (6) 基本题: (6) 提高题: (6) 实验一递归与分治 (7) 实验目的: (7) 实验课时: (7) 实验原理: (7) 实验题目: (7) 基本题: (7) 提高题: (8) 思考问题: (8) 实验二动态规划算法 (9) 实验目的: (9) 实验课时: (9) 实验原理: (9) 实验题目: (9) 基本题: (9) 提高题: (10) 思考问题: (10) 实验三贪心选择算法 (11) 实验目的: (11) 实验课时: (11) 实验原理: (11) 实验题目: (11) 基本题: (11) 提高题: (12) 思考问题: (12) 实验四回溯算法 (13) 实验目的: (13) 实验课时: (13) 实验原理: (13) 实验题目: (14) 基本题: (14) 提高题: (14) 思考问题: (14)

生物化学课程实验指导书

〈〈生物化学》实验指导书适用专业:生物技术、生物工程、食品科学与工程 生物与食品工程学院生物科学系

生物化学实验细则 为了保证生物化学实验的顺利进行,培养同学们掌握良好、规范的生物化学基本实验技能,特制定以下实验细则,请同学们严格遵守。 1. 实验前应提前预习实验指导书并复习相关知识。 2. 严格按照生物化学实验分组,分批进入实验室,不得迟到。非本实 验组的同学不准进入实验室。 3. 进入实验室必须穿实验服。各位同学进入各白实验小组实验台后, 保持安静,不得大声喧哗和嬉戏,不得无故离开本实验台随便走动。 绝对禁止用实验仪器或药物开玩笑。 4. 实验中应保持实验台的整洁,废液倒入废液桶中,用过的滤纸放入 垃圾桶中,禁止直接倒入水槽中或随地乱丢。 5. 实验中要注意节约药品与试剂,爱护仪器,使用前应了解使用方法, 使用时要严格遵守操作规程,不得擅白移动实验仪器。否则,因非实验性损坏,由损坏者赔还。 6. 使用水、火、电时,要做到人在使用,人走关水、断电、熄火。 7. 做完实验要清洗仪器、器皿,并放回原位,擦净桌面。 8. 实验后,要及时完成实验报告。 2006年1月

生物化学实验细则 (i) 目录 (2) 实验1蛋白质的沉淀、变性反应 (3) 实验2醋酸纤维素薄膜电泳分离血清蛋白 (6) 实验3 SDS-聚丙烯酰胺凝胶电泳测定蛋白质分子虽- --11实验4 凝胶过滤层析法测定蛋白质分子虽 (16) 实验5 DNA的琼脂糖凝胶电泳 (20) 实验6唾液淀粉酶的性质和活力测定 (24) 实验7 生物氧化与电子传递 (25) 实验8植物体内的转氨基作用 (27) 实验1 蛋白质的沉淀、变性反应 (3学时) 目的要求 1. 加深对蛋白质胶体溶液稳定因素的认识。 2. 了解沉淀蛋白质的几种方法及其实用意义。 3. 了解蛋白质变性与沉淀的关系。 4. 了解蛋白质两性性质 原理 在水溶液中,蛋白质分子表面形成水化层和双电层而成为稳定的胶体颗粒,所以蛋白质溶液和其他亲水胶体溶液相类似。但是,蛋白质胶体颗粒的稳定性是有条件的,相对的。在一定的物理化学因素影响下,蛋白质颗粒失去电荷,脱水,甚至变性,则以固态形式从溶液中析出,这个过程称为蛋白质的沉

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

算法设计与分析课程设计-实验指导书

算法设计与分析课程设计 实验指导书 上海第二工业大学 计算机与信息学院软件工程系

一、运动员比赛日程表 设有n=2k个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表: ●每个选手必须与其它n-1个选手各赛一次 ●每个选手一天只能赛一次 ●循环赛一共进行n-1天 1、运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机 通过。 输入:运动员人数n(假定n恰好为2的i次方) 输出:比赛日程表A[1..n,1..n] 1. for i←1 to n //设置运动员编号 2. A[i,1]←i 3. end for 4. Calendar(0,n) //位移为0,运动员人数为n。 过程Calendar(v, k) //v表示位移(v=起始行-1),k表示运动员人数。 1. if k=2 then //运动员人数为2个 2. A[v+2,2]←A[v+1,1] //处理右下角 3. A[v+1,2]←A[v+2,1]//处理右上角 4. else 5. Calendar(v,k/2) //假设已制定了v+1至v+k/2运动员循环赛日程表 6. Calendar(v+k/2,k/2) //假设已制定了v+k/2+1至v+k运动员循环赛日程表 7. comment:将2个k/2人组的解,组合成1个k人组的解。 8. for i←1 to k/2 9. for j←1 to k/2 10. A[v+i+k/2,j+k/2]←A[v+i,j] //沿对角线处理右下角 11. end for 12. end for 13. for i←k/2+1 to k 14. for j←1 to k/2 15. A[v+i-k/2,j+k/2]←A[v+i,j] //沿对角线处理右上角 16. end for 17. end for 18. end if 2、编制该问题的非递归算法,上机通过。 将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务器。

工业控制网络技术课程实验指导书2013

实 验 一 Automation Studio 的使用和基本程序编程及调试 一、实验目的 1、掌握Automation Studio 的基本使用技巧和方法 2、熟悉Automation Studio 的基本命令 3、学会和掌握Automation Studio 程序的调试方法 二、实验设备 PC机一台,装有Automation Studio编程软件;贝加莱PLC-2003一台; 各PC机与PLC-2003通过RS232电缆连接进行通信。 详见附录一。 三、实验内容 熟悉并练习Automation Studio的使用,用选定的编程语言编制、调试控制程序。Automation Studio是贝加莱公司为其自动化控制设备PLC(可编程计算机控制器)开发的一种可使用多种编程语言的PLC开发环境,如附录二所示。 1.PLC硬件配置: 根据所给实验装置,使用Automation Studio对系统硬件进行配置。 配置方法见本指导书附录B。 2.实验程序1: 使用Automation Basic或其它PLC编程语言,编制一段小控制程序,实现以下功能:利用实验装置上的第一个模拟量旋钮(电位器),来控制模拟量输

出,当旋转该电位器时,第一个模拟量输出随之变化,旋钮逆时针旋到底时(模拟量输入为最小值0),要求模拟量输出为0(光柱无显示),当旋钮顺时针旋到底时(模拟量输入为最大值32767),要求模拟量输出为最大值(光柱全显示); 同时,第二个模拟量输出的状态正好与第一个模拟量输出相反。 3.实验程序2: 使用Automation Basic或其它PLC编程语言,编制一段小控制程序,实现以下功能:利用实验装置上的两个开关,来控制模拟量输出,当接通(合上)其中一个开关(另一个应处于断开状态)时,第一个模拟量输出从0开始随时间逐渐增大,达到其最大值后,再从0开始…,周而复始;当接通(合上)另一个开关时,第二个模拟量输出从0开始随时间逐渐增大,达到其最大值后,再从0开始…,同时,第二个模拟量输出从其最大值开始随时间逐渐减小,达到0后,再从其最大值开始…,周而复始。 四. 思考题 1.在Automation Studio中为什么要对PLC系统硬件进行配置? 2.为什么要为用户编制的控制程序命名? 3.为用户程序选择循环周期的原则是什么? 4.Automation Studio为用户提供多种编程语言有什么好处?

算法设计与分析实验指导书样本

算法设计与分析实验指导书

实验一 C/C++环境及递归算法( 4学时) 一、实验目的与要求 1、熟悉C/C++语言的集成开发环境; 2、经过本实验加深对递归过程的理解 二、实验内容: 掌握递归算法的概念和基本思想, 分析并掌握排列问题的递归算法和Hanoi塔问题的递归算法。 三、实验题 1、设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。任意输入一 串整数或字符, 输出结果能够用递归方法实现整数或字符的全排列。 2、设a,b,c是3个塔座。开始时, 在塔座a上有一叠共n个圆盘, 这些圆 盘自下而上, 由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上, 并仍按同样顺序叠置。 四、实验步骤 1.理解算法思想和问题要求; 2.编程实现题目要求; 3.上机输入和调试自己所编的程序; 4.验证分析实验结果; 5.整理出实验报告。 实验提示 1、 #include inline void swap(int &a,int &b) { int temp=a; a=b;

b=temp; } void perm(int list[],int k,int m) { if(k==m) { for(int i=0;i<=m;i++) cout<

计算方法实验指导书

计算方法实验指导书 河北大学电子信息工程学院 2007年9月 目录 计算方法实验教学计划 (2) 实验一MATLAB基本操作 (3) 实验二插值法 (5) 实验三线性方程组的直接解法 (7) 实验四线性方程组的迭代方法 (10) 实验五函数逼近与曲线拟合.................................................... . (12) 计算方法实验教学计划 指导教师:李昆仑 学时数:10学时周4学时2次实验,共3周6次实验,第7—9教学周, 每次实验2学时 所用仪器设备:实验软件系统 实验指导书:Matlab实验指导书自编 实验参考书: 《计算方法》, 徐萃薇等编着,高等教育出版社, 《数值分析与实验》,薛毅编着,北京工业大学出版社, 实验项目: A, MATLAB基本操作 内容:矩阵操作,基本数学函数,逻辑函数操作等; 要求:完成一些基本练习题 B, 插值法 内容:Lagrange插值、分段线性插值、三次样条在计算机上用MATLAB软件实现 要求:完成一些基本练习题 C, 线性方程组的求解——直接解法 内容:高斯消元法,列主元素法及其误差分析等在计算机上用MATLAB软件实现。 要求:用实例在计算机上计算和作图。 D, 线性方程组的求解——迭代法 内容:向量和矩阵的范数,雅可比迭代法,高斯-赛德尔迭代法及其收敛性等在计算机上用MATLAB软件实现。 要求:用实例在计算机上计算。 E, 函数逼近与曲线拟合 内容:曲线拟和与最小二乘方法在计算机上用MATLAB软件实现,并用实例在计算机上计算和作图。 要求:用实例在计算机上计算。 实验一 MATLAB基本操作 实验目的 熟悉MATLAB的使用方法及特点;学会建立MATLAB搜索路径;熟悉MATLAB工作空间、MATLAB 集成环境、命令窗口;掌握MATLAB的通用命令、管理命令和函数、管理变量和工作空间的使用方法;

数学实验课程实验指导书Word版

《数学实验》课程实验指导书 2006-4-29

目录 实验一、微积分基础 3实验二、怎样计算 5实验三、最佳分数近似值 6实验四、数列与级数 7实验五、素数 8实验六、概率 9实验七、几何变换 11实验八、天体运动 13实验九、迭代(一)——方程求解 15实验十、寻优 16实验十一、最速降线 18实验十二、迭代(二)——分形 20实验十三、迭代(三)——混沌 21实验十四、密码 22实验十五、初等几何定理的机器证明 23附表(实验报告) 24

实验一、微积分基础 一、实验目的及意义:1、熟悉Mathematic软件常见函数图形 2、通过作图,进一步加深对函数的理解,观察函数的性质 3、构造函数自变量与因变量的对应表,观察函数的变化。 二、实验内容: 1.1函数及其图象 1.2数e 1.3 积分与自然对数 1.4调和数列 1.5双曲函数 三、实验步骤 1.开启软件平台——Mathematics ,开启Mathematics编辑窗口; 2.根据各种问题编写程序文件 3.保存文件并运行; 4.观察运行结果(数值或图形); 5.根据观察到的结果写出实验报告,并浅谈学习心得体会 四、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论→心得体会) 1、1函数及图形 (1)在区间[-0.1,0.1]上作出 y = sin(x)/x 的图象,观察图象在 x = 0 附近的形状 (2)在同一坐标系内作出函数y = sin(x) 和它的展开式的前几构成的多项式函数y = x-x^3/3!,y = x-x^3/3!+x^5/5! . . . 的图象,观察这些多项式函数图象对 y = sin x 的图象逼近的情况. (3)分别取n =10,20,画出函数 y = sin(2k-1)x/(2k-1),k=1,2,...,n求和} 在区间[-3PI,3PI]上的图象.当N 趋向无穷时函数趋向什麽函数? (4)别取n = 5,10,15, 在同一坐标系内作出函数f(x) = sin x 与p(x) = x * (1-x^2/PI^2)*(1-x^2/(2^2*PI^2))*...*(1-x^2/n^2*PI^2))在区间[-2PI,2PI]上的图象,观察 p(x) 图象对 y = sin x的图象逼近的情况. 1、2数e 观察当n趋于无穷大时数列a n=(1+1/n)n和A n=(1+1/n)n+1的变化趋势: (1)n=10m,m=1,2,. . . ,7时的值,a n,A n观察变化趋势. (2)在同一坐标系内作出三个函数地图象y=(1+1/10x)10^x , y=(1+1/10x)10^x , y=e观察当 x 增大时

计算方法实验

算方法实验指导 姓名学号院系专业哈尔滨工业大学

计算方法实验指导 根据实际问题建立的数学模型,一般不能求出所谓的解析解,必须针对数学模型 的特点确定适当的计算方法,编制出计算机能够执行的计算程序,输入计算机,进行 调试,完成运算,如果计算结果存在问题或不知是否正确,还需要重新确定新的计算 方法,再编制出计算程序,输入计算机,重新调试,完成运算,直至获得正确的计算 结果,这就是数值计算的全部过程。 学生在学习“计算方法”和“高级语言”等课程时普遍存在的问题是:只会套用 教科书中的标准程序进行数值计算,很少有人能够独立地将学过的数值算法编制成计 算机程序,至于灵活应用已经掌握的算法求解综合性较大的课题,则更是困难的事情。 编写《计算方法实验指导》的目的是:突出数值计算程序结构化的思想。提高学 生的编程能力,加深对“计算方法”课程内容的理解和掌握,为”计算方法“课程的 教学服务,进一步奠定从事数值计算工作的基础。具体地 1. 根据“计算方法”课程内容的特点,给出五个典型算法的分析流程,学生可以 利用所掌握的 “高级语言”顺利地编制出计算机程序,上机实习,完成实验环节的教 学要求。 2. 所有的计算实习题目都经过任课教师逐一检验,准确无误。 3. 充分利用循环的思想、 迭代的思想, 给出算法结构描述和程序语言的对应关系, 有利于学生编 制相应的程序。 4. 结合实习题目,提出实验要求,要求学生按规范格式写出相应的实验报告,实 验报告成绩记入 期末总成绩。需要提醒学生:不能简单地套用现成的标准程序完成实 验题目,应当把重点放在对算法的理解、程序的优化设计、上机调试和计算结果分析 上,否则就失去实验课的目的啦。 5. 五个具体的实验题目是: 实验题目 实验题目 实验题目 实验题目 实验题目 要求必须完 成其中三个(如果全部完成更好) 。 1 拉格朗日 (Lagrange) 插值 2 龙贝格 (Romberg) 积分法 3 四阶龙格—库塔 (Runge — Kutta) 方法 4 牛顿 (Newton) 迭代法 5 高斯 (Gauss) 列主元消去法

计算方法实验指导书.

计算方法 实 验 指 导 书 彭彬 计算机技术实验中心 2012年3月

· 实验环境: VC++ 6.0 · 实验要求:在机房做实验只是对准备好的实验方案进行验证,因此上机前要检查实验准备情况,通过 检查后方可上机。没有认真准备的学生不能上机,本次实验没有分数。实验中要注意考察和体会数值计算中出现的一些问题和现象:误差的估计,算法的稳定性、收敛性、收敛速度以及迭代初值对收敛的影响等。 · 关于计算精度:如果没有特别说明,在计算的过程中,小数点后保留5位数字,最后四舍五入到小数 点后四位数字。迭代运算的结束条件统一为 51 102 -?。在VC++ 6.0中,可使用setprecision 在流的输出中控制浮点数的显示(缺省显示6位)。演示如下: # include # include # include //输出6位精度,输出左对齐 cout<

操作系统_课程实验指导书

《—操作系统—》 实验指导书 洪朝群编写 适用专业:计算机(嵌入式) 厦门理工学院计算机科学与信息工程学院 2015年9 月

实验指导书前言内容要求 前言 本课程的基本内容介绍,通过学习学生需要掌握的基本知识。 为了使学生更好地理解和深刻地把握这些知识,并在此基础上,训练和培养哪些方面的技能,设置的具体实验项目,其中哪几项实验为综合性、设计性实验。 各项实验主要了解、掌握的具体知识,训练及培养的技能。 本指导书的特点。 对不同专业选修情况说明。

实验一:Linux操作系统的安装过程与界面 实验学时:4 实验类型:验证 实验要求:必修 一、实验目的 通过本实验的学习,使学生掌握Linux操作系统的安装方法,并且了解Linux 界面的基本使用方法。 二、实验内容 实验内容:用vmware workstation安装Ubuntu12.10系统。 三、实验原理、方法和手段 无 四、实验组织运行要求 以学生自主训练为主的开放模式组织教学 五、实验条件 无 六、实验步骤 1、下载Ubuntu12.10桌面版安装镜像, https://www.doczj.com/doc/4215436428.html,/download/desktop 2、打开vmware,建立虚拟机镜像 3、安装过程参考(“VMWare8.0安装Ubuntu12.04教程.pdf”文件),注意使用虚拟机的时候把镜像文件放在最后一个盘。 4、(可选步骤)如果本机上的wmware版本在安装系统的过程中出现问题,可下载新版进行安装。https://www.doczj.com/doc/4215436428.html,/d/FWACAQQFRTZQ?p=09122 七、思考题 Linux与Windows有何不同?

《算法设计与分析》实验指导书 bfm(全)

《算法设计与分析》实验指导书 计算机学院信息安全系毕方明 本书是为配合《算法分析与设计实验教学大纲》而编写的上机指导,其目的是使学生消化理论知识,加深对讲授内容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 上机实验一般应包括以下几个步骤: (1)、准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机。(2)、上机输入和调试自己所编的程序。一人一组,独立上机调试,上机时出现的问题,最好独立解决。 (3)、上机结束后,整理出实验报告。实验报告应包括:题目、程序清单、运行结果、对运行情况所作的分析。 本书共分阶段4个实验,每个实验有基本题和提高题。基本题必须完成,提高题根据自己实际情况进行取舍。题目不限定如下题目,可根据自己兴趣爱好做一些与实验内容相关的其他题目,如动态规划法中的图象压缩,回溯法中的人机对弈等。 其具体要求和步骤如下: 实验一分治与递归(4学时) 一、实验目的与要求 1、熟悉C/C++语言的集成开发环境; 2、通过本实验加深对递归过程的理解 二、实验内容: 掌握递归算法的概念和基本思想,分析并掌握“整数划分”问题的递归算法。 三、实验题 任意输入一个整数,输出结果能够用递归方法实现整数的划分。 四、实验步骤 1.理解算法思想和问题要求; 2.编程实现题目要求; 3.上机输入和调试自己所编的程序; 4.验证分析实验结果; 5.整理出实验报告。 一、实验目的与要求 1、掌握棋盘覆盖问题的算法; 2、初步掌握分治算法 二、实验题: 盘覆盖问题:在一个2k×2k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形

《算法分析与设计》_实验指导书

编著说明 本书是为配合《算法分析与设计实验教学大纲》而编写的上机指导,其目的是使学生消化理论知识,加深对讲授内容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 上机实验一般应包括以下几个步骤: (1)、准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机。(2)、上机输入和调试自己所编的程序。一人一组,独立上机调试,上机时出现的问题,最好独立解决。 (3)、上机结束后,整理出实验报告。实验报告应包括:题目、程序清单、运行结果、对运行情况所作的分析。 本书共分8~10个实验,其具体要求和步骤如下:

目录 实验一、C/C++环境及递归算法...................................... 错误!未定义书签。实验二、递归与分治策略.. (5) 实验三、动态规划算法(一) (9) 实验四、动态规划算法(二) (12) 实验五、贪心算法(一) (15) 实验六、贪心算法(二) (17) 实验七、回溯法(一) (20) 实验八、回溯算法(二) (22) 实验九、分支限界法 (24) 实验十:随机化算法(选学) (29)

实验二、递归与分治策略 一、实验目的与要求 1、进一步熟悉C/C++语言的集成开发环境; 2、通过本实验加深对递归与分治策略的理解和运用; 二、实验内容: 1、分析并掌握“棋盘覆盖问题”的递归与分治算法示例; 2、分析并掌握“二分搜索问题”的递归与分治算法示例; 3、练习使用递归与分治策略求解众数问题或集合划分问题; 三、实验题 众数问题:给定含有N个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数,多重集合S中重数最大的元素称为多重集合S的众数,众数的重数称为多重集合S的重数,试求一个给定多重结合的重数和众数; 例如:S={a,b,b,b,f,f,4,5}的重数是3,众数是b 集合划分问题:N个元素的集合{1,2,…,N}可以划分为若干个非空集合的子集,例如,当N=4时,集合{1,2,3,4}可划分为15个不同的非空子集如下:{{1},{2},{3},{4}};{{1,2},{3},{4}};{{1,3},{2},{4}}; {{1,4},{2},{3}};{{2,3 },{1},{4}};{{2,4},{1},{3 }}; {{3,4 },{1},{2}};{{1,2 },{3,4}};{{1,3 },{2,4}}; {{1,4 },{3,2 }};{{2,3,4},{1}};{{1,3,4},{2}}; {{1,2,4},{3}};{{1,2,3},{4}};{{1,2,3,4}}; 给定正整数N,计算出N个元素的集合{1,2,…,N}可以划分多少个非空集合的子集; 四、实验步骤 1.理解递归和分治策略的基本思想和算法示例; 2.上机输入和调试算法示例程序; 3.理解实验题的问题要求;

《计算机应用基础》课程实训指导书(第三版)

广东轻工职业技术学院 《计算机应用基础》课程实训指导书 (第三版) 计算机基础教研室 2009年3月

《计算机应用基础》课程实训指导书 一、目的 通过为一周的实训,巩固本学期所学习的知识,强化的各种基于工作的过程的各种操作技能,进一步培养学生熟练处理Word文档的综合应用、Excel高级数据管理、PowerPoint演示文稿高级制作技巧及Internet网络综合应用能力,并为学生参加计算机水平考试及办公自动化考试作好准备。 二、实训内容提要 1.Word中文处理的综合应用 2.Excel电子表格的综合应用 3.PowerPoint演示文稿的综合应用 4.申请邮箱、收发邮件、Outlook Express的使用 5.信息检索与信息的综合应用 6.利用Serv-U 软件创建与配置FTP站点,实现文件的上传与下载。 7.Web 站点的创建与配置,网页的浏览(选) 三、考核 1.考核方式 操作部分由各部分指导老师现场打分,最后由负责指导老师汇总。 2.成绩评定标准 考核内容包括:成绩评定为100分制。Word 高级应用25%,电子表格综合应用25%,PPT综合应用 10%,Internet操作10%,实操报告(心得体会,遇到的问题,解决办法,收获等)20%(包括考勤),模拟题试题10%. 四、提交实训成果 1.实训成果(作业、作品等) 2.实训报告:按照实训报告模板的格式去写,包括实训中遇到的问题,解决办法,包含一些截图,一周实训的体会、收获及今后努力方向等,文字要在2500字以上。篇幅在4页左右(含截图)。

说明: 1.由于各个班级教学学时及专业的差异性相差很大,而实训内容丰富且有一定难度,而实训的时间较短且集中,因此实训指导老师根据班级实际情况与水平,在指训指导书中挑选实用性强且与计算机水平考试有一定关联的题目进行实训。 2.选择实训的原则: ●在1~10中选择8题 ●11~17中选择5至6题 ●18~21必选,22根据机房情况选择 ●模拟题选择一套 3.带实训的老师一定要认真负责,结束后及时登记实训成绩,收齐学生的实训成果,并写出该班的实训总结,记录成光盘交到计算机基础教研室。 第1部分实训内容 实训1 制作用户调查表 [操作要求] 按照下面的步骤编排出如图1样文所示,并以“实训一.doc”为文件名保存。 1.输入文字 ●在文档中,输入表格的标题及最后一行的文字。 2.插入表格 ●插入“样文”的表格及输入其中的字符; ●表格的前三行高固定值1厘米,各列宽3.5厘米,表格中的字符设为宋体、四号, 水平左对齐,垂直居中; 3.设置文本 ●表格标题设为黑体、二号字,居中对齐; ●表格末行设为幼圆、小四号字,其中,“回函请寄:”几字设为加粗; ●表格外边框的线宽为1.5磅。 4.编排格式 ●在文档头部插入一行由“剪刀”和“-”号组成的字符串; ●按“样文1”所示位置,插入艺术字库中第1行第2列式样的艺术字; ●艺术字设为隶书、36磅、红色,无环绕。

计算方法实验报告 插值

实验名称:插值计算 1引言 在生产和科研中出现的函数是多种多样的。常常会遇到这样的情况:在某个实际问题中,虽然可以断定所考虑的函数f(x)在区间[a,b]上存在且连续,但却难以找到它的解析表达式,只能通过实验和观测得到在有限个点上的函数值。用这张函数表来直接求出其他点的函数值是非常困难的,在有些情况下,虽然可以写出f(x)的解析表达式,但由于结构十分复杂,使用起来很不方便。面对这些情况,构造函数P(x)作为f(x)的近似,插值法是解决此类问题比较古老却目前常用的方法,不仅直接广泛地应用与生产实际和科学研究中,而且是进一步学习数值计算方法的基础。 设函数y=f(x)在区间[a,b]上连续,且在n+1个不同的点a≤x0,x1……,xn≤b上分别取值y0,y1……,yn. 插值的目的就是要在一个性质优良、便于计算的函数φ中,求一简单函数P(x),使P(xi)=yi(i=0,1…,n)而在其他点x≠xi上,作为f(x)的近似。 通常,称区间[a,b]为插值区间,称点x0,x1,…,xn为插值节点,上式为插值条件,称函数类φ为插值函数类,称P(x)为函数f(x)在节点x0,x1,…,xn处的插值函数,求插值函数P(x)的方法称为插值法。 2实验目的和要求 用matlab定义分段线性插值函数、分段二次插值函数、拉格朗日插值函数,输入所给函 数表,并利用计算机选择在插值计算中所需的节点,计算f(0.15),f(0.31),f(0.47)的近似值。

3算法描述 1.分段线性插值流程图

2.分段二次插值流程图

3.拉格朗日插值流程图

4程序代码及注释 1.分段线性插值

计算方法实验指导书.

计 算 方 法 实 验 指 导 书 彭彬 计算机技术实验中心 2012年3月 · 实验环境: VC++ 6.0 · 实验要求:在机房做实验只是对准备好的实验方案进行验证,因此上机前要检查实验准备情况,通过检查后 方可上机。没有认真准备的学生不能上机,本次实验没有分数。实验中要注意考察和体会数值计算中出现的一些问题和现象:误差的估计,算法的稳定性、收敛性、收敛速度以及迭代初值对收敛的影响等。 · 关于计算精度:如果没有特别说明,在计算的过程中,小数点后保留5位数字,最后四舍五入到小数点后四 位数字。迭代运算的结束条件统一为 51 102 -?。在VC++ 6.0中,可使用setprecision 在流的输出中控制浮点数的显示(缺省显示6位)。演示如下: # include # include # include //输出6位精度,输出左对齐 cout<

网络安全课程实验指导书

网络安全课程实验安排及指导书 2009-10-21

实验安排1、推荐必做实验 网络扫描 计算机病毒及恶意代码 防火墙实验 入侵检测系统 2、推荐选作实验 VPN配置 证书的申请和使用 windows安全配置实验

实验一:网络扫描实验 【实验目的】 了解扫描的基本原理,掌握基本方法,最终巩固主机安全 【实验内容】 1、学习使用Nmap的使用方法 2、学习使用漏洞扫描工具 【实验环境】 1、硬件PC机一台。 2、系统配置:操作系统windows XP以上。 【实验步骤】 1、端口扫描 1)解压并安装ipscan15.zip,扫描本局域网内的主机 2)解压nmap-4.00-win32.zip,安装WinPcap 运行cmd.exe,熟悉nmap命令(详见“Nmap详解.mht”)。 3)试图做以下扫描: 扫描局域网内存活主机, 扫描某一台主机或某一个网段的开放端口 扫描目标主机的操作系统 试图使用Nmap的其他扫描方式,伪源地址、隐蔽扫描等 2、漏洞扫描 解压X-Scan-v3.3-cn.rar,运行程序xscan_gui.exe,将所有模块选择扫描,扫描本机,或局域网内某一台主机的漏洞 【实验报告】 1、说明程序设计原理。 2、提交运行测试结果。 【实验背景知识】 1、扫描及漏洞扫描原理见第四章黑客攻击技术.ppt 2、NMAP使用方法 扫描器是帮助你了解自己系统的绝佳助手。象Windows 2K/XP这样复杂的操作系统支持应用软件打开数百个端口与其他客户程序或服务器通信,端口扫描是检测服务器上运行了哪些服务和应用、向Internet或其他网络开放了哪些联系通道的一种办法,不仅速度快,而且效果也很不错。 Nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,X mas Tree, SYN sweep, 和Null扫描。你可以从SCAN TYPES一节中察看相关细节。nmap 还提供一些实用功能如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。 一、安装Nmap Nmap要用到一个称为“Windows包捕获库”的驱动程序WinPcap——如果你经常从网上下载流媒体电影,可能已经熟悉这个驱动程序——某些流媒体电影的地址是加密的,侦测这些电影的真实地址就要用到WinPcap。WinPcap的作用是帮助调用程序(即这

相关主题
文本预览
相关文档 最新文档