Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院第2章MATLAB语言概述东北大学信息学院薛定宇Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院数学建模问题及数学语言工具可以分为两个单独的问题如何从给出的用语言描述的问题建立起其数学描述(即数学模型)如何得出数学模型的解数学模型的求解需要计算机工具MATLAB为首选学会MATLAB语言,一般编程和使用方法学会各个分支数学问题的计算机求解灵活运用MATLAB解决遇到的问题计算机仿真问题求解(Simulink)Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院参考阅读建议薛定宇、陈阳泉,高等应用数学问题的MATLAB求解,2004,2008,清华大学出版社(数学分支覆盖全面),英文版张志涌,精通MATLAB6.5,北京航空航天大学出版社,2003(编程介绍深入)陈怀琛,MATLAB及其在理工课程中的应用指南,2000,2004,西安电子科技大学出版社(在相关课程问题的覆盖面全)Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院内容提要MATLAB语言简介MATLAB编程基础MATLAB变量的基本运算MATLAB语言基本程序结构MATLAB语言与可视化MATLAB应用演示Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.1MATLAB语言简介MATLAB是当今国际上三大数学语言之一,是科学技术领域事实上的通用计算机语言语句集成度高,使用灵活易于入门、程序易于调试、跨平台可视化(图形表示)功能强大几乎适用于所有应用数学与工程分支强大的计算机仿真功能Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院其他“高级”语言(如C)的局限性语句繁杂没有基本数学运算求解工具程序冗长,容易出错,得出结果难以令人相信各种各样的隐患结果可视化效果不佳Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院例1矩阵特征值求解用数学库EISPACK用MATLAB:eig(A)Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院例2可能的隐患Fibonacci数列数学描述C语言实现存在问题:数据结构的预定义MATLAB实现Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.2MATLAB编程基础变量与常量数据结构基本语句结构语句流程程序结构程序调试Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.2.1变量与常量变量名由字母开头,后面可跟其他字母、数字和下划线MATLAB变量名区分大小写MATLAB保留的变量名为常量,如pi,i,j,eps,Inf和NaN常量内容可改写,但应该慎重,必要时需要重新定义i=sqrt(-1)Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.2.2数据结构和科学计算相关的主要有两种:双精度数组(矩阵为最主要形式,用于数值运算,可以为复数矩阵;还可以直接定义出向量、标量等)符号变量(用于公式推导和解析解求解)其他数据类型单精度变量、整型变量等数值型变量字符串、多维数组、结构体、类与对象等Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院双精度数据结构矩阵的表示矩阵简单分析F=inv(A)复数矩阵的表示Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院特殊矩阵的输入单位矩阵A=eye(m,n)零矩阵A=zeros(n,m)对角矩阵A=diag([1,3,5,7,2])均匀分布随机数矩阵A=rand(n,m)多项式按照降幂排列输入系数向量p=[123405]伴随矩阵A=compan(p)Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院符号变量定义与处理和数值型不一样,可以用于公式推导定义方法symsABCsymsABpositive还有real,nonzero等选项转换方法,用于精确运算B=sym(A)数值、符号变量区别1/90.111111111111111Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院符号变量的化简与显示符号变量数值显示vpa命令问题:p可以记忆到小数点后多少位?非最简的结果可以用simple函数化简collect合并同类项expand展开numden,gcd,lcm,factor变量替换subspretty,latexSlide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.2.3基本语句结构直接赋值语句函数调用语句A=5;B=[12;34];C=A+6+B^2;[e,f,g]=funname(a,b,c)Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.2.4程序流程循环语句for,while转移语句if,elseif,else开关语句switchcase试探语句trycatch不同流程语句的嵌套使用每个流程应该对应一个endSlide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院for循环循环结构例题:求和MATLAB实现Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院while循环循环结构MATLAB举例Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院不同循环结构有不同的特色、用途看似for循环优于while循环例:for循环解决不了的问题,求最小m用while循环可以直接求解Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院条件转移语句结构各种结构Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院开关结构和C语言的开关结构有区别Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院全新的试探结构全新结构优点:设置错误陷阱提高算法的执行效率Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.3矩阵的运算代数运算+、-、*、/、\^,点运算逻辑运算&、|、~、xor比较运算=、=、、、~=find、all、anySlide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.4基本程序结构交互式命令脚本程序M-函数主流编程方法为什么需要M-函数M-函数实现何时使用M-函数Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院函数的结构与编程函数的入口函数的调用Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.5MATLAB语言与科学可视化(将数据用图形表示)二维曲线直角坐标系、极坐标、三维图形三维曲线、轨迹三维曲面四维表示动画(时间为第4维)三维图下的切面表示Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.5.1二维曲线绘制由实测或计算出来的数据直接绘图已知绘图语句构造绘图变量画图plot(t,y)扩展图形后处理Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院已知函数曲线绘制已知函数自变量向量生成等间距等对数间距logspace不等间距计算函数值(点运算)绘图并检验Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院函数MATLAB命令检验数据存储导入Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院极坐标图形绘制绘制极坐标函数仍然首先生成q向量,再用点运算计算r调用polar函数绘图绘制曲线注意周期检验Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.5.2隐函数绘制有的函数不能这样绘制例:隐函数非单值函数MATLAB语句Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.5.3三维曲线绘制三维曲线及三维参数方程曲线绘制生成t计算x,y,z绘图图坐标读取及坐标系旋转Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.5.4三维曲面绘制数学函数曲面绘制方法在x-y平面生成网格计算网格上每点的函数值用surf绘制表面图或mesh画网格图语句插值或光滑处理Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.5.5视角设置用可视方法旋转用命令旋转视角定义仰角方位角唯一确定视角视角设置view(a,b)三视图Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.6MATLAB应用演示高等数学公式推导线性代数运算积分变换与复变函数非线性方程求解与最优化微分方程求解数据插值与拟合概率论与数理统计非传统方法(FL,NN,GA,PSO,RS,FDA等)Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院2.6.1高等数学中的公式推导高等数学几乎全部内容用5个函数即可求解求极限limit(偏)导数、微分运算diff积分运算intTaylor级数展开taylor级数求和symsum不必记忆类型及方法、技巧,直接求解没有中间结果Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院函数分析实例已知函数先定义自变量为符号变量,再写函数函数分析一阶导数高阶导数导数还原(积分)Taylor幂级数展开有限项Taylor幂级数逼近效果研究Slide1(of11)Saturday,2009-3-21,22:00:11数学建模课程模板东北大学信息学院小结学习MATLAB语言的方法“三十字”学习方法:带着问题学,活学活用,学用结合,急用先学,立竿见影,要在用字上狠下功夫。