华中科技大学计算方法报告
计算方法实验报告
![计算方法实验报告](https://img.taocdn.com/s3/m/e4ec51be710abb68a98271fe910ef12d2bf9a960.png)
计算方法实验报告计算方法实验报告概述:计算方法是一门研究如何用计算机解决数学问题的学科。
在本次实验中,我们将学习和应用几种常见的计算方法,包括数值逼近、插值、数值积分和常微分方程求解。
通过实验,我们将深入了解这些方法的原理、应用场景以及其在计算机科学和工程领域的重要性。
数值逼近:数值逼近是一种通过使用近似值来计算复杂函数的方法。
在实验中,我们通过使用泰勒级数展开和牛顿迭代法等数值逼近技术,来计算函数的近似值。
这些方法在科学计算和工程领域中广泛应用,例如在信号处理、图像处理和优化问题中。
插值:插值是一种通过已知数据点来估算未知数据点的方法。
在实验中,我们将学习和应用拉格朗日插值和牛顿插值等方法,以及使用这些方法来构造函数的近似曲线。
插值技术在数据分析、图像处理和计算机图形学等领域中具有重要的应用价值。
数值积分:数值积分是一种通过将函数曲线划分为小矩形或梯形来估算函数的积分值的方法。
在实验中,我们将学习和应用矩形法和梯形法等数值积分技术,以及使用这些方法来计算函数的近似积分值。
数值积分在物理学、金融学和统计学等领域中被广泛使用。
常微分方程求解:常微分方程求解是一种通过数值方法来求解微分方程的方法。
在实验中,我们将学习和应用欧拉法和龙格-库塔法等常微分方程求解技术,以及使用这些方法来求解一些常见的微分方程。
常微分方程求解在物理学、生物学和工程学等领域中具有广泛的应用。
实验结果:通过实验,我们成功地应用了数值逼近、插值、数值积分和常微分方程求解等计算方法。
我们得到了准确的结果,并且在不同的应用场景中验证了这些方法的有效性和可靠性。
这些实验结果将对我们进一步理解和应用计算方法提供重要的指导和支持。
结论:计算方法是计算机科学和工程领域中的重要学科,它提供了解决复杂数学问题的有效工具和方法。
通过本次实验,我们深入了解了数值逼近、插值、数值积分和常微分方程求解等计算方法的原理和应用。
这些方法在科学研究、工程设计和数据分析等领域中具有广泛的应用价值。
数值分析(计算方法)课程设计实验报告(附程序)
![数值分析(计算方法)课程设计实验报告(附程序)](https://img.taocdn.com/s3/m/043a6115f18583d049645914.png)
n=4 时,max[L(X)-h(X)]=0.4020;
n=8 时,max[L(X)-h(X)]=0.1708;
n=10 时,max[L(X)-h(X)]=0.1092。
图象分析: 从图象可以看出随着插值节点数的增加出现异常的摆动,中间能较好的接近 原函数,但两边却出现很大的误差。
(3).对定义在(-5,5)上的函数
程序代码 2:
x=[-1:0.2:1]; y=1./(1+25.*x.^2); x0=[-1:0.01:1]; y0=lagrange(x,y,x0); y1=1./(1+25.*x0.^2);
plot(x0,y0,'--r'); hold on; plot(x0,y1,'-b'); x2=abs(y0-y1); max(x2) ; 程序代码3: n=3; for i=1:n x(i)=cos(((2.*i-1).*pi)./(2.*(n+1))); y(i)=1./(1+25.*x(i).*x(i)); end x0=-1:0.01:1; y0=lagrange(x,y,x0); y1=1./(1+25.*x0.^2); plot(x0,y0,'--r') hold on plot(x0,y1,'-b')
以 x1,x2,„,xn+1 为插值节点构造上述各函数的 Lagrange 插值多项式, 比较其 结果。
设计过程: 已知函数 f(x)在 n+1 个点 x0,x1,…,xn 处的函数值为 y0,y1,…,yn 。 求一 n 次多 项式函数 Pn(x),使其满足: Pn(xi)=yi,i=0,1,…,n. 解决此问题的拉格朗日插值多项式公式如下
华中科技大学-计算机学院-数据结构实验报告
![华中科技大学-计算机学院-数据结构实验报告](https://img.taocdn.com/s3/m/708030f5e87101f69f3195bd.png)
华中科技大学-计算机学院-数据结构实验报告LT目录1基于顺序存储结构实现线性表的基本运算 (1)1.1 实验目的 (1)1.2 线性表演示系统设计 (1)1.2.1 系统总体设计 (1)1.2.2 有关常量和类型定义 (1)1.2.3 算法设计 (1)1.3 线性表演示系统实现与测试 (3)1.3.1 系统实现 (3)1.3.2 系统测试 (11)1.4 实验小结 (12)2 基于链式实现线性表的基本运算 (13)2.1 问题描述 (13)2.2 线性表演示系统设计 (13)2.2.1 系统总体设计 (13)2.2.2 有关常量和类型定义 (13)2.2.3 算法设计 (13)2.3 线性表演示系统实现与测试 (15)2.3.1 系统实现 (15)2.3.2 系统测试 (24)2.4 实验小结 (25)3基于顺序存储结构实现栈的基本运算 (27)3.1实验目的 (27)3.2栈演示系统设计 (27)3.2.1 系统总体设计 (27)3.2.2 算法实现 (27)3.3 栈演示系统实现与测试 (28)3.3.1 程序实现 (28)3.3.2 系统测试 (34)3.4 实验小结 (35)4基于循环队列存储结构实现队列的基本运算 (36)4.1 问题描述 (36)4.2.1 系统总体设计 (36)4.2.2 有关常量和类型定义 (36)4.2.3 算法设计 (36)4.3 队列演示系统实现与测试 (37)4.3.1 系统实现 (37)4.3.2 系统测试 (44)4.4 实验小结 (45)5基于二叉链表实现二叉树的基本运算 (46)5.1 实验目的 (46)5.2.1 系统总体设计 (46)5.2.2 有关常量和类型定义 (46)5.2.3 算法设计 (46)5.3 二叉树演示系统实现与测试 (48)5.3.1 系统实现 (48)5.3.2 系统测试 (79)5.4 实验小结 (81)6基于邻接表实现图的基本和常见运算 (82)6.1 实验目的 (82)6.2.1 系统总体设计 (82)6.2.2 有关常量和类型定义 (82)6.2.3 算法设计 (82)6.3 图演示系统实现与测试 (83)6.3.1 系统实现 (83)6.3.2 系统测试 (101)6.4 实验小结 (103)参考文献 (104)1基于顺序存储结构实现线性表的基本运算1.1 实验目的通过实验达到:(1)加深对线性表的概念、基本运算的理解;(2)熟练掌握线性表的逻辑结构与物理结构的关系;(3)物理结构采用顺序表,熟练掌握线性表的基本运算的实现。
华科计算机并行实验报告
![华科计算机并行实验报告](https://img.taocdn.com/s3/m/e5559d7648d7c1c708a14544.png)
课程设计报告题目:并行实验报告课程名称:并行编程原理与实践专业班级:学号:姓名:指导教师:报告日期:计算机科学与技术学院目录1,实验一 (1)1 实验目的与要求 (1)1.1实验目的 (1)1.2实验要求 (1)2 实验内容 (1)2.1.1熟悉pthread编程 (1)2.1.2简单的thread编程 (2)2.2.1熟悉openMP编程 (3)2.3.1熟悉MPI编程 (4)2,实验2~5 (7)1 实验目的与要求 (7)2 算法描述 (7)3.实验方案 (8)4实验结果与分析 (8)3 心得体会 (10)附录: (10)3 蒙特.卡罗算法求π的并行优化 (19)1.蒙特.卡罗算法基本思想 (19)2.工作过程 (20)3.算法描述 (20)4 设计与实现 (21)5 结果比较与分析 (23)6 思考与总结 (24)1,实验一1 实验目的与要求1.1实验目的1)熟悉并行开发环境,能进行简单程序的并行开发,在Linux下熟练操作。
2)熟悉一些并行工具,如pthread,OpenMP,MPI等进行并行编程3)培养并行编程的意识1.2实验要求1)利用pthread、OpenMP、MPI等工具,在Linux下进行简单的并行编程,并且掌握其编译、运行的方法。
2)理解并行计算的基础,理解pthread、OpenMP、MPI等并行方法。
2 实验内容2.1.1熟悉pthread编程Linux系统下的多线程遵循POSIX线程接口,称为 pthread。
编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。
下面是pthread编程的几个常用函数:1,int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr, void *(*start_rtn)(void),void *restrict arg);返回值:若是成功建立线程返回0,否则返回错误的编号形式参数:pthread_t *restrict tidp 要创建的线程的线程id指针const pthread_attr_t *restrict attr 创建线程时的线程属性void* (start_rtn)(void) 返回值是void类型的指针函数void *restrict arg start_rtn的行参2 , int pthread_join( pthread_t thread, void **retval );thread表示线程ID,与线程中的pid概念类似;retval用于存储等待线程的返回值连接函数pthread_join()是一种在线程间完成同步的方法。
计算方法上机实习报告5 - 华中科技大学
![计算方法上机实习报告5 - 华中科技大学](https://img.taocdn.com/s3/m/d1a4d97bfc4ffe473268ab31.png)
计算方法上机实习报告 5一. 提出问题(1) 给出概率积分 的数据表:试用二次插值计算(0.472)f 。
(2)已知sin()y x =的函数表试构造出差商表,利用二次Newton 插值公式计算sin1.609(保留五位有效数字)。
(3) 求不高于4次的多项式()H x ,使它满足(1)2,'(1)4,H H =-=(2)'(2)0,(3)2,H H H ===并写出余项表达式。
(4) 用最小二乘法求一个形如2y a bx =+的经验公式,使与下列数据相拟合二. 分析问题(1)题目给出概率积分的四个插值节点,要求用二次插值计算,而我们知道二次插值只需要三个插值节点即可,在该题中我们尝试取前三个点作为插值节点。
该题的重点在求插值基函数11(),(),(),k k k l x l x l x -+而它们由公式()nj n j i jj ix x l x x x =≠-=-∏(1.1)给出。
而0()()nn i i i L x y l x ==∑给出插值公式。
(2)Newton 基本插值公式00100101()()(,)()(,,,)()()...().n n n N x f x f x x x x f x x x x x x x x x =+-++--- (1.2)它的各项系数就是函数的各阶差商,每增加一个插值节点,只需要在原来的基础上多计算一项,这一性质被称作承袭性。
(3)该题需要确定一个4次插值多项式()H x ,就是要获得其各项系数的解。
4次多项式()H x 有5个系数,而题目正好给予了5个条件,这样我们会获得关于系数的非奇异五元一次方程组,在运用第三章的选列主元消元法求出各系数。
(4)本题要求用最小二乘法求经验公式。
实际上也就是确定拟合曲线的各项系数,关于系数(0,1,...,)i a i m =的线性方程组如下: 三.解决问题(1)C 语言代码如下:#include"stdio.h" #include"iostream.h" #include"math.h" #define N 3void Get_l(int k,double x,double xk[N],double L[N]); void main() { int i;double l[N],L[N],x,Lx=0;double xk[N]={0.46,0.47,0.48};double f[N]={0.4846555,0.4937542,0.5027498}; printf("输入需插值节点x:\n"); scanf("%lf",&x); for(i=0;i<N;i++) { Get_l(i,x,xk,l); L[i]=l[i]*f[i]; Lx+=L[i]; }cout.precision(7);cout<<"f(x)="<<Lx<<endl; }/*获得基函数lk(x)*/void Get_l(int i,double x,double xk[N],double l[N]) { int k;double y1=1,y2=1; for(k=0;k<N;k++)if(k!=i){ y1*=(x-xk[k]);y2*=(xk[i]-xk[k]);}l[i]=y1/y2;}结果如下:(2)C语言代码如下:#include"stdio.h"#include"math.h"#define N 3#define M 4void Put_out(int i,double a[N][M]);double Get_value(double x,double a[N][M]);void main(){ int i,j;double a[N][M],sinx,x1;double x[N]={1.5,1.6,1.7};double f[N]={0.99749,0.99957,0.99166};for(i=0;i<N;i++){ a[i][0]=x[i];a[i][1]=f[i];}for(i=0;i<N;i++)Put_out(i,a);printf("k\tf(xk)\t\tf(x0,xk)\tf(x0,x1,xk)\tf(x0,x1,x2,xk)\n");for(i=0;i<N;i++){ printf("%d\t",i);for(j=0;j<i+2;j++){ printf("%lf\t",a[i][j]);}printf("\n");}printf("Putin x:\n");scanf("%lf",&x1);sinx=Get_value(x1,a);printf("sin(%lf)=%lf\n",x1,sinx);}/*输出差商表*/void Put_out(int i,double a[N][M]){ int j;for(j=2;j<M;j++){ if(j<i)a[i][j]=(a[i][j-1]-a[0][j-1])/(a[i][0]-a[j-1][0]);if(j<i+2)a[i][j]=(a[i][j-1]-a[j-2][j-1])/(a[i][0]-a[j-2][0]);elsea[i][j]=0;}}以上代码仅是主函数和输出差商部分,求值用的是选列主元消元法,前面有所涉及,在这里不再赘述。
华科计算机学院算法实验报告-二分检索树
![华科计算机学院算法实验报告-二分检索树](https://img.taocdn.com/s3/m/8220da7d01f69e3143329436.png)
课程实验报告课程实验名称:_算法设计与分析实验设计专业班级:学号:__姓名:____指导教师:王多强_报告日期: 2013年6月15日计算机科学与技术学院目录一、实验题目 (2)二、理论方法 (2)三、算法描述 (3)四、代码实现 (4)1.模块一:基本算法 (4)2.模块二:输出结果 (5)1)输出C(0,n),W(0,n),R(0,n) (5)2)从上至下,输出每个节点的左右节点 (5)五、实验结果截图 (6)六、计算时间分析 (6)七、实验体会 (7)八、源代码 (7)12一、 实验题目在二分检索树中,为了把动态规划应用于得到一颗最优二分检索树的问题,需要把构造这样的一个数看成是一系列决策的结果,而且要能列出求取最优决策序列的递推式。
二、 理论方法解决上述问题的一种可能方法是对{a 1,a 2,…,a n } (a 1<a 2 < … < a n )的二分检索树,若a k 是该树的根,则内结点a 1,a 2,…,a k-1和外部结点E 0,E 1,…,E k-1将位于根a k 的左子树L 中,而其余的结点 a k +1, a k+2, …,a n 及E k ,E k+1,…,E n 将位于右子树R 中。
含义:左、右子树的预期成本。
这里,将左、右子树的根作为第一级来统计左、右子树中所有结点的级数,该级数等于相对原树根的级数-1。
若:level T (X)为结点X 在树T 中的级数,level(X)为X 在T 的 左/右子树中的级数,则:level T (X) = level(X)+1∑∑∑∑∑∑∑∑∑∑∑∑∑∑≤≤≤≤+≤≤≤≤+≤≤≤≤≤≤≤≤≤≤∈≤≤+∈≤≤∈≤≤∈≤≤≤≤++-++++-++=-++++-++++=-+=ni k ni 1k ni k ni 1k 1-k i 01-k i 11-k i 01-k i 1ni k 右子树E ni 1k 右子树a 1-k i 0左子树E 1-k i 1左子树a ni 0ni 1Q(i)P(i) )1)((*Q(i))(*P(i) Q(i)P(i) )1)((*Q(i))(*P(i)P(k) )1)1)((*Q(i))1)((*P(i) )1)1)((*Q(i))1)((*P(i))( )1)((*Q(i))(*P(i))(COST i i i i i i i i i i i i i T i T E level a level E level a level E level a level E level a level k P E level a level T 证明最优性原理对于上述问题是成立的:∑∑<≤<≤-+=k i iki iE level i Q a level i P L COST 01)1((*)()(*)()(∑∑≤≤≤<-+=ni k ini k iE level i Q a level i P R COST )1((*)()(*)()(若以ak 为根的二分检索树T是关于集合{a1,a2,…,an}的一棵最优二分检索树,L、R分别是ak 的左子树和右子树,L包含结点a1,a2,…,ak-1和E,E1,…,Ek-1、R包含结点及ak+1, ak+2, …,an和Ek,Ek+1,…,En,则L和R必是相应集合的最优二分检索树。
华科算法实验报告
![华科算法实验报告](https://img.taocdn.com/s3/m/d824a12fbb4cf7ec4bfed007.png)
华科算法实验报告LT一.实验一1.实验题目单源最短路径问题:已知一个n结点有向图G=(V,E)和边的权函数c(e),求由G中某指定结点v0到其它各结点的最短路径。
假定边的权值为正。
2.设计思路贪心算法流程图如图1:图1 生成最短路径算法流程设计总方法:使用贪心算法求解。
贪心方法:1) 度量标准生成的所有路径长度之和作为度量标准。
为了使这一量度达到最小,其单独的每一条路径都必须具有最小长度。
2) 算法按照路径长度的非降次序生成这些路径。
首先,生成一条到最近结点的最短路径,然后,生成一条到第二近结点的最短路径,等等。
即只用求出从路径v0开始到G中其他所有结点的最短路径长度。
假定G中n个结点被标记上1到n,集合S作为一个数组存放,如果结点i不在S中,则S[i]=0,如果在S中,则S[i]=1,若COST(i,j)是(i,j)的权,则在边(i,j)不在成本邻接矩阵时,就被置某个大数,这里用N表示,当i=j时,COST(i,j)被置以0。
3.程序源代码#include <stdio.h>#include <stdlib.h>#define N 1000void shortestPaths(int v,int *COST,int *DIST,int n);//最短路径生成函数void output2(int *arr,int row,int col);//输出成本的邻接矩阵void outArray1(int *arr,int n);//输出更新后其它结点到起始结点的路径长度int main(){int COST[7][7]={{0,20,50,30, N, N, N},{N, 0,25, N, N,70, N},{N, N, 0,40,25,50, N},{N, N, N, 0,55, N, N},{N, N, N, N, 0,10,70},{N, N, N, N, N, 0,50},{N, N, N, N, N, N, 0}};int DIST[7];int v=0;/* printf("成本邻接矩阵:\n");output2(&COST[0][0],7,7);*///生成0号结点到1至6号结点的最短路径shortestPaths(v,&COST[0][0],DIST,7);return 0;}void shortestPaths(int v,int *COST,int *DIST,int n){//G是一个n结点有向图,它由其成本邻接矩阵COST[n][n]表示,DIST[j]被置以结点v到//结点j的最短路径长度,这里1<=j<=n;DIST[v]被置成0int S[n];int pre[n];//p[w]记录起始结点到结点w的最短路径中的w前一结点int u,num,i,w;int tv,td=0;//初始化:结点v以外的结点未被选中,并更新路径长度为v到其它结点的初始成本for(i=0;i<n;i++){S[i]=0;*(DIST+i)=*(COST+v*n+i);pre[i]=0;}S[v]=1;DIST[v]=0;//更新路径长度for(num=1;num<n;num++){//选择距离结点v 最近的结点wfor(w=1;w<n;w++){if(S[w]==0){td=DIST[w];tv=w;break;}}for(w++;w<n;w++){if(S[w]==0&&td>DIST[w]){td=DIST[w];tv=w;}}u=tv;S[u]=1;DIST[u]=td;//更新路径for(w=1;w<n;w++){if(S[w]==0){//DIST[w]=min(DIST[w],DIST[u]+*(COST+u*n +w));if(DIST[w]>(DIST[u]+*(COST+u*n+w))){DIST[w]=(DIST[u]+*(COST+u*n+w));pre[w]=u;//更新结点w 最短路径并记录w结点的上一结点}}}//输出第num次更新后的路径长度printf("\n第%d次路径:",num);output1(DIST,n);printf("\n\n");}//输出路径for(i=1;i<n;i++){printf("从0到%d,最短的路径是:\n",i);w=i;printf("%d<-",w);while(pre[w]!=v){w=pre[w];printf("%d<-",w);printf("%d\n",v);}}void output2(int *a,int row,int col) {int i,j;for(i=0;i<row;i++){for(j=0;j<col;j++){if(*((a+i*row)+j)==N)printf(" N\t");elseprintf("%3d\t",*((a+i*row)+j));}puts("\n");}}void output1(int *arr,int n){for(i=0;i<n;i++){if(*(arr+i)==N)printf(" N\t");elseprintf("%3d\t",*(arr+i));}}4.运行演示我用了书上的一个例子,它的成本邻接矩阵已直接存入程序中,它的带权有向图如下:图2带权有向图运行结果如下所示: VV V V V V V 272534552157图3运行结果图二.实验二1.实验题目k路归并:每次同时归并k个文件且使移动次数最少。
计算方法课程设计报告
![计算方法课程设计报告](https://img.taocdn.com/s3/m/6494ec202af90242a895e5ad.png)
《计算方法》课程设计学部:专业:班级:学号:姓名:指导教师:韩光朋2014年* 月文档资料的统一要求:1.文档中的正文字体用五号宋体。
2.C++源文件要求以学号或姓名命名。
3.每个问题均要有算法分析,源程序代码,运行结果示图。
4.在课程设计最后要有心得体会,描述在设计过程中遇到的困难和解决的方法。
5.没有按要求做的同学则视为本课程设计不合格。
6.每次上机所做的内容用移动磁盘带走。
7.此页内容删除后用来生成目录。
实验一 非线性方程求解1.1设计任务的根。
用牛顿迭代法求方程013=--x x1.2算法分析(用文字或流程图进行描述)1.3源程序代码1.4运行结果实验二 高斯消去法与主元消去法2.1设计任务⎪⎩⎪⎨⎧=++=++=++32303452536432321321321x x x x x x x x x 用主元消去法解方程组2.2算法分析(用文字或流程图进行描述)2.3源程序代码2.4运行结果实验三 解线性代数方程组的迭代法3.1设计任务⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛-877901081119321x x x Seidel Gauss Jacobi ----迭代法解线性方程组迭代法和用3.2算法分析(用文字或流程图进行描述)3.3源程序代码 3.4运行结果实验四 插值与拟合4.1设计任务的近似值。
插值公式求用的数值表如下:双曲正弦函数已知)596.0(02652.188811.069675.057815.041075.0)(90.080.065.055.040.0)()(f Newton x f x x sh x f k k4.2算法分析4.3源程序代码4.4运行结果实验五 数值积分5.1设计任务已知某河宽20M ,测得水深f (x )如下表(单位:M ):分别用复化梯形公式和复化辛卜生公式计算河水的截面积。
5.2算法分析5.3源程序代码5.4运行结果实验六 常微分方程数值解6.1设计任务6.000141.002'≤<⎩⎨⎧=+=-=x y y y K R h 法求解初值问题阶,用标准取步长6.2算法分析(用文字或流程图进行描述)6.3源程序代码 6.4运行结果总结 心得体会。
华中科技大学 计算方法课件第5章 线性方程-误差分析
![华中科技大学 计算方法课件第5章 线性方程-误差分析](https://img.taocdn.com/s3/m/ac7dad9251e79b8968022613.png)
i =1, 2
来度量 x 的“大小”,而且这种度量“大
小”的方法计算起来比欧氏范数方便。 一般要求度量向量“大小”的函数 N ( x) 满足正定性、 齐次性和三角不等式。
3
定义2 (向量的范数) 如果向量 x ∈ R n(或 C n )的某 个实值函数 N ( x) = x ,满足条件:
1
将非负实数
x
2
n 2 = ( x, x) = ∑ xi i =1
1 2
1 2
1 2
或
x
2
= ( x, x )
n = ∑ xi i =1
2
1 2
称为向量 x 的欧氏范数 。
2
向量的欧式范数可以看成是对 R n 中向量“大小”的一 种度量。 也可以用其他办法来度量向量的“大小”。 例如,对于 x = ( x1 , x2 )T ∈ R 2 , 可以用一个 x 的函数
16
下面讨论数据 A (或 b )的微小误差对解的影响。 即考虑估计 x − y , 其中 y 是 ( A + δA) y = b 的解。 例3 设有方程组
1 1 x1 2 = 1.0001 x2 2 1
(6.1)
∞
A
∞
25
(2) A 的谱条件数
cond ( A) 2 = A
−1 2
A
2
=
λmax ( AT A) . T λmin ( A A)
当 A 为对称矩阵时
λ1 cond ( A) 2 = , λn
其中 λ1 , λn 为 A 的绝对值最大和绝对值最小的特征值。
华中科技大学计算机原理实验报告
![华中科技大学计算机原理实验报告](https://img.taocdn.com/s3/m/e52875721ed9ad51f01df236.png)
-电气学科大类《计算机原理与应用实验》课程实验报告电气与电子工程学院2012级姓名:学号:专业班号:日期:2014年1月7日实验成绩:评阅人:实验评分表基本实验实验名称实验分值评分实验一EMU8086软件安装与使用实验二汇编语言实例讲解与程序编写实验三基于Proteus软件8086最小系统硬件设计实验四基于8086最小系统的汇编程序设计实验五8255并行接口实验(演示实验)设计性实验实验名称实验分值评分实验六工频测频接口电路设计与实现教师评价意见总分(100)目录实验评分表 (I)实验一:EMU8086软件安装与使用 (1)一、实验目的 (1)二、实验设备 (1)三、实验任务 (1)四、实验原理 (1)五、实验内容 (1)六、实验过程及结果 (2)七、实验感想 (6)八、参考文献 (6)实验二:汇编语言实例讲解与程序编写 (7)一、实验目的 (7)二、实验设备 (7)三、实验任务 (7)四、实验原理 (7)五、实验内容 (8)六、实验过程及结果 (9)七、实验感想 (20)八、参考文献 (20)实验三:基于PROTEUS软件的8086最小系统硬件设计 (21)一、实验目的 (21)二、实验设备 (21)三、实验任务 (21)四、实验原理 (21)五、实验内容 (23)六、实验过程及结果 (23)七、实验感想 (27)八、参考文献 (28)实验四:基于8086最小系统的汇编程序设计 (29)一、实验目的 (29)二、实验设备 (29)三、实验任务 (29)四、实验原理 (29)五、实验内容 (30)六、实验过程及结果 (31)七、实验感想 (34)八、参考文献 (35)实验五:8255并行接口实验(演示实验) (36)一、实验目的 (36)二、实验设备 (36)三、实验任务 (36)四、实验原理 (36)五、实验内容 (37)六、实验过程及结果 (38)七、实验感想 (39)八、参考文献 (39)实验六:工频测频接口电路设计与实现 (41)一、实验目的 (41)二、实验设备 (41)三、实验任务 (41)四、实验原理 (41)五、实验内容 (44)六、实验过程及结果 (45)七、实验感想 (46)八、参考文献 (46)实验一:EMU8086软件安装与使用一、实验目的通过本实验学习EMU8086软件的安装与使用。
华科计算机学院算法实验报告-二分检索树
![华科计算机学院算法实验报告-二分检索树](https://img.taocdn.com/s3/m/8220da7d01f69e3143329436.png)
课程实验报告课程实验名称:_算法设计与分析实验设计专业班级:学号:__姓名:____指导教师:王多强_报告日期: 2013年6月15日计算机科学与技术学院目录一、实验题目 (2)二、理论方法 (2)三、算法描述 (3)四、代码实现 (4)1.模块一:基本算法 (4)2.模块二:输出结果 (5)1)输出C(0,n),W(0,n),R(0,n) (5)2)从上至下,输出每个节点的左右节点 (5)五、实验结果截图 (6)六、计算时间分析 (6)七、实验体会 (7)八、源代码 (7)12一、 实验题目在二分检索树中,为了把动态规划应用于得到一颗最优二分检索树的问题,需要把构造这样的一个数看成是一系列决策的结果,而且要能列出求取最优决策序列的递推式。
二、 理论方法解决上述问题的一种可能方法是对{a 1,a 2,…,a n } (a 1<a 2 < … < a n )的二分检索树,若a k 是该树的根,则内结点a 1,a 2,…,a k-1和外部结点E 0,E 1,…,E k-1将位于根a k 的左子树L 中,而其余的结点 a k +1, a k+2, …,a n 及E k ,E k+1,…,E n 将位于右子树R 中。
含义:左、右子树的预期成本。
这里,将左、右子树的根作为第一级来统计左、右子树中所有结点的级数,该级数等于相对原树根的级数-1。
若:level T (X)为结点X 在树T 中的级数,level(X)为X 在T 的 左/右子树中的级数,则:level T (X) = level(X)+1∑∑∑∑∑∑∑∑∑∑∑∑∑∑≤≤≤≤+≤≤≤≤+≤≤≤≤≤≤≤≤≤≤∈≤≤+∈≤≤∈≤≤∈≤≤≤≤++-++++-++=-++++-++++=-+=ni k ni 1k ni k ni 1k 1-k i 01-k i 11-k i 01-k i 1ni k 右子树E ni 1k 右子树a 1-k i 0左子树E 1-k i 1左子树a ni 0ni 1Q(i)P(i) )1)((*Q(i))(*P(i) Q(i)P(i) )1)((*Q(i))(*P(i)P(k) )1)1)((*Q(i))1)((*P(i) )1)1)((*Q(i))1)((*P(i))( )1)((*Q(i))(*P(i))(COST i i i i i i i i i i i i i T i T E level a level E level a level E level a level E level a level k P E level a level T 证明最优性原理对于上述问题是成立的:∑∑<≤<≤-+=k i iki iE level i Q a level i P L COST 01)1((*)()(*)()(∑∑≤≤≤<-+=ni k ini k iE level i Q a level i P R COST )1((*)()(*)()(若以ak 为根的二分检索树T是关于集合{a1,a2,…,an}的一棵最优二分检索树,L、R分别是ak 的左子树和右子树,L包含结点a1,a2,…,ak-1和E,E1,…,Ek-1、R包含结点及ak+1, ak+2, …,an和Ek,Ek+1,…,En,则L和R必是相应集合的最优二分检索树。
华科gpa算法
![华科gpa算法](https://img.taocdn.com/s3/m/12c9d2dc162ded630b1c59eef8c75fbfc77d9417.png)
华科gpa算法
由于高校可能采用不同的绩点计算方法,华中科技大学的GPA 计算方法如下:
1.对每门课程分数进行转换:百分制成绩可以按以下方式转化为绩点(GP):
百分制成绩GP值百分制成绩GP值
90-1004.09-4.0080-831.50-1.99
85-893.77-3.6777-791.20-1.20
82-843.30-3.3074-761.00-0.99
78-812.50-2.9967-72Below 0.8
2.计算课程绩点之和:将每门课程的绩点与其对应学分相乘,求和。
3.计算学期绩点:将步骤2 中的学分绩点之和除以学分之和,得出该学期的绩点。
4.计算加权平均绩点:将所有学期的学分绩点之和除以所有学期学分之和,得出加权平均绩点。
需要注意的是,该算法只是一种可能的计算方法,不同学校可能会有不同的绩点计算方法,具体还需要了解所在学校的具体规定。
《计算方法》第四章 插值方法
![《计算方法》第四章 插值方法](https://img.taocdn.com/s3/m/f087f7b61a37f111f1855bfe.png)
Ln ( x) f ( xk ) l k ( x)
k 0
n
n
其中,
l k ( x)
j 0 j k
x xj x k x j (k 0,1,...n) .
20
构造插值多项式的方法:
(1) (2) 先求插值基函数. 构造插值多项式.
以下的问题:如何分析插值的余项?
21
例题 已知连续函数 f (x) 的函数表如下: x f (x) -1 0 1 2 -2 -2 1 2
Return
13
§4.2 拉格朗日多项式 /* Lagrange Polynomial */
1. 构造线性插值基函数的方法:
n=1 已知 x0 , x1 ; y0 , y1 ,求 L1(x) = a0 + a1 x 使得
L1 ( x0 ) y0 , L1 ( x1 ) y1
可见 L1(x) 是过 ( x0 , y0 ) 和 ( x1, y1 ) 两点的直线。
由 l k ( xk ) 1, 得:
1 A ( xk x0 ) ( xk xk 1 ) ( xk xk 1 ) ( xk xn )
l k ( x)
k = 0, 1 ,⋯, n .
( x x0 )( x xk 1 ) ( x xk 1 )( x xn ) , ( x k x0 )( xk xk 1 ) ( xk xk 1 )( xk xn )
18
一般情形
希望找到 li (x),i = 0, …, n 使得 li (xj) = ij ;然后令
Ln ( x ) f ( x k ) l k ( x ),则显然有 Pn(xi) = yi 。
k 0 n
华中科技大学 组成原理实验报告 运算器组成实验
![华中科技大学 组成原理实验报告 运算器组成实验](https://img.taocdn.com/s3/m/8cc977ec172ded630b1cb613.png)
课程实验报告课程名称:计算机组成原理专业班级:信息安全1003班学号:U**********名:***同组成员:张源信报告日期:2012年5月计算机科学与技术学院目录一、实验名称 (3)二、实验目的 (3)三、实验设备 (3)四、实验任务 (3)五、预备知识 (4)1、运算器的相关知识 (4)2、注意事项: (4)六、设计思路、电路实现与电路分析说明 (4)1、任务分析 (4)2、设计思路 (6)3、电路实现与详细分析说明 (7)七、实验结果的记录与分析 (9)八、实验中碰到的问题及解决办法 (10)九、收获与体会 (10)十、参考书目 (11)一、实验名称实验名称:运算器组成实验二、实验目的1、掌握带累加器的运算器实验2、掌握溢出检测的原理及实现方法3、理解有符号数和无符号数运算的区别4、理解基于补码的加\减运算实现原理5、熟悉运算器的数据传输通路6、利用74181和74182以及适当的门电路和多路选择器设计一个运算,要求支持有符号数和无符号数的运算支持补码加减法运算,支持有符号数溢出检测等功能三、实验设备JZYL—Ⅱ型计算机组成原理实验仪一台芯片:74LS181运算器芯片2片74LS373 8D锁存器3片四、实验任务自己设计一个电路和利用实验参考电路进行实验,实验要求先将多个运算数据事先存入存储器中,再由地址选中,选择不同的运算指令,进行运算,并将结果显示,还可以进行连续运算和移位,最后将最终结果写入到存储器中。
五、预备知识 1、运算器的相关知识运算器是对数据进行加工处理的部件,它具体实现数据的算术运算和逻辑运算,所以又称算术逻辑运算部件,简称ALU ,它是中央处理器的重要组成部分。
计算机中的运算器结构一般都包含如下几个部分:加法器、一组通用寄存器、输入数据选择电路和输出数据控制电路等。
74LS181能执行16种算术运算和16种逻辑运算,当工作方式控制端(M )为低电平时执行算术运算,当工作方式控制端(M )为高电平时执行逻辑运算,运算功能由功能选择端(S0-S3)决定。
计算方法实验报告
![计算方法实验报告](https://img.taocdn.com/s3/m/7e7c8599964bcf84b9d57bb7.png)
2019年计算方法(B)实验报告姓名:学号:专业:课程:计算方法(B)目录一、实验综述 (1)二、实验内容 (1)2.1 实验一 (1)2.2 实验二 (2)2.3 实验三 (3)2.4 实验四 (4)2.5 实验五 (6)三、思考总结 (7)附件A1 (8)附件A2 (9)附件A3 (10)附件A4 (12)附件A5 (14)一、实验综述计算方法在工程实践中得到了广泛的应用,是理工类研究生必备的知识技能。
按照2019年计算方法课程学习要求,本文对计算方法上机题目进行了算法设计、分析,利用matlab 2019b版本对算法进行实现,最终形成了实验报告。
以下为本次实验报告具体内容,包括五个实验部分和一个思考总结部分。
二、实验内容2.1 实验一2.1.1 实验题目用Jacobi迭代和Gauss-Seidel迭代解电流方程组,使各部分电流的误差均小于10-3。
2.1.2 算法分析a)首先列出方程组的系数矩阵A以及等式右端的矩阵b,A=[28,-3,0,0,0;-3,38,-10,0,-5;0,-10,25,-15,0;0,0,-15,45,0;0,-5,0,0,30 ];b=[10;0;0;0;0];为了验证A是否收敛,我们通过判断系数矩阵A是否为严格对角占优矩阵进行确定。
如果是,则可以进行Jacobi迭代和Gauss-Seidel迭代(利用matlab程序验证后,证明了矩阵A为严格对角占优矩阵);如果不是,则需要采用其他方法进行判断迭代是否收敛。
b)对矩阵A分裂成三部分,,其中D为A的对角矩阵,E为A的下三角矩阵的相反数,F为A的上三角矩阵的相反数。
c) Jacobi迭代。
取x得初始向量为x=[0;0;0;0;0],利用迭代公式进行循环计算,当的无穷范数小于10-3,即,停止循环。
d) Gauss-Seidel迭代。
取x得初始向量为x=[0;0;0;0;0],利用迭代公式进行循环计算,当的无穷范数小于10-3,即,停止循环。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:数值分析
专业班级:重修 学号: 姓名: 指导教师:许如初 报告日期:2014.6.26
计算机科学与技术学院
实验一 一、 题目 用 C 语言实现 Lagrange 插值算法。 二、 实验目的 理解 Lagrange 插值原理,以及在计算机上的实现过程。 三、 实验原理 Lagrange 插值法公式:
for(i = N-1;i >= 0;i--) { n1 = n1 *(0.596-x[i])+y[i]; n2 = n2 *(0.895-x[i])+y[i];}
printf("%f\t%f\n",n1,n2);}
由截图可知,经过验算符合预期实验结果。
实验心得: 经过本次实验,我不仅对拉格朗日插值、牛顿插值公式的一些特性有了 更加深刻的了解同时我对 C 语言的编程也更加熟练了。 拉格朗日插值法与牛顿插值法都是二种常用的简便的插值法。但牛顿法 插值法则更为简便,与拉格朗日插值多项式相比较,它不仅克服了“增加一 个节点时整个计算工作必须重新开始”的缺点,而且可以节省乘、除法运算 次数。同时,在牛顿插值多项式中用到的差分与差商等概念,又与数值计算 的其他方面有着密切的关系。 而用编程实现,我们通过观察程序的时间复杂度可以清晰的看到插值结 点数量的改变而造成的运算时间的改变,这就比通过理论推导来的更加直观 了。 这次实验让我认识到计算方法是一门理论与实践相结合的学科。从中 我们不仅学到了很多有用的算法,而且也让我进一步了解了计算机是怎样实 现数据之间的“计算”的。总之,通过这次实验,让我收获了一份将理论付 诸实践的乐趣,领略到了不同的计算方法的魅力。
… 四、 读入 , (i=0,1,2…,N) k=1
k++;
否 k=N 是 输入 x
输出
结束
五、
源程序(数据来源于课本的实验例子)
#include<stdio.h> #define N 5 void main() {float x[N] = {0.4,0.55,0.65,0.8,0.9},y[N] {0.41075,0.57815,0.69675,0.88811,1.02652}, f[N],n1,n2; int k=0 ,i;
四、
流程图
五、 源程序(数据来源于课本的实验例子) #include<stdio.h> #define N 4
void main() { float x[N]={0.56160,0.56280,0.56401,0.56521}, y[N]={0.82742,0.82659,0.82577,0.82495}, xl,l = 0,li = 1; int i,j; printf("Please Input X \n"); scanf("%f",&xl); for(i = 0;i < N;i++) { for(j = 0,li = 1;j < N; j++) {if(j == i) goto h; li = li * ((xl-x[j])/(x[i]-x[j])); h: li = li;} l = l + li*y[i]; } printf("4 \t Ln(x) = %f \n",l); } 截图:
由截图可知,经过验算符合预期实验结 果。 实验二 一、 题目 用 C 语言实现 Newton 插值算法。 二、 实验目的 理解 Newton 插值原理,以及在计算机上的实现过程。 三、 实验原理 Newton 插值公式: ������������ ������ = ������ ������0 + ������ ������0 , ������1 ������ − ������0 + ⋯ + ������[������0 , ������1 , … , ������������ ]������������ (������) ������ ������0 , ������1 , … , ������������−2 , ������������ − ������[������0 , ������1 , … , ������������−1 ] ������ ������0 , ������1 , … , ������������ = ������������ − ������������−1 ������������ ������ = ������ − ������0 ������ − ������1 … (������ − ������������ −1 ) 构造差商表如下:
������
������������ ������ =
������ =0 ������
������������ (������)������������ ������ − ������������ ������������ − ������������
������������ ������ =
������ =0 j ≠i
=
printf("*************************************************************** ************\n"); printf("k Xk Yk Fk F01k F02k F0123k \n" ); printf("*************************************************************** ************\n"); printf("0%12.4f%12.4f\n",x[0],y[0]); for(k =1;k<N;) {f[0] = y[k]; printf("%d%12.4f%12.4f",k,x[k],y[k]); for(i = 0;i<=k-1 ;i++) {f[i+1] = (f[i]-y[i])/(x[k]-x[i]); printf(" "); printf("%.4f",f[i+1]);} printf("\n"); y[k] = f[k]; k++; } n1 = f[N-1]; n2 = f[N-1]; printf("*************************************************************** ************\n");