文档库 最新最全的文档下载
当前位置:文档库 › 数据结构与算法分析》实验报告

数据结构与算法分析》实验报告

数据结构与算法分析》实验报告
数据结构与算法分析》实验报告

《数据结构与算法分析》实验报告

姓名学号_ _____

__年__月__ __日

1. 上机题目:以静态链表为存储结构,编写给定权值

{7,19,2,6,32,3}构造哈夫曼树的算法。(输出以存储结构表示或以树型显示(90度旋转))

2.需求分析

(1)输入数据必须为int的整形数据,其数值范围为:-21474836~2147483647

(2)输出的数据格式为:%d

(3)测试数据的数据为:{7,19,2,6,32,3}

3.详细设计

(1)该程序采用顺序表的存储结构,其数据结构定义如下:#define n 6

#define m 2*n-1

#define max 100typedef struct

{int data;

int lchild,rchild,prnt;

}hufmtree;

所用数据类型中每个操作的伪码算法如下:

创建哈夫曼树

Program hufm(hufmtree t[m])

FOR i=0;i

t[i].data=0;

t[i].lchild=0;

t[i].rchild=0;

t[i].prnt=0;

End FOR

输入结点值

FOR i=n;i

p1=0;p2=0;

small1=max;small2=max

FOR j=0;j<=i-1;j++ TO

IFt[j].prnt?=0

IF(t[j].data

small2=small1;

small1=t[j].data;

p2=p1;

p1=j;}

ELSE IF(t[j].data

small2=t[j].data;

p2=j;

t[p1].prnt=i+1;

t[p2].prnt=i+1;

t[i].lchild=p1+1;

t[i].rchild=p2+1;

t[i].data=t[p1].data+t[p2].data;

END IF

END FOR

END Hufman

4.调试分析

(1)调试过程中主要遇到哪些问题?是如何解决的?

开始的时候main函数的数据结构类型定义的与主函数不同,而且缺少返回值,导致最后的结果陷入死循环,通过看书,向同学询问,得以解决。

(2)经验和体会

哈夫曼树又称最优二叉树,此次实验创建哈夫曼树算法,虽然依旧犯了不少错误,但仍解决了。在其中学习了很多,对树有了更深的了解。

5.测试结果

6.附件

见 20121183058詹奇.Cpp

红外光谱(FTIR)实验报告

红外光谱仪调查及实验报告 第一部分红外光谱仪调查 1.1 简介 傅里叶红外光谱仪: 全名为傅里叶变换红外光谱仪(Fourier Transform Infrared Spectrometer,FTIR Spectrometer),是基于对干涉后的红外光进行傅里叶变换的原理而开发的红外光谱仪,主要由红外光源、光阑、干涉仪(分束器、动镜、定镜)、样品室、检测器以及各种红外反射镜、激光器、控制电路板和电源组成。傅里叶红外光谱仪不同于色散型红外分光的原理,可以对样品进行定性和定量分析,广泛应用于医药化工、地矿、石油、煤炭、环保、海关、宝石鉴定、刑侦鉴定等领域。 滤光片型近红外光谱仪器: 滤光片型近红外光谱仪器以滤光片作为分光系统,即采用滤光片作为单色光器件。滤光片型近红外光谱仪器可分为固定式滤光片和可调式滤光片两种形式,其中固定滤光片型的仪器时近红外光谱仪最早的设计形式。仪器工作时,由光源发出的光通过滤光片后得到一宽带的单色光,与样品作用后到达检测器。 色散型近红外光谱仪器: 色散型近红外光谱仪器的分光元件可以是棱镜或光栅。为获得较高分辨率,现代色散型仪器中多采用全息光栅作为分光元件,扫描型仪器通过光栅的转动,使单色光按照波长的高低依次通过样品,进入检测器检测。根据样品的物态特性,可以选择不同的测样器件进行投射或反射分析。 傅里叶变换型近红外光谱仪器: 傅里叶变换近红外分光光度计简称为傅里叶变换光谱仪,它利用干涉图与光谱图之间的对应关系,通过测量干涉图并对干涉图进行傅里叶积分变换的方法来测定和研究近红外光谱。其基本组成包括五部分:①分析光发生系统,由光源、分束器、样品等组成,用以产生负载了样品信息的分析光;②以传统的麦克尔逊干涉仪为代表的干涉仪,以及以后的各类改进型干涉仪,其作用是使光源发出的光分为两束后,造成一定的光程差,用以产生空间(时间)域中表达的分析光,即干涉光;③检测器,用以检测干涉光;④采

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

无水乙醇红外光谱分析实验报告

竭诚为您提供优质文档/双击可除无水乙醇红外光谱分析实验报告 篇一:红外光谱分析实验报告 一、【实验题目】 红外光谱分析实验 二、【实验目的】 1.了解傅立叶变换红外光谱仪的基本构造及工作原理 2.掌握红外光谱分析的基础实验技术 3.学会用傅立叶变换红外光谱仪进行样品测试 4.掌握几种常用的红外光谱解析方法 三、【实验要求】 利用所学过的红外光谱知识对碳酸钙、聚乙烯醇、丙三醇、乙醇的定性分析制定出合理的样品制备方法;并对其谱图给出基本的解析。 四、【实验原理】 红外光是一种波长介于可见光区和微波区之间的电磁波谱。波长在0.78~300μm。通常又把这个波段分成三个区域,即近红外区:波长在0.78~2.5μm(波数在12820~

4000cm-1),又称泛频区;中红外区:波长在2.5~25μm(波数在4000~400cm-1),又称基频区;远红外区:波长在25~300μm(波数在400~33cm-1),又称转动区。其中中红外区是研究、应用最多的区域。 红外区的光谱除用波长λ表征外,更常用波数(wavenumber)σ表征。波数是波长的倒数,表示单位厘米波长内所含波的数目。其关系式为: 作为红外光谱的特点,首先是应用面广,提供信息多且具有特征性,故把红外光谱通称为"分子指纹"。它最广泛的应用还在于对物质的化学组成进行分析。用红外光谱法可以根据光谱中吸收峰的位置和形状来推断未知物的结构,依照特征吸收峰的强度来测定混合物中各组分的含量。其次,它不受样品相态的限制,无论是固态、液态以及气态都能直接测定,甚至对一些表面涂层和不溶、不熔融的弹性体(如橡胶)也可直接获得其光谱。它也不受熔点、沸点和蒸气压的限制,样品用量少且可回收,是属于非破坏分析。而作为红外光谱的测定工具-红外光谱仪,与其他近代分析仪器(如核磁共振波谱仪、质谱仪 等)比较,构造简单,操作方便,价格便宜。因此,它已成为现代结构化学、分析化学最常用和不可缺少的工具。根据红外光谱与分子结构的关系,谱图中每一个特征吸收谱带都对应于某化合物的质点或基团振动的形式。因此,特征吸收

数据结构与算法分析习题与参考答案

大学 《数据结构与算法分析》课程 习题及参考答案 模拟试卷一 一、单选题(每题 2 分,共20分) 1.以下数据结构中哪一个是线性结构?( ) A. 有向图 B. 队列 C. 线索二叉树 D. B树 2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点, 则执行如下( )语句序列。 A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q; 3.以下哪一个不是队列的基本运算?() A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D.读取队头元素的值 4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( ) 个不同的字符串? A.14 B.5 C.6 D.8 5.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。 以下6-8题基于图1。 6.该二叉树结点的前序遍历的序列为( )。 A.E、G、F、A、C、D、B B.E、A、G、C、F、B、D C.E、A、C、B、D、G、F D.E、G、A、C、D、F、B 7.该二叉树结点的中序遍历的序列为( )。 A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D C. E、A、C、B、D、G、F E.B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为( )。

A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是( )。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建 堆的结果?( ) A. a,g,h,m,n,p,q,x,z B. a,g,m,h,q,n,p,x,z C. g,m,q,a,n,p,x,h,z D. h,g,m,p,a,n,q,x,z 二、填空题(每空1分,共26分) 1.数据的物理结构被分为_________、________、__________和___________四种。 2.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为_________, 在表尾插入元素的时间复杂度为____________。 3.向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是________________; 删除一个结点时,需要执行的操作是______________________________(假设栈不空而 且无需回收被删除结点)。 4.对于一棵具有n个结点的二叉树,一个结点的编号为i(1≤i≤n),若它有左孩子则左 孩子结点的编号为________,若它有右孩子,则右孩子结点的编号为________,若它有 双亲,则双亲结点的编号为________。 5.当向一个大根堆插入一个具有最大值的元素时,需要逐层_________调整,直到被调整 到____________位置为止。 6.以二分查找方法从长度为10的有序表中查找一个元素时,平均查找长度为________。 7.表示图的三种常用的存储结构为_____________、____________和_______________。 8.对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)=K %7 作为散列函数,则散列地址为0的元素有________个,散列地址为6的有_______个。 9.在归并排序中,进行每趟归并的时间复杂度为______,整个排序过程的时间复杂度为 ____________,空间复杂度为___________。 10.在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________ 个,其子树数目最少为________,最多为________。 三、运算题(每题 6 分,共24分) 1.写出下列中缀表达式的后缀形式: (1)3X/(Y-2)+1 (2)2+X*(Y+3) 2.试对图2中的二叉树画出其: (1)顺序存储表示的示意图; (2)二叉链表存储表示的示意图。 3.判断以下序列是否是小根堆? 如果不是, 将它调 图2 整为小根堆。 (1){ 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 } (2){ 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100 } 4.已知一个图的顶点集V和边集E分别为: V={1,2,3,4,5,6,7};

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 912113850115 专业:数学与应用数学 指导老师:李建良

线性方程组的数值实验 一、课题名字:求解双对角线性方程组 二、问题描述 考虑一种特殊的对角线元素不为零的双对角线性方程组(以n=7为例) ?????????? ?????? ? ???? ?d a d a d a d a d a d a d 766 55 44 3 32 211??????????????????????x x x x x x x 7654321=?????????? ? ???????????b b b b b b b 7654321 写出一般的n (奇数)阶方程组程序(不要用消元法,因为不用它可以十分方便的解出这个方程组) 。 三、摘要 本文提出解三对角矩阵的一种十分简便的方法——追赶法,该算法适用于任意三对角方程组的求解。 四、引言 对于一般给定的d Ax =,我们可以用高斯消去法求解。但是高斯消去法过程复杂繁琐。对于特殊的三对角矩阵,如果A 是不可约的弱对角占优矩阵,可以将A 分解为UL ,再运用追赶法求解。

五、计算公式(数学模型) 对于形如????? ?? ????? ??? ?---b a c b a c b a c b n n n n n 111 2 2 2 11... ... ...的三对角矩阵UL A =,容易验证U 、L 具有如下形式: ??????? ????? ??? ?=u a u a u a u n n U ...... 3 3 22 1 , ?? ????? ? ?? ??????=1 (1) 1132 1l l l L 比较UL A =两边元素,可以得到 ? ?? ??-== = l a b u u c l b u i i i i i i 111 i=2, 3, ... ,n 考虑三对角线系数矩阵的线性方程组 f Ax = 这里()T n x x x x ... 2 1 = ,()T n f f f f ... 2 1 = 令y Lx =,则有 f Uy = 于是有 ()?????-== --u y a f y u f y i i i i i 1 1 11 1 * i=2, 3, ... ,n 再根据y Lx =可得到

红外光谱分析实验报告

仪器分析实验 实验名称:红外光谱分析实验 学院:化学工程学院专业:化学工程与工艺班级: 姓名:学号: 指导教师: 日期:

一、 实验目的 1、掌握溴化钾压片法制备固体样品的方法; 2、学习并掌握美国尼高立IR-6700型红外光谱仪的使用方法; 3、初步学会对红外吸收光谱图的解析。 二、实验原理 红外光是一种波长介于可见光区和微波区之间的电磁波谱。波长在0.75~1000μm 。通常又把这个波段分成三个区域,即近红外区:波长在0.75~2.5μm (波数在13300~4000cm -1),又称泛频区;中红外区:波长在 2.5~50μm (波数在4000~200cm -1),又称振动区;远红外区:波长在50~1000μm (波数在200~10cm -1),又称转动区。其中中红外区是研究、应用最多的区域。 红外区的光谱除用波长λ表征外,更常用波数σ表征。波数是波长的倒数,表示单位厘米波长内所含波的数目。其关系式为: )(10)(4 1 cm cm λσ=- 三、仪器和试剂 1、仪器: 美国尼高立IR-6700 2、试剂: 溴化钾,聚乙烯,苯甲酸 3、傅立叶红外光谱仪(FTIR)的构造及工作原理 计算机检测器样品室干涉仪光源?→??→??→??→? 四、实验步骤 1、打开红外光谱仪并稳定大概5分钟,同时进入对应的计算机工作站。 2、波数检验:将聚乙烯薄膜插入红外光谱仪的样品池处,从4000-650cm -1进行 波数扫描,得到吸收光谱。然后将所得的谱图与计算机上的标准谱图进行匹配,分析得到最吻合的图谱,即可判断物质结构。 3、测绘苯甲酸的红外吸收光谱——溴化钾压片法 取1-2mg 苯甲酸,加入在红外灯下烘干的100-200mg 溴化钾粉末,在玛瑙研钵中充分磨细(颗粒约2μm ),使之混合均匀。取出约80mg 混合物均匀铺洒在干净的压模内,于压片机上制成直径透明薄片。将此片装于固体样品架上,样品架插入红外光谱仪的样品池处,从4000-400cm -1进行波数扫描,得到吸收光谱。然后将所得的谱图与计算机上的标准谱图进行匹配。 4、结束实验,关闭工作站和红外光谱仪。

数据结构与算法分析 C++版答案

Data Structures and Algorithm 习题答案 Preface ii 1 Data Structures and Algorithms 1 2 Mathematical Preliminaries 5 3 Algorithm Analysis 17 4 Lists, Stacks, and Queues 23 5 Binary Trees 32 6 General Trees 40 7 Internal Sorting 46 8 File Processing and External Sorting 54 9Searching 58 10 Indexing 64 11 Graphs 69 12 Lists and Arrays Revisited 76 13 Advanced Tree Structures 82 i

ii Contents 14 Analysis Techniques 88 15 Limits to Computation 94

Preface Contained herein are the solutions to all exercises from the textbook A Practical Introduction to Data Structures and Algorithm Analysis, 2nd edition. For most of the problems requiring an algorithm I have given actual code. In a few cases I have presented pseudocode. Please be aware that the code presented in this manual has not actually been compiled and tested. While I believe the algorithms to be essentially correct, there may be errors in syntax as well as semantics. Most importantly, these solutions provide a guide to the instructor as to the intended answer, rather than usable programs.

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

固体红外光谱实验报告

KBr压片法测定固体样品的红外光谱 一、实验目的 1、掌握红外光谱分析法的基本原理。 2、掌握Nicolet5700智能傅立叶红外光谱仪的操作方法。 3、掌握用KBr压片法制备固体样品进行红外光谱测定的技术和方法。 4、了解基本且常用的KBr压片制样技术在红外光谱测定中的应用。 5、通过谱图解析及标准谱图的检索,了解由红外光谱鉴定未知物的一般过程。 二、仪器及试剂 1 仪器:美国热电公司Nicolet5700智能傅立叶红外光谱仪;HY-12型手动液压式红外压片机及配套压片模具;磁性样品架;红外灯干燥器;玛瑙研钵。 2 试剂:苯甲酸样品(AR);KBr(光谱纯);无水丙酮;无水乙醇。 三、实验原理 红外吸收光谱法是通过研究物质结构与红外吸收光谱间的关系,来对物质进行分析的,红外光谱可以用吸收峰谱带的位置和峰的强度加以表征。测定未知物结构是红外光谱定性分析的一个重要用途。根据实验所测绘的红外光谱图的吸收峰位置、强度和形状,利用基团振动频率与分子结构的关系,来确定吸收带的归属,确认分子中所含的基团或键,并推断分子的结构,鉴定的步骤如下: (1)对样品做初步了解,如样品的纯度、外观、来源及元素分析结果,及物理性质(分子量、沸点、熔点)。 (2)确定未知物不饱和度,以推测化合物可能的结构; (3)图谱解析 ①首先在官能团区(4000~1300cm-1)搜寻官能团的特征伸缩振动; ②再根据“指纹区”(1300~400cm-1)的吸收情况,进一步确认该基团的存在以及与其它基团的结合方式。

图1 仪器的基本结构 四、实验步骤 1. 红外光谱仪的准备 (1)打开红外光谱仪电源开关,待仪器稳定30 分钟以上,方可测定; (2)打开电脑,选择win98系统,打开OMNIC E.S.P软件;在Collect菜单下的Experiment Set-up 中设置实验参数; (3)实验参数设置:分辨率 4 cm-1,扫描次数32,扫描范围4000-400 cm-1;纵坐标为Transmittance 2.固体样品的制备 (1)取干燥的苯甲酸试样约1mg于干净的玛瑙研钵中,在红外灯下研磨成细粉,再加入约150mg干燥且已研磨成细粉的KBr一起研磨至二者完全混合均匀,混合物粒度约为2μm以下(样品与KBr的比例为1:100~1:200)。 (2)取适量的混合样品于干净的压片模具中,堆积均匀,用手压式压片机用力加压约30s,制成透明试样薄片。 3.样品的红外光谱测定 (3)小心取出试样薄片,装在磁性样品架上,放入Nicolet5700智能傅立叶红外光谱仪的样品室中,在选择的仪器程序下进行测定,通常先测KBr的空白

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

红外光谱实验报告

红外光谱实验报告 一、实验原理: 1、红外光谱法特点: 由于许多化合物在红外区域产生特征光谱,因此红外光谱法广 泛应用于这些物质的定性和定量分析,特别是对聚合物的定性 分析,用其他化学和物理方法较为困难,而红外光谱法简便易 行,特别适用于聚合物分析。 2、红外光谱的产生和表示 红外光谱定义:分子吸收红外光引起的振动能级跃迁和转动能级跃 迁而产生的吸收信号。 分子发生振动能级跃迁需要的能量对应光波的红外区域分类为: i.近红外区:10000-4000cm-1 ⅱ.中红外区:4000-400cm-1——最为常用,大多数化合物的化键振 动能级的跃迁发生在这一区域。 ⅲ.远红外区:400-10cm-1 产生红外吸收光谱的必要条件: 1)分子振动:只有在振动过程中产生偶极矩变化时才能吸收红外辐射。 ⅰ.双原子分子的振动:(一种振动方式)理想状态模型——把两个 原子看做由弹簧连接的两个质点,用此来 描述即伸缩振动;

图1 双原子分子的振动模型 ⅱ.多原子分子的振动:(简正振动,依据键长和键角变化分两大类) 伸缩振动:对称伸缩振动 反对称伸缩振动 弯曲振动:面内弯曲:剪切式振动 (变形振动)平面摇摆振动 面外弯曲振动:扭曲振动 非平面摇摆振动 ※同一种键型,不对称伸缩振动频率大于对称伸缩振动频率,伸缩振动频率大于弯曲振动频率。 ※当振动频率和入射光的频率一致时,入射光就被吸收,因而同一基团基本上总是相对稳定地在某一特定范围内出现吸收峰。ⅲ.分子振动频率: 基频吸收(强吸收峰):基态到第一激发态所产生分子振动 的振动频率。 倍频吸收(弱吸收峰):基态到第二激发态,比基频高一倍 处弱吸收,振动频率约为基频两倍。 组频吸收(复合频吸收):多分子振动间相互作用,2个或2

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

红外光谱实验报告

一、实验目的 1、掌握溴化钾压片法制备固体样品的方法; 2、学习并掌握美国尼高立IR-6700型红外光谱仪的使用方法; 3、初步学会对红外吸收光谱图的解析。 二、实验原理 红外光是一种波长介于可见光区和微波区之间的电磁波谱。波长在~1000μm。通常又把这个波段分成三个区域,即近红外区:波长在~μm(波数在13300~4000cm-1),又称泛频区;中红外区:波长在~50μm(波数在4000~200cm-1),又称振动区;远红外区:波长在50~1000μm(波数在200~10cm-1),又称转动区。其中中红外区是研究、应用最多的区域。 红外区的光谱除用波长λ表征外,更常用波数σ表征。波数是波长的倒数,表示单位厘米波长内所含波的数目。其关系式为: 三、仪器和试剂 1、仪器:美国尼高立IR-6700 2、试剂:溴化钾,聚乙烯,苯甲酸 3、傅立叶红外光谱仪(FTIR)的构造及工作原理 四、实验步骤

1、波数检验:将聚苯乙烯薄膜插入红外光谱仪的样品池处,从4000-650cm-1进行波数扫描,得到吸收光谱。 2、测绘苯甲酸的红外吸收光谱——溴化钾压片法 取1-2mg苯甲酸,加入在红外灯下烘干的100-200mg溴化钾粉末,在玛瑙研钵中充分磨细(颗粒约2μm),使之混合均匀。取出约80mg混合物均匀铺洒在干净的压模内,于压片机上制成直径透明薄片。将此片装于固体样品架上,样品架插入红外光谱仪的样品池处,从4000-400cm-1进行波数扫描,得到吸收光谱。 五、注意事项 1、实验室环境应该保持干燥; 2、确保样品与药品的纯度与干燥度; 3、在制备样品的时候要迅速以防止其吸收过多的水分,影响实验结果; 4、试样放入仪器的时候动作要迅速,避免当中的空气流动,影响实验的准确性。 5、溴化钾压片的过程中,粉末要在研钵中充分磨细,且于压片机上制得的透明薄片厚度要适当。 六、数据处理 该图中在波数700~800、1500~1600、2800~2975左右有峰形,证明了该物质中可能有烯烃的C-H变形振动,C-C间的伸缩振动,同时也拥有烷烃的C-H伸缩振动,推测为聚乙烯的红外谱图。 谱带位置/cm-1吸收基团的振动形式 )n—C— n≥4) (—C—(CH 2

数据结构与算法分析

目录: 1、数据结构 2、算法的设计原则 3、总结 正文: 本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速度。那么爬坡时使用1档,便可以获得更大的牵引力;下坡时便使用低档限制车的行驶速度。回到编程而言,比如将一个班级的学生名字要临时存储在内存中,你会选择什么数据结构来存储,数组还是ArrayList,或者HashSet,或者别的数据结构。如果不懂数据结构的,可能随便选择一个容器来存储,也能完成所有的功能,但是后期如果随着学生数据量的增多,随便选择的数据结构肯定会存在性能问题,而一个懂数据结构和算法的人,在实际编程中会选择适当的数据结构来解决相应的问题,会极大的提高程序的性能。

1、数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 一、数据结构的基本功能 ①、如何插入一条新的数据项 ②、如何寻找某一特定的数据项 ③、如何删除某一特定的数据项 ④、如何迭代的访问各个数据项,以便进行显示或其他操作 二、常用的数据结构 这几种结构优缺点如下:先有个大概印象,后面会详细讲解!!! 算法简单来说就是解决问题的步骤。 在Java中,算法通常都是由类的方法来实现的。前面的数据结构,比如链表为啥插入、删除快,而查找慢,平衡的二叉树插入、删除、查找都快,这都是实现这些数据结构的算法所造成的。后面我们讲的各种排序实现也是算法范畴的重要领域。

数值分析实验报告

实验一、误差分析 一、实验目的 1.通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; 2.通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念; 3.通过上机计算,了解舍入误差所引起的数值不稳定性。 二.实验原理 误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。 三.实验内容 对20,,2,1,0 =n ,计算定积分 ?+=10 5dx x x y n n . 算法1:利用递推公式 151--=n n y n y , 20,,2,1 =n , 取 ?≈-=+=1 00182322.05ln 6ln 51dx x y . 算法2:利用递推公式 n n y n y 51511-= - 1,,19,20 =n . 注意到 ???=≤+≤=10 10202010201051515611261dx x dx x x dx x , 取 008730.0)12611051(20120≈+≈y .: 四.实验程序及运行结果 程序一: t=log(6)-log(5);

n=1; y(1)=t; for k=2:1:20 y(k)=1/k-5*y(k-1); n=n+1; end y y =0.0884 y =0.0581 y =0.0431 y =0.0346 y =0.0271 y =0.0313 y =-0.0134 y =0.1920 y =-0.8487 y =4.3436 y =-21.6268 y =108.2176 y =-541.0110 y =2.7051e+003 y =-1.3526e+004 y =6.7628e+004 y =-3.3814e+005 y =1.6907e+006 y =-8.4535e+006 y =4.2267e+007 程序2: y=zeros(20,1); n=1; y1=(1/105+1/126)/2;y(20)=y1; for k=20:-1:2 y(k-1)=1/(5*k)-(1/5)*y(k); n=n+1; end 运行结果:y = 0.0884 0.0580 0.0431 0.0343 0.0285 0.0212 0.0188 0.0169

数值分析2016上机实验报告

序言 数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。是科学与工程计算(科学计算)的理论支持。许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。目前,试验、理论、计算已成为人类进行科学活动的三大方法。 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。 MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 本实验报告使用了MATLAB软件。对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。

目录 序言 (1) 问题一非线性方程数值解法 (3) 1.1 计算题目 (3) 1.2 迭代法分析 (3) 1.3计算结果分析及结论 (4) 问题二追赶法解三对角矩阵 (5) 2.1 问题 (5) 2.2 问题分析(追赶法) (6) 2.3 计算结果 (7) 问题三函数拟合 (7) 3.1 计算题目 (7) 3.2 题目分析 (7) 3.3 结果比较 (12) 问题四欧拉法解微分方程 (14) 4.1 计算题目 (14) 4.2.1 方程的准确解 (14) 4.2.2 Euler方法求解 (14) 4.2.3改进欧拉方法 (16) 问题五四阶龙格-库塔计算常微分方程初值问题 (17) 5.1 计算题目 (17) 5.2 四阶龙格-库塔方法分析 (18) 5.3 程序流程图 (18) 5.4 标准四阶Runge-Kutta法Matlab实现 (19) 5.5 计算结果及比较 (20) 问题六舍入误差观察 (22) 6.1 计算题目 (22) 6.2 计算结果 (22) 6.3 结论 (23) 7 总结 (24) 附录

分析实验报告-红外光谱测定苯甲酸---最终版

华南师范大学实验报告 学生姓名:杨秀琼学号:20082401129 专业:化学年级班级:08化二 实验类型:综合实验时间:2010/3/25 实验指导老师郭长娟老师实验评分: 红外光谱法测定苯甲酸 一、[ 实验目的] 1.了解苯甲酸的红外光谱特征,通过实践掌握有机化合物的红外光谱鉴定方法。 2.练习用KBr压片法制备样品的方法。 3.了解红外光谱仪的结构,熟悉红外光谱仪的使用方法。 二、[实验原理] 红外吸收光谱分析方法主要是依据分子内部原子间的相对振动和分子转动等信息进行测定。不同的化学键或官能团,其振动能级从基态跃迁到激发态所需的能量不同,因此要吸收不同的红外光,将在不同波长出现吸收峰,从而形成红外光谱。 三、[仪器与试剂] 仪器:傅里叶红外光谱仪 软件:IRSolution; 压片机、膜具和干燥器;玛瑙研钵、药匙、镜纸及红外灯。 试剂:苯甲酸粉末、光谱纯KBr粉末。 四、[实验步骤]

1.将所有的膜具用酒精擦拭干净,用电吹风先烘干,再在红外灯下烘烤; 2.用电子天平称量一定量的KBr粉末(每份约200mg),在红外灯下研钵中加入KBr进行研磨,直至KBr粉末颗粒足够小(注意KBr粉末的干燥); 3.将KBr装入膜具,在压片机上压片,压力上升至14Mpa左右,稳定30S; 4.打开傅里叶红外光谱仪,将压好的薄片装机,设置背景的各项参数之后,进行测试,得到背景的扫描谱图。 5. 取一定量的样品(样品:大约1.2-1.3g)放入研钵中研细,然后重复上述步骤得到试样的薄片; 6.将样品的薄片固定好,装入红外光谱仪,设置样品测试的各项参数后进行测试,得到苯甲酸的红外谱图; 7.然后删掉背景谱图,对样品谱图进行简单的编辑和修饰,并标注出吸收峰值,保存试样的红外谱图; 8.谱图分析:在测定的谱图中根据出现吸收带的位置、强度和形状,利用各种基团特征吸收的知识,确定吸收带的归属。若出现了某基团的吸收,应该查看该基团的相关峰是否也存在。应用谱图分析,结合其他分析数据,可以确定化合物的结构单元,在按照化学知识和解谱经验,提出可能的结构式。然后查找该化合物标准谱图来验证推定的化合物的结构式。 五、[结果与分析]

相关文档
相关文档 最新文档