基于数学建模的数学实验(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-20 21:09:11

点击下载

作者:易昆南

出版社:中国铁道出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

基于数学建模的数学实验

基于数学建模的数学实验试读:

前言

计算机的广泛应用和迅速普及,促成了数学向各个领域渗透,也促成了实验数学的诞生。布尔巴基(Bourbaki)学派的核心人物韦依(A.Weil)说:“数学家可以分为理论数学家和实验数学家,费马(Fermat)是理论数学家,而欧拉(Euler)则是实验数学家。”欧拉自己也曾说:“数学这门科学,需要观察,还需要实验。”高斯(Gauss)也曾提到过,他的许多定理都是靠实验、归纳法发现的,证明只是补充的手续。翻开数学史不难看出,许许多多数学结果的发现与获得都受益于数学实验方法。例如,著名数学家Wolf,Smith等均利用数学实验计算过圆周率π值。20世纪以来,由于科学的进步,实验手段有了很大的改变,其中之一便是计算机模拟。曼德勃劳依特(B.Mandelbroit)创立了分形理论,用计算机画出了许多精美绝伦的图案。依赖于计算机的实验,他最终发现许多数学性质,理解了某种数学构造。“四色定理”的计算机证明,以长达1200小时机器运行,实现了人类几百年无法完成的事。可以肯定地说,数学实验是一种科研方法,应用这种方法有利于人类提出猜想,验证定理,纠正谬误;数学实验更是一种技术,这种技术适用于解决大量实际问题,从工程问题到理论问题,从社会科学到生命科学……

与数学实验联系最为紧密的是数学建模竞赛。全国大学生数学建模竞赛开展已有23年了,该竞赛也是全国大学生科技竞赛的最重要、也是影响最大的赛事。编写本书的初衷,一是为方便学生使用MATLAB作为参赛的软件平台;二是为大学生在今后的科研、科技论文或毕业论文写作中提高数学素质。多年参加竞赛指导和MATLAB数学实验课程的教学实践使我常常想,“MATLAB与数学实验”课程教学应与“数学建模”课程教学以及数学建模培训结合起来,并且要做到大学四年不断线(遇到实际问题离不开数学建模和使用MATLAB做实验。解决了问题,本质上就是提高了数学素质)。数学实验的特点是开放性、探究性和实践性,它将数学知识、数学建模与计算机应用三者融为一体。数学实验这种实践性也更使人容易接受。本书从数学实验的角度出发,学习数学建模,通过大量数学建模案例的剖析,让学生了解数学建模需要动手做什么,让学生亲自体验数学建模的感受,体会数学实验和数学建模解决实际问题的无限乐趣。

本书内容共分四篇:第一篇是软件篇,含第1、2章,挑选了实验所需的部分内容,介绍MATLAB语言的基础知识,MATLAB语言极其丰富,考虑到MATLAB作图在实验中的重要性,在介绍MATLAB语言的必备基础知识后,立即展开MATLAB作图与作图相关的插值与拟合。第一篇大约需12~16学时完成。第二篇是基础篇,含第3~8章,以CUMCM、MCM问题为索引,利用所学的数学(主要指高等数学、线性代数、概率论与数理统计)知识,做数学建模的基础实验,使数学的理论、数学建模、计算技术三者能有机地融为一体。第二篇大约需16学时完成。第三篇是趣味篇,含第9、10章,内容涉及艺术、生活、科技等多个学科的建模实验问题,题材广泛,具有一定的实用价值和趣味性。趣味是最好的老师,特别是音乐的合成、MATLAB的动画、小波分析应用的图像处理等实验,独具特色,融入了作者多年教学经验。该篇大约需16学时完成。第四篇是提高篇,含第11章,介绍了数学建模问题中的常见算法,为数学建模竞赛造就编程高手。本书每一章,都是基于数学建模的理念,以问题为载体,按照建立模型、MATLAB编程、结果分析等逐步展开,每章后又附有相应的练习。本书实验安排层次分明,以提高数学建模与动手能力为目的,通俗易懂,易教易学。

本书由中南大学易昆南担任主编,中南大学秦宣云、湖南大学马传秀、长沙理工大学仝青山、中南林业科技大学刘勉声和湖南农业大学王志明担任副主编。

本书受2012年湖南省科技厅软科学项目“数学建模在决策科学化中的应用”(项目号2012ZK3100)与2012年度中南大学精品教材建设项目的资助,在此表示感谢。此外,我的研究生冒霜霜、焦肖红和本科生林文强、陈褒扬、梅菁菁等,还有家人也为本书做了许多工作,在此一并表示感谢。易昆南于长沙2014年4月软件篇第1章MATLAB软件基础§1.1MATLAB发展进程与特点1.1.1 MATLAB发展史

MATLAB取自矩阵(Matrix)和实验室(Laboratory)两个英文单词的前3个字母,意即“矩阵实验室”。与Mathematica、Maple并称为三大数学软件。MATLAB以矩阵作为基本数据单元,提供了数据分析、算法实现与应用开发的交互式开发环境。

MATLAB诞生于20世纪70年代中期,美国新墨西哥大学计算机系系主任Clevel Moler博士及其同事,在其开发的LINPACK和EISPACK的Fortran软件包的基础上,编写了相应的接口程序,并将其命名为MATLAB。1984年,Moler与Jack Little等一起合作创办了MathWorks公司,并着力将软件推向市场,之后MathWorks不断致力于版本更新和软件功能的增强。历经多年发展,目前,MATLAB已成为国际控制界的标准计算软件。

MATLAB分为总包和若干个工具箱,其独具特色的、以矩阵作为基本数据单元的数值计算不仅可以方便地实现数值分析、优化分析、数据处理、自动控制、信号处理等领域的数学计算(包括符号计算),还可以快捷实现关于可视化计算、图形绘制、场景创建和渲染、图像处理、虚拟现实和地图制作等分析处理工作,MATLAB现已经逐步发展成为支持各种学科、多种工作平台的大型软件。在欧美许多高校,MATLAB已成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等课程的基本教学工具,也是攻读学位的本科生、研究生必须掌握的基本技能。在国内,这一软件也正逐步成为一些大学理工科专业学生的重要选修课。1.1.2 MATLAB的特点

1.计算功能强大

MATLAB具有强大的矩阵数值计算功能,可以方便地处理许多特殊矩阵,利用符号和函数可以对矩阵进行线性代数运算(加减乘除、转置和求逆等),适用于大型数值算法的编程实现。工具箱中有许多高性能的数值计算方法,可以解决实际应用中的许多数学问题,尤其是与矩阵计算有关的问题。

2.绘图非常方便

MATLAB具有强大的绘图功能,它有很多绘图函数命令,可以绘制一般的二维或三维图形(如线形图、条形图、饼图、散点图、直方图等),也可以绘制工程特性较强的特殊图形(如玫瑰花图、极坐标图等),通过其可视化功能还可以绘制一些用于数据分析的图形(如矢量图、等值线图、曲面图、切片图等),并且可以生成快照并进行动画制作。使用MATLAB句柄图形对象并结合绘图函数可以绘制自己最为满意的图形,使用时只需调用不同的绘图函数,使得作图简单易行。

3.扩充能力强大

MATLAB通常包含系统本身定义的大量库函数,用户也可以定义自己的函数,以组成自己的工具箱,这样不仅进行数学运算时可以直接调用,而且库函数名称与用户文件保持形式一致,用户可以根据需要方便地建立或扩充库函数,方便地解决本领域内的计算问题。MATLAB提供了与Fortran、C\C++语言及一些应用程序(如:Excel)的接口,利用MATLAB编译器和运行服务器还可以生成独立的可执行程序,使用户可以混合编程,也可以隐藏算法并避免依赖MATLAB平台环境。

4.帮助功能完整

MATLAB采用基于HTML的自述文件,自述文件中不仅介绍了MATLAB语言,还对各种算法的理论基础与算法实现进行了比较详细的说明,并给出了相应的常规实例,帮助功能比较完整,用户使用较为方便。§1.2MATLAB 9工作环境简介1.2.1 MATLAB 9的启动

标准安装执行完毕后,就可以运行该软件。

启动后的对话框大致包括以下几个部分:

● 菜单项;

● 工具栏;

● [Command Window]窗口(指令窗);

● [Workspace]窗口(工作台);

● [Command History]窗口(指令的历史纪录)

● [Current Directory]窗口(当前目录选择)。1.2.2 MATLAB 9目录结构

安装成功后的MATLAB根目录中除了包含一些文件外,还有包含若干子目录,其中,我们最需要了解的是MATLAB搜索目录(路径)。它可以单击[File]菜单中的子菜单[Set Path…]看到。这些目录(路径)同时也是MATLAB所能搜索到的所有目录。无论是MATLAB的lookfor指令、help指令、doc指令还是其他的指令,这些指令如果涉及MATLAB的M文件,均是在上述目录范围内搜索。1.2.3 如何添加进MATLAB目录

用户生成的M文件默认时保存在MATLAB的work目录中(R2009a版本是C:\Documents and Settings\csu0l\My Documents\MATLAB),用户如果想在MATLAB所能搜索范围以外的目录中生成的文件和MATLAB软件包中的M文件一样,成为MATLAB环境中有机的一部分,则可以通过将自己的目录添加进MATLAB的目录搜索范围内来实现。具体做法是在MATLAB主窗口中的[File]菜单中单击子菜单[Set Path…],则会打开[Set Path]窗口,单击[Add Folder…]按钮选中待添加的目录后,再单击[Close]按钮即可。如果想在下一次启动MATLAB程序时该设置仍然生效,则在单击[Close]之前单击[Save]按钮保存。§1.3MATLAB矩阵及数组

MATLAB的主要对象是矩阵,标量、数组、行向量、列向量都是它的特例,最基本的功能是进行矩阵运算,MATLAB对于矩阵和数组的操作有一些特殊的规定。1.3.1 问题的提出

问题: 写出循环矩阵(1)循环矩阵的逆矩阵还是循环矩阵吗?(2)循环矩阵的方幂仍是循环矩阵吗?1.3.2 矩阵的输入

矩阵输入有多种办法:直接输入每个元素;由语句或函数生成;在M文件(以后介绍)中生成等。

1.矩阵的直接输入

MATLAB中不用描述矩阵的类型和维数,它们由输入的格式和内容决定。小矩阵可以用排列各个元素的方法输入,同一行元素用逗号或空格分开,不同行的元素用分号或回车分开。如:都输入了一个2×3矩阵A,屏幕上显示输出变量为分号“;”有三个作用:(1)在“[ ]”方括号内时它是矩阵行间的分隔符。(2)它可用作指令与指令间的分隔符。(3)当它存在于赋值指令后时,该指令执行后的结果将不显示在屏幕上。

例如,输入指令:

矩阵b将不被显示,但b已存放在MATLAB的工作内存中,可随时被以后的指令所调用或显示。例如,输入指令:

得结果:

矩阵中的元素可以用它的行、列数表示,例如(以下在回车符后直接给出屏幕上显示的输出)

或者不指定输出变量,MATLAB将回应ans(answer的缩写),如

A输入后一直保存在工作空间中,可随时调用,除非被清除或替代。

例1.3.1  在0和2中间每个数据隔0.1建立数组d。

解  输入指令:

注意“:”的使用方法。

例1.3.2  在0和2之间等分地插入一些分点,建立具有10个数据点的数组e。

解  输入指令:

linspace(a,b,n)将建立从a到b有n个数据点的数组。

2.矩阵元素的修改

可以直接修改矩阵的元素,如:

原来的A没有第3行和第4列,MATLAB自动增加行列数,对未输入的元素赋值0。

3.函数生成的矩阵

MATLAB为方便编程和运算,提供了一些常用矩阵的生成指令:

还有m×n标准正态分布矩阵randn(m,n),n阶Hilbert矩阵hilb(n),n阶幻方矩阵magic(n)等。1.3.3 矩阵的裁剪与拼接

1.裁剪

从一个矩阵中取出若干行(列)构成新矩阵称为 裁剪 ,MATLAB中“:”是非常重要的裁剪工具,如:

2.矩阵的拼接与调用

与任何计算机语言一样,MATLAB用矩阵的名称调用全矩阵,用下标的方法调用矩阵的某个元素。一个重要特点是,MATLAB可以调用矩阵的子矩阵。

假如A是一个已知的10×10的方阵,那么:

A(:,3)是A的第3列元素构成的列向量;

A(5,:)是A的第5行元素构成的行向量;

A(1:5,3)是A的前5行的第3列元素构成的行向量;

A(1:5,7:10)是A的前5行,第7到10列元素构成的子矩阵:

A([1 3 5],[2 4 6])是A的第1、3、5行,第2、4、6列元素构成的子矩阵;

A(:,7:-1:3)是A的第7、6、5、4、3列元素构成的子矩阵。

语句x=[]使得x为空矩阵,它可以用于对矩阵进行删除。例如:A(:,[2 4])=[ ]用于把矩阵A的第2、4列删除,形成A的一个子矩阵。1.3.4 矩阵的运算

1.矩阵的转置

矩阵的转置用符号“′”表示,A′是A的转置。如果A是复数矩阵,那么A′是A的复共扼转置。

例1.3.3  矩阵的转置举例。

2.矩阵的四则运算

1)矩阵相加减

同阶矩阵相加减时,对应的元素相加减,用符号“+”和“-”表示。任何矩阵都可以和标量相加减,其规则是矩阵的每个元素和标量相加减。

2)矩阵相乘

矩阵相乘用符号“*”表示,两个矩阵相乘以及标量和矩阵相乘,遵循通常的数学规则。向量的内积用矩阵的乘法来实现。

3)矩阵相除

分右除和左除两种,分别用符号“/”和“\”表示。例如,如果-1-1A和B都是n阶方阵,并且A非奇异,那么A\B=A B,B/A=BA 。一般来说两者不相等,但是右除可以通过左除来实现,因为有B/A=(A′\B′)′。

3.矩阵的乘方

方阵A的乘方用符号“^”表示。P

当p是正整数时,A^p是A的p次幂,即:A^p=A ;

当p为0时,A^0是单位矩阵;-1

当p为负数时,只有当A非奇异才有意义,例如:A^(-1)=A ,-2A^(-2)=A 。

当p不是整数时,方阵的乘方运算涉及矩阵的特征值和特征向量,有兴趣的读者可以查阅相关资料。

4.矩阵的超越函数

超越函数sin()、exp()、sqrt()可以用在方阵上,它的规则是对方阵的每个元素取超越函数值。

例1.3.4  矩阵的超越函数示例。1.3.5 数组的运算

数组可以看成特殊矩阵,即1行n列的矩阵,矩阵运算的指令和含意同样适用于数组运算。如果在运算符前加“.”,含意将有所不同。

例1.3.5  数组运算举例。1.3.6 矩阵的翻转

左右翻转:  fliplr(A)

上下翻转:  flipud(A)

旋转90°:  rot90(A)1.3.7 矩阵的秩

指令rank(A)将给出矩阵A的秩。

例1.3.6  矩阵的秩示例。1.3.8 方阵的行列式

指令det(A)给出方阵A的行列式。

例1.3.7  方阵的行列式示例。

运行结果略。你能解释上例中的运算结果吗?在这里实际上验证了行列式的性质。1.3.9 逆矩阵

指令inv(A)给出方阵A的逆矩阵,如果A不可逆,则inv(A)给出的矩阵的元素都是Inf。

例1.3.8  设,求A的逆矩阵。

解  输入指令:

运行li1_3_8a.m即得:

还可以用伴随矩阵求逆矩阵,打开m文件编辑器,建立一个名为li1_3_8b的M文件,其内容为:

利用该函数可以求出一个矩阵的伴随矩阵。

在命令窗口输入:

即得:

利用初等变换也可以求出逆矩阵,构造n行2n列的矩阵(A E),并进行行初等变换,当把A变为单位矩阵时,E就变成了A的逆矩阵。利用MATLAB命令rref可以求出矩阵的行简化阶梯形。编制如下程序:

运行li1_3_8c.m即得:

例1.3.9  回答问题1提出的问题(循环矩阵的性质):(1)循环矩阵的逆矩阵还是循环矩阵吗?(2)循环矩阵的方幂仍是循环矩阵吗?

解  (1)A=[1 2 3 4 5;5 1 2 3 4;4 5 1 2 3;3 4 5 1 2;2 3 4 5 1];

inv(A)结果为:

结论:可逆循环矩阵还是循环矩阵。(2)在命令窗口执行A^2,即得:

结论:循环矩阵的方幂是循环矩阵。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载