资源预览内容
第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
第9页 / 共35页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
. . . 学 号:课 程 设 计题 目Dijkstra算法的MATLAB实现学 院信息工程学院专 业通信工程班 级姓 名指导教师2012年1月9日课程设计任务书 学生: 专业班级: 通信 0901班 指导教师: 工作单位: 信息工程学院 题 目: Dijkstra算法的MATLAB实现初始条件:(1)MATLAB应用软件的基本知识以与基本操作技能(2)高等数学、线性代数等基础数学中的运算知识(3)数据结构里面关于Dijkstra算法的基本原理和思想要求完成的主要任务: 必做题:采用MATLAB选用适当的函数或矩阵进行如下计算(1)极限的计算、微分的计算、积分的计算、级数的计算、求解代数方程、求解常微分方程;(2)矩阵的最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算;(3)多项式加减乘除运算、多项式求导、求根和求值运算、多项式的部分分式展开、多项式的拟合、插值运算。选做题:Dijkstra算法的MATLAB实现时间安排:第一周,安排任务 地点:鉴主17楼实验室第1-17,周仿真设计 地点:鉴主13楼计算机实验室第18周,完成答辩,提交报告 地点:鉴主17楼实验室指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 / 目录摘要IAbstractII1 MATLAB的基本运算11.1 基础微积分计算11.1.1 极限的基本运算11.1.2 微分的计算11.1.3 积分的计算21.1.4 级数的运算31.1.5 求解代数微分方程31.1.6 求解常微分方程41.2 矩阵的基本运算51.2.1 矩阵的最大最小值51.2.2 矩阵的均值方差61.2.3 矩阵的转置和逆71.2.4 矩阵的行列式71.2.5 矩阵特征值的计算81.2.6 矩阵的相乘81.2.7 矩阵的右除和左除91.2.8 矩阵的幂运算91.3 多项式的基本运算101.3.1 多项式的四则运算101.3.2 多项式的求导、求根、求值运算111.3.3 多项式的部分分式展开121.3.4 多项式的拟合131.3.5 多项式的插值运算142关于Dijkstra的问题描述152.1问题的提出152.2 Dijkstra算法的算法思想152.3 Dijkstra算法的算法原理153 Dijkstra算法的设计分析173.1 Dijkstra算法部分的设计分析173.2 程序主体的设计分析174程序源代码与算法思想194.1 文件isIn.m的源代码194.2 文件default_dat.m的源代码194.3 文件input_dat.m的源代码194.4 文件menu.m的源代码204.5 文件dijkstra.m的源代码225 测试报告276 心得体会307 参考文献31摘要MATLAB的功能十分强大,在本篇中,主要分别介绍了MATLAB在高等数学中微机分的一些基本运算,线性代数中矩阵的一些基本计算以与多项式中的计算,采用具体举例,然后根据具体的例子建模,然后编写m文件,然后实际调试运行来得出结果的方式来整理报告。在报告中为了计算的方便,在矩阵那一方面,我采用事先定义的方式,便于以后计算直接提取。在多项式那一大块我也是采用这种方式。还有文中有些运算需要通过画出图形来显示运算的效果,我也适当的画了图形来显示。 此外,本篇还对Dijkstra算法用MATLAB来实现,分析了Dijkstra算法的基本思想,设计思想,以与怎么样用MATLAB来进行实现。并且对实现的结果进行了分析。关键字:基本运算、MATLAB、Dijkstra算法AbstractThe function of MATLAB is very strong.The main difference I have introduced in advanced mathematics MATLAB computer points in some of the basic operations, linear algebra .Some basic calculations in the matrix and the calculation of the polynomial, using concrete examples, and then the specific .Examples of modeling, then write m file, and then to thecommissioning way to organize the findings reported .In order to calculate the convenience of the report, in the matrix that one, I used the pre-defined way, to facilitate .After the calculation of direct extraction. Polynomial which is large in this way I am. There are sometext.Operations need to draw a graph to show the effect of computing, I also painted the appropriate graphics to display.In addition,the main essay I have introduced used MATLAB to enforce the Dijkstra arithmetic,analysis the basic thoughts,design thoughts of the Dijkstra arithmetic and how to use MATLAB to enforce it.Besides,the essay analysis the result of it.Keywords: basic calculations,MATLAB, Dijkstra arithmetic1 MATLAB的基本运算1.1 基础微积分计算微积分的计算在工程应用上有着广泛的应用,可以说微积分的计算是数学的基础,而MATLAB关于这一点有着很好的应用,MATLAB功能强大,对于微积分也有专门的函数来进行运算,关于基础的微机分计算主要有求函数的极限,微分运算,积分运算,级数的计算,代数的求解,以与常微分方程的求解,下面对这些分别进行介绍。1.1.1 极限的基本运算MATLAB中极限函数limit格式如下:limit(F,x,a) ;limit(F,a);limit(F);limit(F,x,a,right);limit(F,x,a,left)其中F表示的是函数式,x表示求极限的变量,a表示的是变量取的值,left或right表示是取左极限还是右极限。例 求 分析:这是一个典型的求极限的题目,题目中涉与了一个变量,先要对其进行定义,然后直接利用函数limit编程计算。示例程序和运行结果如下:1.1.2 微分的计算MATLAB中微分函数diff格式如下:Y = diff(X);Y = diff(X,n);Y = diff(X,n,dim)其中X表示待微分的变量,n表示n次微分,第三式表示沿着定维dim的n阶微分。例 求的导数分析:微分运算能直观的显示函数值的变化快慢,在平时计算中常常反映变量的变化对函数值的影响程序和运行结果如下:1.1.3 积分的计算MATLAB中积分常用函数为int,格式为:int(f,x,a,b)其中f表示待积分的函数,x表示积分变量,而a,b则分别表示积分起始终止点。例 求下列变上限积分分析:积分运算大量运用于求面积体积等,此处选用的是一个变上限积分,属于有些典型的积分例子,但任然是根据函数格式就可以写出程序。程序和运行结果如下:1.1.4 级数的运算MATLAB中级数常用函数为symsum,格式如下:r = symsum(s);r = symsum(s,v);r = symsum(s,a,b);r = symsum(s,v,a,b)函数表达的意义是表达式s关于变量v从a到b求和。例 求级数 的值分析:对于级数我们最先接触的就是常数项无穷级数, 直接用symsum 函数上下限从1到9 即可。程序和运行结果如下:1.1.5 求解代数微分方程代数方程分为很多种,有简单有复杂,方法也有很多。可用MATLAB符号工具箱中的solve( )函数, MATLAB中求解代数方程常用函数solve格式如下:x,=solve(eqn1,eqn2,eqnn,x,)其中eqn表示的是式子,x等表示的是变量。例:求解方程组5x-2=18分析:为了计算的简单,这里选用了基础的一元一次方程,直接用语句描述即可。程序以与运行结果如下:1.1.6 求解常微分方程 常微分方程是指未知的一元函数以与它的某些阶的导数连同自变量都由一已知方程联系在一起的方程。dsolve的基本格式是:s=dsolve(方程1, 方程2,初始条件1,初始条件2,自变量)例:求解微分方程y=2+y,y(0)=0,y(0)=0的解析解分析:求解此微分方程的解析解直接采用dsolve即可。程序和运行结果如下:1.2 矩阵的基本运算矩阵在日常工程应用中也用的十分广泛,矩阵计算是线性代数中的核心容,其对于整个数学系统的计算方面的意义是十分巨大的,集中它的基本运算包括最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算等等,下面将具体介绍。矩阵的运算都是要以矩阵为基础的,本报告中决定选用一组矩阵来完成几乎全部可以完成的计算,那么首先就得生成矩阵了。1.2.1 矩阵的最大最小值MATLAB中max函数可以表示求每一列的最大值,求最小值的函数为min,那么经过分析可以知道,先求出每一列的最大值然后求出这些最大值里面的最大值,最小值也类似,下面以A矩阵为例。程序与运行结果如下:1.2.2 矩阵的均值方差 MATLAB中求解矩阵均值的函数是mean,它的具体用法如下:mean(A,1)表示对列取平均,mean(A,2)表示对行取平均,mean(A)则默认为mean(A,1)。若要求矩阵的均值可以进行两次求平均值,这样就可以得到矩阵的平均值,或者,直接mean(A(:),更加简便。MATLAB中求解矩阵方差的函数是var,它的常用格式是V = var(X),如果X是一个矩阵,var(X)返回一个包含矩阵X每一列方差的行向量。与求均值不同的是,矩阵的方差不
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号