数学实验-matlab软件简介.ppt
数学实验1,数学实验的背景课程的基本要求MATLAB 软件简介,MATLAB 软件简介,数学实验以数学软件为平台,用计算机解决数学问题和实际问题.思考问题的本质,探索求解的方法,计算机技术的发展已经对人类社会的全部生活产生了十分巨大的影响。计算机技术的发展也使计算数学的发展日新月异,新的分支不断涌现,例如计算模拟、计算力学、计算物理、计算化学、计算几何、计算数论及计算概率等相继诞生,特别是2000多年前早已有的算法的概念,由于计算机的发展,又引起了人们极大的兴趣,对许多,同类问题开发了很多计算机算法。人们选择算法,不仅要解决问题,而且还要选择符合要求的几种算法中“最佳”的一个,有些算法虽节省了运行时间,但可能浪费了内存空间,或者是反过来的情况,这就需要找出一个或多个参数有关的最优的或至少是最有效的算法。,再一就是数学的应用范围急剧扩展。时至今日,计算机的高速计算使得许多过去无法求解的问题成为可能,大量新兴的数学方法正在被有效地采用,,数学的应用范围急剧扩大。由于计算机具有处理大量信息的功能,所以定量分析的技术已经渗透到一切学科领域。,由于计算机科学技术的发展,相当一部分数学方法已经被软件化(或算法化),成为“数学技术”。科学家用数学技术研究数学问题(探索、猜想、求解、验证),解决实际应用问题(建立模型、求数值解、进行计算机模拟),逐步形成了数学科学中一个新的极具生命力的分之数学实验,数学模型数学建模数学实验数学实验方法猜想验证纠正发现数学实验技术解决实际问题的数学技术数学学习辅助手段对数学概念、定理、命 题进行多方位的演示或验证,在信息技术环境中 获取更充分的知识信息 为“数学建模”、“数值分析”和电子信息类专业课 奠定良好编程基础,数学实验的背景和目标,了解数学实验内容与相关学科 典型案例、技术发展现状以及应用领域掌握MATLAB的基本使用方法 熟悉常用命令、常用函数和常用语句掌握MATLAB的程序设计方法 以问题为主线,设计算法、编写程序、调试程序并在实验中不断完善 预习收集资料,了解实验内容,实验分析不同结果,写出实验报告,课程的基本要求,1.抛射曲线的数学实验2.飞行航程计算实验3.探月卫星速度计算实验4.昆虫繁殖问题实验5.蒙特卡罗方法实验,五个实验报告,MATLAB是 Math Works公司于1982 年推出的一套高性能的数值计算和可视化软件 MATLAB的含义是矩阵实验室(Matrix Laboratory),最初主要用于方便矩阵的 存取,经过十几年的完整和扩充,现已发展为线性代数课程的标准工具,也成为其它许多领域课程的实用工具。在工业环境,MATLAB可用在实际的工程和数学问题,其典型应用有:数值计算,算法设计 各种学科如自动控制;数字信号处理;统计信号处理等领域的专门问题求解。,MATLAB简介,MATLAB 软件简介,主要功能1、数值计算功能MATLAB作为世界顶尖的数学应用软件,其出色的数值计算能力是使之优于其他数值计算软件的决定性因素之一。,2、符号计算功能数学计算有数值计算和符号计算之分,仅有优异的数值计算功能并不能满足解决数学计算问题时的需要。在数学、应用科学和工程计算领域,常常会遇到符号计算问题。,3、数据分析和可视化功能在科学计算和研究工作中,技术人员经常会遇到大量的原始数据,而对数据的分析往往难于入手,如果能将这些数据以图形的方式显示出来,不仅使数据间的关系清晰明了,而且对于揭示其内在本质往往有着非常重要的作用。,例:用简短命令计算并绘制在0 x 6范围内的 sin(x)、sin(2x)的图形,x=0:0.1:6;y1=sin(x);y2=sin(2*x);plot(x,y1,x,y2),例、马鞍面 z=xy 图形,r=1:20;tha=(0:72)*pi/36;x=r*cos(tha);y=r*sin(tha);z=x.*ysurf(x,y,z),4、文字处理功能MATLAB Notebook 为用户提供了强大的文字处理功能。MATLAB Notebook 允许用户从一个文字处理程序(Microsoft Word)访问MATLAB 的数值计算和可视化结果。,通过使用MATLAB Notebook,用户可以方便地创建包括含文本、MATLAB 命令及使用MATLAB 得到的结果的文档。,通常情况下,MATLAB Notebook 用于创建:(1)MATLAB 程序文档;,(2)、有关MATLAB 的教科书;(3)、MATLAB 手册;(4)、MATLAB 技术报告;(5)、MATLAB 注释文档。,5、SIMULINK动态仿真功能SIMULINK是MATLAB 为模拟动态系统而提供的一个交互式程序。SIMULINK允许用户在屏幕上绘制框图来模拟一个系统,并能够动态地控制该系统。SIMULINK采用鼠标驱动方式,能够处理线性、非线性、连续、离散等多种系统。,MATLAB具有非常强大的计算功能,它现在已成为世界上应用最广泛的工程计算应用软件之一。与其它程序设计语言相比,MATLAB易学、易用、编程简单、界面友好、编程效率高、扩展性强,另外MATLAB还有很多扩展地有专门功能的工具箱。不同工具箱给不同领域的用户提供了丰富且强大的功能。如为控制领域提供的线性矩阵不等式控制工具箱,为信号处理领域提供的小波工具箱,为神经网络领域提供的神经网络工具箱,,为模糊逻辑领域提供的模糊逻辑工具箱等。现在经过不断发展,已有涉及自动控制、信号处理、图象处理、经济、数学等多种学科的30多种MATLAB工具箱投入应用。,MATLAB 软件介绍,MATLAB常用工具箱Symbolic Math 符号运算工具箱Optimization 最优化工具箱Spline 样条分析工具箱Statistics 统计分析工具箱Signal Processing 信号处理工具箱Image Processing 图像处理工具箱,MATLAB 软件介绍,启动 MATLAB鼠标双击Win2000桌面上图标 在Win2000“开始”菜单的“程序”选项中选择“MATLAB”,退出MATLAB命令窗口键入“quit”或“Ctrl+Q”鼠标选择菜单 file Exit MATLAB,MATLAB桌面,命令窗口,工作空间浏览,命令历史窗口,MATLAB 软件介绍,命令窗口、图形窗口、编辑窗口、帮助窗口,MATLAB 软件介绍,L=40*membrane(1,25);mesh(L),colormap(0,0,1),logo,表达式:由运算符、变量名、数字和函数组成,例1.计算有理数,例2.计算 12345并将结果赋值给变量 x x=1*2*3*4*5 x=120,2000/21 ans=95.2381,n=0:1:63;S=sum(2.n)S=1.8447e+019,例4.计算sin x 在 处的值,clear x=pi./8,6,4,3,y=sin(x)y=0.3827 0.5000 0.7071 0.8660,MATLAB 使用简介,例3.计算级数:S=1+2+22+23+263=,例5.衰减振荡曲线函数:y=e-0.5x sin 5x图形.,x=0:0.1:4*pi;y=exp(-0.5*x);y1=y.*sin(5*x);plot(x,y1,x,y,-r,x,-y,-r),MATLAB 使用简介,MATLAB 软件介绍,其他数学类应用软件,Maple由加拿大Waterloo大学开发的一种数学软件,具有很强的符号计算能力。MathCADMathSoft公司在80年代推出的一个交互式数学文字软件。MathematicaStephen Wolfram领导的小组开发的类似 于Maple的数学软件,支持比较复杂的数值运算和符号运算。,sin 正弦函数 asin 反正弦函数 cos 余弦函数 acos 反余弦函数 tan 正切函数 atan 反正切函数 cot 余切函数 acot 反余切函数 sec 正割函数 asec 反正割函数 csc 余割函数 acsc 反余割函数,sinh 双曲正弦函数 asinh 反双曲正弦函数 cosh 双曲余弦函数 acosh 反双曲余弦函数 tanh 双曲正切函数 atanh 反双曲正切函数 sech 双曲正割函数 asech 反双曲正割函数 csch 双曲余割函数 acsch 反双曲余割函数 coth 双曲余切函数 acoth 反双曲余切函数,三角函数与双曲函数,MATLAB 常用函数,abs(x)绝对值sqrt(x)开平方conj(z)共轭复数round(x)四舍五入floor(x)舍去正小数rat(x)化为分数表示gcd(x,y)最大公因数exp(x)自然指数log(x)e为底的对数Log10(x)10为底的对数,angle(z)复数z的相角real(z)复数z的实部imag(z)复数z的虚部fix(x)舍去小数取整ceil(x)加入正小数取整sign(x)符号函数rem(x,y)求x除以y的余数lcm(x,y)最小公倍数pow2(x)以2为底的指数log2(x)以2为底的对数,MATLAB 常用函数介绍,MATLAB 软件介绍,MATLAB的部分通用命令Who:列出在matlab工作空间中已有的变量Whos:列出驻留变量的同时,还给出维数及性质clear:删除内存中的变量。clc:删除工作窗口的内容。clf:删除图形窗口的内容。quit:退出MATLAB。exit:退出MATLAB。,Matlab联机帮助命令,help 显示help 主题一览表help plot 显示有关做图指令帮助信息help help 显示help 的帮助信息,虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,help就无能为力了。,Lookfor函数 它可提供通过一般的关键词,搜索出一组与之相关的命令lookfor fourier 寻找含有傅立叶变换的相关指令,Matlab的演示功能 demo,例6、绘制一元函数y=sin x/x 在-8,8上图形。,x=-8:8;y=sin(x)./x;Warning:Divide by zero.plot(x,y),除零错误导致残缺图形,分母加eps方法避免出错,例1.21 绘二元函数 图形,x,y=meshgrid(-8:0.5:8);r=sqrt(x.2+y.2)+eps;z=sin(r)./r;mesh(x,y,z)colormap(1,0,0),x=0:0.2:3*pi/2;y0=sin(x);y1=x-x.3/6+x.5/120;plot(x,y0,x,y1,r),例6.用 y1(x)=x-x3/3!+x5/5!逼近正弦函数 y0(x)=sin x 在区间0,3/2内图形.,幂级数逼近正弦函数,对任意的正整数n,编写程序绘制正弦函数 sin x 和有限项级数在区间0,3/2 的图形,计算机浮点数记法,5.11108 5.11e+80.0000015=1.510-6 1.5e-6,24560000=2.456107 2.456e+7,例1.7近似计算地球表面积,并以不同格式输出数据 R=6378.137;S=4*pi*R2 format long,S format bank,S,创建向量的三种常用方法:1.利用冒号生成向量x=i:j 如果 ik,生成以i为初值,k为终值,-j为步长的有限等差数列;,x=linspace(2,8)将生成100个数,以2开始,以8结束。y=linspace(2,8,10)将生成10个数,以2开始,以8结束。3.利用logspace(a,b)生成等比向量,例6.用dot()、cross()进行向量运算a=1:4;b=3:6;c=dot(a,b)c=50a=1:3;b=2:4;cross(a,b)ans=-1 2-1,2.利用linspace(a,b)生成等差向量,矩阵的创建/直接输入法,创建矩阵的常用方法:,1.直接输入法;2.矩阵编辑器;3.函数法;4.数据文件法直接输入法三条规则:矩阵元素必须在方括号 之内;同一行相邻元素间用逗号或空格分隔;矩阵的行与行之间必须用分号分隔.例7.创建三阶矩阵A=1 2 3;4 5 6;7 8 9,A=1 2 3 4 5 6 7 8 9,例8.创建4阶范德蒙矩阵,x=2;3;5;7;e=ones(4,1);B=e x x.2 x.3,B=1 2 4 8 1 3 9 27 1 5 25 125 1 7 49 343,注1.命令ones(4,1)将产生41阶全“1”矩阵参考:ones(4),ones(size(A),ones(4,3,2)注2.命令 x.2 的执行结果为 x 的各个元素的平方,x.3、x.4、x.5 类似,矩阵的创建/直接输入法,zeros(m,n)mn阶零矩阵;ones(m,n)mn阶1矩阵eye(m,n)mn阶单位矩阵rand(m,n)mn阶随机矩阵rand(size(A)与A同阶的随机矩阵randn(m,n)mn阶正态分布的随机矩阵,用命令创建特殊矩阵,矩阵左除:AB(AX=B X=AB)矩阵右除:B/A(XA=B X=B/A),例9.解方程组,x=Abx=-2.0000 4.0000-1.6667,检验:A*x-bans=1.0e-014*0.2665 0.3553 0.1776,A=1 2 3;4 5 6;7 8 9;1 4 6;b=1;2;3;4;,1 苏金明等,MATLAB实用教程,电子工业出版社2李尚志等,数学实验,高等教育出版社,19993 电子科技大学应用数学系,数学实验简明教程,电子科技大学出版社,20014刘宏友等,MATLAB6.X符号运算及其应用,北京:机械工业出版社,2003年2月5张志涌,精通MATLAB 6.5,北京航空航天大学出版社,参考文献,宝石加工厂需要将石料内已知位置上的一块精品切割出来.石料尺寸为191412(cm3),需要切割的精品尺寸为542(cm3),且二者的左侧面、前面、底面相互平行,距离分别为6cm,7cm,9cm。,宝石加工问题:,切割加工费用:垂直切割3元/cm2,水平切割5/cm2。试确定切割的工作流程,使切割的总费用最少。(为了减少旋转刀具的次数,要求同向切割连续两次后再旋转刀具),19 14 126 7 95 4 28 3 1,5 14 126 7 95 4 28 3 1,5 4 126 7 95 4 28 3 1,5 4 26 7 95 4 28 3 1,一种切割方案的数据变化分析,19 14 125 4 2,S1=2(1412),5 14 125 4 2,5 4 125 4 2,5 4 25 4 2,S2=2(512),S3=2(54),全部方案分析,石料尺寸(cm)石料:长宽高=a1a2a3;精品:长宽高=b1b2b3;切割费用(cm2)垂直切割3元,水平切割5元,a2a3 b1a3 b1b2a2a3 b1a2 b1b3a1a3 b2a3 b1b2a1a3 a1b2 b2b3a1a2 a2b3 b1b3a1a2 a1b3 b2b3,(1,2,3)(1,3,2)(2,1,3)(2,3,1)(3,1,2)(3,2,1),1 左、右2 前、后3 上、下,a1=19;a2=14;a3=12;b1=5;b2=4;b3=2;op(1)=a2*a3*3+b1*a3*3+b1*b2*5;op(2)=a2*a3*3+b1*a2*5+b1*b3*3;op(3)=a1*a3*3+b2*a3*3+b1*b2*5;op(4)=a1*a3*3+a1*b2*5+b1*b3*3;op(5)=a1*a2*5+a2*b3*3+b1*b3*3;op(6)=a1*a2*5+a2*b3*3+b2*b3*3an=min(op);min=an*2op=784 884 928 1094 1444 1438min=1568,MATLAB程序(mlab0.m),练习与思考题,1.地球半径为6400(km),记 d 为通信卫星到地面的高程。利用公式,计算通信卫星对地球表面积覆盖率,卫星高程为变量,2.观察x,y=meshgrid(1:4)执行结果,记录x和y的数据3.绘制二元函数的图形,4.2007年农历是丁亥年,排列天干(甲乙丙丁戊己庚辛壬癸)/地支(子丑寅卯辰巳午未申酉戍亥),用字符串数组编写程序,要求输入年份,输出农历纪年5.四种常用的数据类型之间有何差异?,