数值实验[综合]

数值实验[综合]
数值实验[综合]

数值实验一

数值实验综述:本章主要介绍数值分析的基本知识,其重点是对数值方法的评价与构造算法应注意的问题。本章数值实验的中心就是通过具体的数值实验来进一步熟悉MATLAB 的使用和理解算法的特点。如算法的计算复杂性,截断误差分析与收敛性,误差传播与算法的稳定性等。

实验1.1 病态问题

算法有“优”与“劣”之分,问题也有“好”和“坏”之别。所谓坏问题就是问题本身的解对数据变化比较敏感,反之属于好问题。

数值分析的大部分内容,如解线性代数方程组、求解矩阵特征值问题、解非线性方程及方程组等都存在病态的问题。病态问题通常需要预处理、或通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)、或者重新寻找出现病态的原因,改变原问题的提法。

问题提出:考虑一个高次的代数多项式

∏=-=---=201)()20)...(2)(1()(k k x x x x x p

(E1-1)

显然该多项式的全部根为l ,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。考虑该多项式方程的一个扰动

0)(19=+x x p ε

(E1-2) 其中ε是一个非常小的数。这相当于是对(E1-1)中19

x 的系数作一个小的扰动。我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个 Matlab 函数:“roots ”和“poly ”,输入函数

u =roots (a )

其中若变量a 存储1+n 维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,...,,+n a a a ,则输出u 的各分量是多项式方程 0...1121=++++-n n n n a x a x a x a

的全部根,而函数b=poly(v)的输出b 是一个n +1维变量,它是以n 维变量v 的各分量为根的多项式的系数。

ve=zeros(1,21);

ve(2)=0.01;(将ve 中的第二个分量改为0.01)

roots(poly(1:20))+ve)

上述简单的Matlab 程序便得到(E1-2)的全部根,程序中的“0.01”即是(E1-2)中的ε。

实验要求:

(1)选择充分小的ε,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数ε很小,我们自然感觉(E1-1)和(E1-2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?

(2)将方程(E1-2)中的扰动项改成18

x ε或其他形式,实验中又有怎样的现象出现? 实验1.2 误差传播与算法稳定性

问题提出:考虑一个简单的由积分定义的序列 ...2,1,101==?-n dx e x I x n n

(E1-3) 显然,...2,1,0=>n I n .当1=n 时,e dx xe I x /11011==

?-。而对于2≥n 时,利用分部积分易得

,...3,2,1|11

01110110

1=-=-==-----??n nI dx e nx e x dx e x I n x n x n x n n 另一方面,我们有

1111100011(1)1n n x n n x e dx I x e dx x dx e n n --≤≤=≤=++???. (E1-4)

实验内容:由以上递推关系,我们可得到计算序列{n I }的两种方法。

(I ):,...3,2,1,/111=-==-n nI I e I n n

(E1-5) (II ):2,3,...2,1,,1,01--=-==-N N N n n

E E E n n N (E1-6) 实验要求:

(1)分别用算法(I )、(II )并在计算中分别采用5位、6位和7位有效数字,请判断哪种算法能给出更精确的结果。

(2)两种算法的优劣,与你的第一感觉是否吻合?解释实验的结果。算法(I )中的1I 的计算误差为1e ,由1I 递推计算n I 的误差为n e ;算法(II )中N I 的计算误差为N ε,由N I 递推计算)(N n I n <的误差为n ε。如果在上述两算法中都假定后面的计算不再引入其他误差, 试给出n e 与1e 的关系和n ε与N ε的关系。

数值实验综述:非线性方程的数值解法是科学与工程计算的一个重要课题,在实际问题中有广泛的应用,特别在各种非线性问题的科学计算中更显出它的重要性。本章讨论非线性方程的数值解法,主要讲授了解非线性方程的二分法、迭代法、迭代加速、Newton 法割线法和抛物线法等。本章数值实验的中心就是通过具体的数值实验来研究算法的可行性,如算法的收敛性,初值的选择,收敛速度以及算法的复杂性与稳定性等。

实验2.1 迭代法、初始值与收敛性

初步认识非线性问题的迭代法与线性问题迭代法的差别,探讨迭代法及初始值与迭代收敛性的关系。

问题提出:迭代法是求解非线性方程及方程组的基本思想方法,与线性方程的情况一样,其构造方法可以有多种多样,但关键是怎样才能使迭代收敛且有较快的收敛速度。

实验内容:考虑一个简单的代数方程

012=--x x ,

针对上述方程,可以构造多种迭代法,如121-=+n n x x ,n

n x x 111+=+,11+=+n n x x 等。在实轴上取初始值0x ,分别用以上迭代作实验,记录各算法的迭代过程。

实验要求:

(1)取定某个初始值,按如上迭代格式进行计算,它们的收敛性如何?重复选取不同的初始值,反复实验。请读者自行设计一种比较形象的记录方式(如利用Matlab 的图形功能),分析三种迭代法的收敛性与初值选取的关系。

(2)对三个迭代法中的某一个,取不同的初始值进行迭代,结果如何?试分析迭代法对不同的初值是否有差异?

(3)线性方程组迭代法的收敛性是不依赖初始值选取的。比较线性与非线性问题迭代的差异,有何结论和问题。

实验2.2 算法设计与比较

非线性方程的数值求解方法很多,基本的思想是线性化。不同的方法效果如何,要靠计算的实践来分析、比较。

实验内容:考虑算法:(l )牛顿法;(2)割线法

分别编写它们的Matlab 程序。

实验要求:(1)用上述各种方法,分别计算下面的两个例子。在达到精度相同的前提下,比较其迭代次数、浮点运算次数和CPU 时间等。

(I )3231080,00x x x +-==取

(II )22123081(0.1)sin 1.060,

0x x x x -+++==取。 (2)取其它的初值0x ,结果如何?反复选取不同的初值,比较其结果。

(3)总结归纳你的实验结果,试说明各种方法的特点。

数值实验综述:线性代数方程组的解法是一切科学计算的基础与核心问题。求解方法大致可分为直接法和迭代法两大类。直接法指在不考虑舍入误差的情况下经过有限次运算可求得方程组的精确解的方法,因此也称为精确法。当系数矩阵是方的、稠密的、无任何特殊结构的中小规模线性方程组时,Gauss 消去法是目前最基本和常用的方法。迭代法是逐次逼近的方法,可用于求解大型特别是大型稀疏的方程组。迭代法的优点是可以利用系数矩阵的特殊结构,尽可能地减少计算量与存储量,但需要判断收敛性。

实验3.1 Gauss 消去法与LU 分解

Gauss 消去法等同于矩阵的三角分解,但它存在潜在的不稳定性,故需要选主元素。对一般的正定对称矩阵,采用平方根方法可不选主元。

实验内容:请用不选主元的LU 分解和列主元LU 分解求解下列线性方程组 Ax=b 。

实验要求:

(1)比较这两种方法的结果;

(2)增加方程阶数,再比较分析所得结果。

实验3.2 直接法的时间复杂性试验

不同的算法所需要的计算量有所不同,因此所花费的时间也不同。解n 阶线性方程组的直接法Gauss 消去法或者LU 分解法所花计算量大约为:32

3n ,而利用三角分解求逆所花工作量大约为:383n 。故利用逆求解线性方程组远比Gauss 消去法或LU 分解更费时。如果是

三对角方程组,则用追赶法所花工作量约为:87n -。应当注意的是,随着计算机的运算速度越来越快,纯粹计算所花时间比重下降,存取和通讯的量变得越来越重要,故存储量和存取方式也是影响计算速度的一个重要因素。

实验内容:请分别用不同方法求解实验3.1的线性方程组 Ax=b ,记录各方法所用时间,并与各方法的不同工作量进行比较。

实验要求:

(1)分别用\x A b =,()*x inv A b =计算,并分别记录所花费的CPU 时间,进行分析比较。

(2)取300=n ,随机生成A 的一条主对角线元素和二条次对角线元素,使A 为严格对角占优的三对角阵;随机生成b ;其中三条对角线元素分别用三个一维数组存储;用Matlab 语言自编M 文件分别用\x A b =,()*x inv A b =和追赶法计算这个三对角方程组;并分别记录所花费的CPU 时间;分析结果,得出你的结论。

实验3.3 线性方程组的迭代法

线性方程组的迭代法是一类重要方法,如Jacobi 迭代法、Gauss-Seidel 迭代法、SOR 方法等都是一些经典方法,虽已不是最优的方法,但还有其基础作用。本实验通过具体的数值例子来研究算法的收敛性,初值的选择,收敛速度等。

实验内容3.3:线性方程组的迭代法比较

实验要求:

(1)编写Jacobi 迭代法、Gauss-Seidel 迭代法、SOR 迭代法的M 文件。

(2)给定2020?∈R A 为五对角矩阵

???????????????

?????????????????------------------321

412132141412132141412132141412132141213 选取不同的初始向量)0(x 及右端面向量b ,给定迭代误差要求,利用已编写的Jacobi 迭代法和GS 迭代法程序求解,观察得到的序列是否收敛?若收敛,通过迭代次数分析计算结果并得出你的结论。用已编写的SOR 迭代法程序,对于所选取的初始向量)0(x 及右端项b 进行求

解,松驰系数ω取1<ω<2的不同值,在5)1()(10-+≤-k k x

x 时停止迭代,通过迭代次数分析计算结果并得出你的结论。

数值实四

插值与拟合是数值逼近的两种主要形式,数值实验的目的包括以下几个方面:(1)各种插值多项式的构造,高阶插值的Runge 现象,分段低次插值特别是样条插值的实现。 (2) 插值与拟合的区别与联系。

t x

-2 实验内容:(1) 分别用Lagrange 插值法和Newton 插值法编程求解。

(2) 求出插值多项式的系数,对比计算结果。

实验要求:(1)分析对比这两种插值方法的计算过程与结果。

2)绘制插值函数曲线,并分析数据点的变化趋势。

实验4.2 三次样条插值

(2)计算出各插值节点的弯矩值。

实验要求:绘制函数()f x 曲线,并与分段线性插值效果进行比较。

实验4.3龙格(Runge )现象

考虑在一个固定的区间上高次等距插值多项式逼近一个函数

22511)(x

x f += 实验内容:考虑区间]1,1[-的一个等距划分,分点为

n i n

i x i ,...,2,1,0,21=+

-= 则拉格朗日插值多项式为 ∑=+=n

i i

i

n x l x x L 02)(2511)( 其中的)(x l i ,n i ,...,2,1,0=是n 次拉格朗日插值基函数。

实验要求:(l )选择不断增大的分点数目,...3,2=n ,画出原函数)(x f 及插值多项式函数)(x L n 在]1,1[-上的图像,比较并分析实验结果。

(2)选择其他的函数,例如定义在区间[-5,5]上的函数

x x g x

x x h arctan )(,1)(4=+= 重复上述的实验看其结果如何。

(3)区间],[b a 上切比雪夫点的定义为

1,...,2,1,)1(2()12(cos 22+=???

? ??+--++=n k n k a b a b x k π 以121,...,,+n x x x 为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果。

实验4.4 曲线逼近方法的比较

曲线的拟合和插值,是函数逼近的基本方法,每种方法具有各自的特点和特定的适用范围,实际工作中合理选择方法是重要的。

实验要求:(1)分别画出三种方法的近似曲线;(2)分析比较拟合的结果与拉格朗日插值及样条插值的结果。

数值微积分是科学与工程计算中常见内容,内容丰富,本章只介绍了其中最基本的部分。如高精度的Gauss 积分,奇异积分,多元函数积分,积分方程数值解等常见内容并没有介绍。

实验5.1 多种数值求积公式计算定积分的比较

实验内容:计算积分4

2013()exp( 1.5)x x x dx --?的近似值

实验要求:(1)用复化梯形公式,(2)自动选取步长的梯形法,(3)Romberg 算法计算,要求绝对误差限为810ε-=

实验5.2 奇异积分探索

实验内容:考虑积分1

01sin x dx x ?. 实验要求:(1)用MATLAB 函数explot 在11x -≤≤上画被积函数的图像;

(2)用MATLAB 的符号计算工具箱,精确计算该积分;

(3)如果直接用MATLAB 函数quad 和quadl 数值计算该积分有什么问题?如何设法克服?

微分方程是科学与工程计算中最常见的形式之一。微分方程的解也非常复杂,尽管有很多数值方法,但数值方法也常常遇到很多困难,如稳定性、收敛性、计算量和计算速度、刚性等问题。常微分方程初值问题的数值解法又是边值问题偏微分方程数值解的基础。本章重点训练初值问题数值解的各种方法和稳定性等问题。

实验6.1 数值方法的绝对稳定性

通过不同步长的选择体会各种不同方法稳定域的概念。

实验内容:

对于微分方程的初值问题:()'50y x y =-,[0,]x b ∈,()01y =

分别采用向前Euler 法、向后Euler 法、改进Euler 法和经典四级四阶Runge-Kutta 法编程求数值解。

实验要求:(1)步长分别取0.1,0.05,0.025,0.001h =;

(2)区间长度分别取1,10,100b =

(3)与MATLAB 函数ode45和ode23的计算结果以及精确解对比。

实验6.2 求解刚性问题

刚性问题是常微分方程组中的一个“病态问题”,即它反映的是稳定性要求必须小步长,但求解范围是大区间之间的一对矛盾。

实验内容:用改进Euler 方法求解下列微分方程组的初值问题:

11212122

'1000.25999.750.5,1,'999.751000.250.5,1y y y y y y y y =-++=??=-+=-?,050x << 实验要求:

(1)编写改进Eule 解微分方程组的MATLAB 程序,实验得到最小稳定步长;

(2)编写向后Euler 法解此问题的MATLAB 程序,实验得到最小稳定步长;

(3)比较二者效率,并与MATLAB 函数oda15s 求解效率作比较。

实验五 数据库系统设计

实验五数据库系统设计(上机时间6课时) 班级:通信1411 学号:141003410114姓名:李楠 合作成员刘蕾 1.实验目的:理要求学生掌握数据库设计的基本技术。熟悉数据库设计的每个步骤中的任务和实施方法, 并加深对数据库系统概念和特点的理解。 2.实验内容: 学生可根据自己熟悉的信息自选一个小型的数据库应用项目,进行系统分析和数据库设计。例如选择选修课管理系统、学生住宿管理系统、图书管理系统、材料管理系统或仓库管理系统等。 3.实验要求: ●要求起草数据库设计的关键步骤内容,至少包括: ?需求分析:分析用户种类及各自的功能要求;涉及主要数据实体及内容。系统设计的任务及主 要目标等。 ?完成实体建模并画出E-R图 ?起草数据字典 ?描述将关系表规范化至第三范式3NF的过程 ?构建并描述实体与实体关系 ●查阅有关书籍,熟悉MS SQL Server 2005,运用Microsoft SQL Server Management Studio Express在 MS SQL Server 2005上创建数据库。 ●运用Microsoft SQL Server Management Studio Express在MS SQL Server 2005上创建数据库基本表, 得到SQL脚本源码。(可以编写SQL DDL语句脚本源码,然后执行脚本创建基本表;也可以在Studio 中可视化创建基本表然后导出SQL脚本)。SQL脚本源码以文件名EXP5-1.sql存储上传。 ●运用Microsoft SQL Server Management Studio Express在编写SQL脚本,实现需求分析中各种用户需 要的数据库记录添加、记录修改、记录查询功能并将SQL脚本源码以文件名EXP5-2.sql存储上传。 将相应操作结果以文件名EXP5-3.txt存储上传。 ●允许有2人以内的小组合作,组与组之间数据字典、表名、属性名完全雷同视同抄袭;同学之间实 验运行结果完全雷同视同抄袭。 4.实验报告内容: 1.需求分析过程 流程:学生到学生选课系统进行选修课程,查看选修课程的课程信息,选课的老师信息,以及所选的课程号。如果学生要选某个课程,则要查询这门课程的教学老师以及它是否已经被选满;如果学生要查询所选课程的选课成绩,则要查询这门的教学老师;如果学生需要重新选课,则要求先退选所选的课程。 功能:实现学生的选课,重新退订选课,查询课程成绩。 2.E-R图

sqlserver数据库综合实验报告格式

华北科技学院计算机系综合性实验 实验报告 课程名称数据库原理与应用 实验学期 2009 至 2010 学年第一学期学生所在系部管理系 年级三年级专业班级商务B071班 学生姓名李荣妹学号 4121 任课教师郭红 实验成绩 计算机系制

《数据库原理与应用》课程综合性实验报告

(3)建表如下图: 图书表的结构 读者表的结构罚款表的结构 借阅表的结构密码表的结构 输入数据:图书 读者 S只学生,t指老师,1指没有超期,0表示超期 借阅 罚款

密码: (4)、创建视图。以sa的身份登录数据库,创建视图V1,V2,V3 create VIEW V1 create VIEW V2 create VIEW V3 AS AS AS select * from 图书 select * from 借阅 select * from 罚款 建立视图V5,查看在库的图书:create view V5 as select *from 图书 where 借阅状态=‘在库’ 建立已被借出去的图书视图 create view V6 as

select * from 图书 where 借阅状态='出库' 建立逾期未还的图书的学生视图: create view V7 as select * from 借阅 where datediff(day,convert(smalldatetime,借出日期),getdate())>’30’ and 借书证号 in(select 借书证号 from 读者,借阅 Where 借阅.借书证号=读者.借书证号 and 读者类别=‘s’ 四、物理设计和自定义完整性 建立索引:为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是表中建立索引的表项: 图书表(图书编号,条形码号)读者(借书证号)借阅(借书证号,条形码号)罚款表(借书证号,条形码号)密码(借书证号) (2)建立触发器 a.对已有借书证的读者进行查询借书是否超期(这里归定30天): create trigger T1 on 读者 for insert as select 借阅.借书证号,读者.读者姓名,图书.图书编号,图书.书名,借阅.借出日期 from 读者,借阅,图书 where 读者.借书证号=借阅.借书证号 and 图书.条形码号=借阅.条形码号 and 读者类别='s' and Datediff(day,convert(smalldatetime,借出日期),getdate())>=30 b.建立触发器T2(还书时): create trigger T2 on 借阅 for insert as begin update 图书 set 借阅状态='在库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 归还日期=getdate(); update 读者 set 书数=书数-1 where 借书证号=(select 借书证号 from inserted) end c.建立触发器T3(借书书时): create trigger T3 on 借阅 for insert as begin update 图书 set 借阅状态='入库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 借出日期=getdate(); update 读者 set 书数=书数+1 where 借书证号=(select 借书证号 from inserted) end d.建立触发器T4,实现超出借书数目时禁借(针对老师的): create trigger T4 on 读者 for insert

数值分析实验报告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 姓名:万轩 实验二插值法

数值分析实验报告176453

实验报告 插值法 数学实验室 数值逼近 算法设计 级 ____________________________ 号 ____________________________ 名 _____________________________ 实验项目名称 实验室 所属课程名称 实验类型 实验日期

实验概述: 【实验目的及要求】 本次实验的目的是熟练《数值分析》第二章“插值法”的相关内容,掌握三种插 多项式插值,三次样条插值,拉格朗日插值,并比较三种插值方法的 优劣。 本次试验要求编写牛顿多项式插值,三次样条插值,拉格朗日插值的程序编码,并 去实现。 【实验原理】 《数值分析》第二章“插值法”的相关内容,包括:牛顿多项式插值,三次样条插值, 拉格朗日 插值的相应算法和相关性质。 【实验环境】(使用的软硬件) 软件: MATLAB 2012a 硬件: 电脑型号:联想 Lenovo 昭阳E46A 笔记本电脑 操作系统: Win dows 8专业版 处理器:In tel ( R Core ( TM i3 CPU M 350 @2.27GHz 2.27GHz 实验内容: 【实验方案设计】 第一步,将书上关于三种插值方法的内容转化成程序语言,用 MATLA B 现; 第二步,分别用牛顿多项式插值,三次样条插值,拉格朗日插值求解不同的问题。 【实验过程】(实验步骤、记录、数据、分析) 实验的主要步骤是:首先分析问题,根据分析设计 MATLA 程序,利用程序算出 问题答案,分析所得答案结果,再得出最后结论。 实验一: 已知函数在下列各点的值为 试用4次牛顿插值多项式 P 4( x )及三次样条函数 S ( x )(自然边界条件)对数据进行插值。 用图给出{( X i , y i ), X i =0.2+0.08i , i=0 , 1, 11, 10 } , P 4 ( x )及 S ( x )。 值方法:牛顿 在MATLAB 件中

《数据库系统设计与开发》模拟实习教学大纲

《数据库系统设计与开发》 模拟实习教学大纲 (Database System Design and Development) 制定单位:工学院计算机科学与技术系 制定人:课程组 编写时间:2016年01月06日

第一部分课程概述 一、基本信息 (一)课程代码 课程代码:07110640 (二)课程属性、学分、学时 计算机专业的专业模拟实习、独立实验、2学分、40学时 (三)适用对象 本课程适用的对象为计算机科学与技术专业的本科生 (四)先修课程与知识准备 《C/C++程序设计》,《数据库原理》,《.Net编程》,《软件工程》 二、实验简介 《数据库系统设计与开发》模拟实习以数据库应用系统的设计与开发为主要目标,结合本专业的多门专业课程:《程序设计》、《数据结构》、《数据库原理》、《面向对象程序设计》、《.Net编程》、《软件工程》等开展专业模拟实习。《数据库系统设计与开发》模拟实习将针对一个现有的数据库应用领域,遵照《软件工程》课程中的生命周期法和软件开发规范进行系统分析与设计,按照《数据库原理》中的关系规范化理论进行数据库的模式设计,并结合《.Net编程》所学基于C#语言及.Net集成开发环境进行系统编码与调试,完成一个小型数据库应用系统的开发任务。最后,通过提交实习报告,提高学生科技论文的撰写能力。通过这一完整的实践教学过程,将进一步加强学生实践和动手能力的培养,真正理解和掌握数据库系统设计和开发的方法,提高学习效果,使学生可以学以致用,成为具有专业技能并有一定实际经验的人才。

三、实验项目 实验一:系统需求分析(4学时) (一)实习(实验)类型 综合性实验。 (二)实习(实验)目的和要求 1.理解需求分析在软件工程应用中的重要性 2.熟悉数据库建模的方法 3.掌握如何将客户的实际需求转化为描述性设计语言 (三)实习(实验)内容 为将要开发的系统作出一份明确、详细的需求分析报告。需求分析报告至少应该包含以下几部分: 1.系统的名称; 2.系统概述; 3.系统要实现哪些功能,每个功能的具体描述。 (四)实习(实验)地点 竞秀楼或竞慧楼机房 实验二:系统设计(4学时) (一)实习(实验)类型 综合性实验。 (二)实习(实验)目的和要求 1.掌握SQL Server数据库管理软件的使用,学习CASE工具(Visio或SA2001)的使用,用信息系统开发工具(例如VS2008)设计一个实用的中小型管理信息系统2.掌握系统设计的基本方法,提高解决实际问题、开发信息系统的实践能力 (三)实习(实验)内容 用信息系统开发工具(例如VS2008)设计一个实用的中小型管理信息系统。 1.根据实验时间选择适当规模大小的设计课题 2.根据合理的进度安排,按照软件工程系统开发的流程及方法,进行实验 3.实验过程中,根据选题的具体需求,在开发各环节中撰写相关的技术文档,最后要

数据库原理及应用综合实验模版

数据库综合实验 题目:图书借阅管理系统 专业:计算机类班级: 姓名:学号: 指导教师:杨柯成绩: 完成日期:2016 年6月18 日

1.系统需求分析 图书借阅管理系统的具体要求如下所述: (1)图书信息的录入:要求能够将图书信息录入到数据库中。 (2)图书信息的修改:根据需要修改、删除图书信息。 (3)用户登录:根据用户权限登录此系统。 (4)系统用户管理:要求可以管理系统的用户,包括添加、修改和删除用户。 (5)借阅证件信息录入:可以输入不同类型的借阅者信息,并根据需要修改、删除借阅证信息。 (6)借阅证管理:包括借阅证丢失、过期等管理。 (7)借阅管理:包括借书、还书、过期还书与书籍丢失处罚等管理。 2.系统功能设计 图书借阅管理系统的功能基本结构图如图1所示: 图1 图书借阅管理系统功能结构图 (1)用户管理模块:主要用于录入用户的信息,显示用户名及类型,包括添加用户、删除用户、修改用户等功能。用户类型的设置使得只有超级用户才有权限访问此界面。 (2)重新登录模块:用于其他用户重新登录。 (3)图书分类管理模块:将图书分为二级分类进行管理,包括添加、删除、修改图书分

类等功能。 (4)图书基本信息管理模块:根据图书分类录入图书信息,对图书信息进行管理,其基本功能包括添加、删除、修改图书信息。 (5)借阅证件类型管理模块:用于管理借阅证件类型,根据借阅证件类型确定借阅图书的时间、续借时间、借阅图书的数目等,包括添加、删除、修改借阅证件类型信息等基本功能。 (6)借阅证件管理模块:根据借阅证件状态(有效、过期、挂失等)与证件类型对借阅证件信息进行管理,确定借阅者的单位、身份、借书天数、借书数目等信息,包括添加、删除、修改借阅证件信息等基本功能。 (7)图书借阅管理:为系统核心部分,他根据图书借阅状态(借阅、续借、过期)来管理图书的借阅操作,包括借阅、续借、归还、丢失图书等操作功能。 3.数据库概念结构设计 根据系统需求分析和功能设计,可以将数据规划为以下实体:图书实体、读者实体、借阅实体。它们之间的关系如图2所示: 图2 图书借阅管理系统E-R图 4.数据库逻辑结构设计 根据功能设计和E-R图,设计6个数据表如下: 表1 BookType 图书分类信息表

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 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 =可得到

数据库系统设计实验报告

数据库系统设计实验报告 ――教务管理系统 学院:计算机科学与技术 专业:软件工程 班级: 学号: 姓名: 指导老师:

一、概述 项目背景:数据库课程设计 系统名称:教务管理系统 开发环境:SQL Server 2008 二、需求分析 1、系统的概述 ?一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或 者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身 份证号、入学时间等属性。 ?每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这 个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置 有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都 有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言, 虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课 程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机 学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相 同的。 ?教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容 根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2 学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程 安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点 (理工楼234),有的课程是单周上,有的双周,也有是每周都上的。 ?在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择 的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能 给任何学生选择了。 ?学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户 名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多 个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考 试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。 ?为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而 是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成 绩表中。

数值计算实验报告

(此文档为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);

数值分析实验一

数值分析 实验一 一、实验目的 熟悉MATLAB 编程。 学习线性方程组数值解法的程序设计算法。 二、实验题目 1.给定线性方程组 (a )用LU 分解和列主元消去法求解。输出A=LU 的分解的L 和U ,detA 以及解向量x 。 (b )将2.099999改为2.1,5.900001改为5.9.用列主元消去法求解。输出detA 及解向量 x ,并与(a )的结果比较。 2。线性方程组Ax=b 的A 及b 为 10 7 8 9 32 7 5 6 5 23 A= 8 6 10 9 b= 33 7 5 9 10 31 则解x=(1,1,1,1)T 用MATLAB 内部函数求detA 及A 的所有特征值和cond (A )2。若令 ????????????=????????????????????????----15900001.582012151526099999.2310 7104321x x x x

10 7 8.1 7.2 A+δA= 7.08 5.04 6 5 8 5.98 9.89 9 6.99 5 9 9.98 求解(A+δA )(x+δx )=b,输出向量δx 和2 从理论结果和实际计算两方面分析线性方程组Ax=b 解的相对误差2 及A 的相对误差2 的关系。 三、实验原理与理论基础 1.本题用LU 分解法及列主元高斯消去法 LU 分解法原理: 解Ax=b 相当于解两个三角方程,即 Ly=b,Ux=y 分解求出x 和y 。 列主元消去法原理: 利用逐次消去未知数的方法,把线性方程组 Ax=b 化为与其等价的三角形线性方程组,求解线性方程组的方法可用回代的方法求。 2.本题通过 计算式: ) ()()(min max 2122T T AA A A A A A cond λλ==- 来计算A 的谱子条件数。 四、实验内容 1.解: (a )LU 分解法: 程序如下: function [ x ] = zhijiejiefangcheng( A,b )

数值分析实验报告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: 1. 实验项目的性质和任务 通过上机实验,使学生对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。 2.教学内容和要求 1)对高阶多多项式 20 1()(1)(2)(20)()k p x x x x x k ==---=-∏ 编程求下面方程的解 19()0p x x ε+= 并绘图演示方程的解与扰动量ε的关系。(实验) 2)对2~20n =,生成对应的Hilbert 矩阵,计算矩阵的条件数;通过先确定解获得常向量b 的方法,确定方程组 n H x b = 最后,用矩阵分解方法求解方程组,并分析计算结果。(第三章,实验题4) 3)对函数 2 1()[1,1]125f x x x =∈-+ 的Chebyshev 点 (21)cos( ) 1,2,...,12(1) k k x k n n π -==++ 编程进行Lagrange 插值,并分析插值结果。(第四章 实验1)

项目涉及核心知识点 病态方程求解、矩阵分解和方程组求解、Lagrange插值。 重点与难点 算法设计和matlab编程。 1)a.实验方案: 先创建一个20*50的零矩阵X,然后利用Matlab中的roots()和poly()函数将50个不同的ess扰动值所产生的50个解向量分别存入X矩阵中。然后再将ess向量分别和X的20个行向量绘图。即可直观的看出充分小的扰动值会产生非常大的偏差。即证明了这个问题的病态性。 b.编写程序: >> X=zeros(20,50); >> ve=zeros(1,21); >> ess=linspace(0,,50);k=1; >> while k<=50 ve(2)=ess(k); X(1:20,k)=roots(poly(1:20)+ve); k=k+1; end >> m=1; >> while m<=20 figure(m),plot(ess,X(m,:));

数据库实验6数据库系统设计

实验报告 学院:计信学院专业:网络工程班级:091 姓名学号实验组实验时间2012-6-1 指导教师成绩实验项目名称实验六:数据库系统设计实 验目的 要求掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方法,并加深对数据库系统概念和特点的理解。 实 验 要 求 本实验属于设计型实验,通过实验,加强对课堂讲授知识的理解。 实验原理 必须按照数据库设计的四个阶段进行:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。概念模型设计时采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上地设计概念结构,和自底向上的设计方法;概念模型必须用E-R图进行表示。在逻辑设计阶段,将E-R图转换成关系模式,然后进行关系模式的规范化。在物理设计阶段,将关系模式转化成SQL Server中的具体的数据库表,并建立表间的关系,表的索引,及相关的约束。 实 验仪器(1)硬件条件:个人计算机。 (2)软件条件:Windows 2000NT Server; MS SQL Server 2000。 实验步骤1、完成系统需求分析报告 在系统需求分析报告中包括采用的设计方法、数据流图和数据字典。 2、完成数据库信息要求和关系数据模型设计 使用E-R图表示对数据库中要存储的信息及语义进行详细描述,对数据约束和数据之间的关联进行

详细描述。详细描述系统需要的基本表及属性、视图和索引,对基本表的主码、候选码、外码及被参照表进行说明,对基本表中数据的约束条件进行说明。 3、完成数据库的操作和应用要求报告 在数据库的操作和应用要求报告中,详细描述数据库的数据操作要求、处理方法和处理流程,画出系统功能模块图。 4、在机器上完成整个数据库的设计。 实 验内容 要求根据周围的实际情况,自选一个自己熟悉的小型数据库应用项目,并深入到应用项目的现实世界中,进行系统分析和数据库设计。例如选择学籍管理系统、图书管理系统、材料管理系统或仓库管理系统等。 实验数据我设计的是车站售票管理系统,主要用于车站日常的票务处理。 一、需求分析 车站售票管理系统 员工 管理 模块 汽车 管理 模块 线路 管理 模块 车票 管理 模块 票务 信息 管理 模块 员 工 信 息 添 加 员 工 信 息 删 除 员 工 信 息 修 改 汽 车 信 息 添 加 汽 车 信 息 修 改 汽 车 信 息 删 除 线 路 信 息 添 加 线 路 信 息 修 改 线 路 信 息 删 除 添 加 车 票 删 除 车 票 查 询 车 票 信 息 购 买 / 预 订 车 票员 工 信 息 查 询 汽 车 信 息 查 询 线 路 信 息 查 询 车 票 信 息 查 询 功能模块图 1.员工管理模块: 员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。 2.线路信息管理模块:

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 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);

综合实验数值计算

数学与统计学院 数 学 综 合 实 验 报 告 班级:2013级数学三班姓名:康萍

数 值 计 算 一、实验目的 本实验通过介绍Mathmatca 的数值计算功能,它的特点是准确计算与数值计算相结合,能够通过可选参数提高计算精度,学习包括数据的拟合及插值、数值积分与方程的近似解、极值问题、最优化与数理统计方面的内容。 二、实验环境 基于Windows 环境下的Mathematica7.0软件与Mathematica9.0软件。 三、实验的基本理论和方法 1、 Mathmatica 提供了进行数据拟合的函数: Fit[data,funs,vars] 对数据data 用最小二乘法求函数表funs 中各函数的一个线性组合作为所求的近似解析式,其中vars 是自变量或自变量的表。 Fit[data, { }x ,1, x ] 求形如bx a y +=的近似函数式。 Fit[data, { }2,,1x x , x ] 求形如2cx bx a y ++=的近似函数式。 Fit[data, { }xy y x ,,,1, {}y x ,] 求形如dxy cy bx a y +++=的近似函数式。 2、 函数InterpolatingPolynomial 求一个多项式,使给定的数据是准确的函数值,其调用格式如下: InterpolatingPolynomial[{ ,,21f f },x] 当自变量为1,2,…时的函数值为 ,,21f f 。 InterpolatingPolynomial[{ ),,(),,(2211f x f x },x] 当自变量为i x 时的函数值为i f InterpolatingPolynomial[{}}},,,,{,{1111 ddf df f x ,x] 规定点i x 处的函数值。 3、 求定积分的数值解有两种方法: 使用N[Integrate[f,{x,a,b}],n]或使用NIntegrate[f,{x,a,b}]前者首先试图求符号

数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告 班级:计科*** 班 学号: **** 姓名: *** 2011年12月

数据库应用系统的初步开发 一、实验类别:综合型实验 二、实验目的 1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案,并加深对数据库系统系统概念和特点的理解。 2.初步掌握基于C/S 的数据库应用系统分析、设计和实现方法。 3.进一步提高学生的知识综合运用能力。 三、实验内容 在SQL Server2000数据库管理系统上,利用 Microsoft Visual C++ 6.0开发工具开发一个学生成绩管理系统的数据库应用系统。 四、实验过程 (一.)系统需求说明 1 系统功能要求设计:此系统实现如下系统功能: (1)使得学生的成绩管理工作更加清晰、条理化、自动化。 (2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。 (3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。 2 系统模块设计 成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图: 登陆失败 退出系统 用户 验证 登陆成功

3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下: 数据库中用到的表: 数据库表名关系模式名称备注 Student 学生学生学籍信息表 Course 课程课程基本信息表 Score 成绩选课成绩信息表 Student基本情况数据表,结构如下: 字段名字段类型Not Null 说明 Student _sno Char Primary key 学号 Student _sn char Not Null 学生姓名 Student _sex char ‘男’或‘女’性别 Student _dept char 系别 Student_age char 年龄 Student_address char 地址 course数据表,结构如下: 字段名字段类型约束控制说明 course_cno char 主键(primary key)课程号 char not null 课程名称course_cnam e course_hour int not null 课时 course_score numeric(2,1) not null 学分 score情况数据表,结构如下: 字段名字段类型约束控制说明 score_id int not null 成绩记录号 course_cno char 外部键课程号 student_sno char 外部键学号 score int 成绩 (二)数据库结构设计 1.概念结构设计 由需求分析的结果可知,本系统设计的实体包括: (1)学生基本信息:学号,姓名,性别,地址,年龄,专业。 (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);

数值分析实验报告

学生实验报告实验课程名称 开课实验室 学院年级专业班 学生姓名学号 开课时间至学年学期

if(A(m,k)~=0) if(m~=k) A([k m],:)=A([m k],:); %换行 end A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c); %消去end end x=zeros(length(b),1); %回代求解 x(n)=A(n,c)/A(n,n); for k=n-1:-1:1 x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k); end y=x; format short;%设置为默认格式显示,显示5位 (2)建立MATLAB界面 利用MA TLAB的GUI建立如下界面求解线性方程组: 详见程序。 五、计算实例、数据、结果、分析 下面我们对以上的结果进行测试,求解:

? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - - 7 2 5 10 13 9 14 4 4 3 2 1 13 12 4 3 3 10 2 4 3 2 1 x x x x 输入数据后点击和,得到如下结果: 更改以上数据进行测试,求解如下方程组: 1 2 3 4 43211 34321 23431 12341 x x x x ?? ???? ?? ???? ?? ???? = ?? ???? - ?? ???? - ???? ?? 得到如下结果:

相关文档
最新文档