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