MATLAB经典数学建模教程.docx
《MATLAB经典数学建模教程.docx》由会员分享,可在线阅读,更多相关《MATLAB经典数学建模教程.docx(160页珍藏版)》请在三一办公上搜索。
1、MATLAB经典数学建模教程第 1 节Matlab 基本知识 一、 Matlab 的主要功能 Matlab是一种功能非常强大的工程语言,诞生于20世纪XX年代,XX年正式推向市场。XX年8月,Matlab6.5开始发布。是进行科学研究和产品开发必不可少的工具。 l 数值和符号计算 矩阵(数组)的四则运算、数值差分、导数、积分、求解微分方程、微分方程的优化等 l 数字图像、数字信号处理 l 工程和科学绘图 l 控制系统设计 l 财务工程 l 建模、仿真功能 二、 Matlab 的界面 1.命令窗口: Matlab各种操作命令都是由命令窗口开始,用户可以在命令窗口中输入Matlab命令,实现其相应
2、的功能。此命令窗口主要包括文本的编辑区域和菜单栏。在命令窗口空白区域单击鼠标右键,打开快捷菜单,各项命令功能如下: Evaluate Selection :打开所选文本对应的表达式的值。 Open Selection :打开文本所对应的MatLab文件。 Cut :剪切编辑命令。 Paste :粘贴编辑命令。 2. M-文件编辑/调试窗口 Matlab Editor/Debugger窗口是一个集编辑与调试两种功能于一体的工具环境。 M-文件 l 什么是M-文件:它是一种和Dos环境中的批处理文件相似的脚本文件,对于简单问题,直接输入命令即可,但对于复杂的问题和需要反复使用的则需做成M文件。 l
3、 创建M-文件的方法: Matlab命令窗的File/New/M-file。 在Matlab命令窗口运行edit。 l M文件的扩展名: *.m l 执行M-文件:F5 l M文件的调试 选择Debug菜单,其各项命令功能如下: Step :逐步执行程序。 Step in :进入子程序中逐步执行调试程序。 1 Step out :跳出子程序中逐步执行调试程序。 run:执行M-文件。 Go Until Cursor :执行到光标所在处。 Exit Debug Mode :跳出调试状态。 l 函数文件的创建要求:文件名与函数名必须相同,如sin(x)必有sin.m函数文件存在。 要求实参和形参位
4、置一一对应。形参在工作空间中不会存在。 可以编写递归函数,可以嵌套其他函数。 可以用return命令返回,也可以执行到终点返回 3.工作空间窗口: 显示目前保存在内存中的Matlab的数学结构、字节数、变量名以及类型窗口。 保存变量:File菜单Save Workspace as 命令行:save 文件名 装入变量:File菜单Import Data 命令行:Load 文件名 4.现在目录窗口 5.命令历史窗口:提供先前使用过的函数,可以复制或者再次执行这些命令。 Matlab帮助系统 Matlab在命令窗口提供了可以获得帮助的命令,用户可以很方便的获得帮助信息。例如:在窗口中输入“help
5、fft”就可以获得函数“fft”的信息。常用的帮助信息有help ,demo ,doc ,who ,whos ,what ,which ,lookfor ,helpbrowser ,helpdesk ,exit ,web 等。 三、关于变量 变量命名规则: l 变量名是不包含空格的单个词 l 变量名区分大小写 l 变量名必须以字母开头的字母、数字、下划线的组合,最多19个字符。 l Matlab提供的标准函数名均以小写字母开头 特殊变量名: l ans 缺省变量名 l pi 圆周率 l i,j 虚数单位 l eps 无穷小 l inf ,Inf 无穷大 l realmax 最大正实数 l re
6、almin 最小正实数 清除变量的值 l clear l clear 变量名1 变量名2 显示驻留内存的变量名 l who l whos 2 第 2 节 Matlab编程 一、矩阵的输入 1、直接输入 直接按行方式输入每个元素:同一行中的元素用逗号或者用空格符来分隔,且空格个数不限;不同的行用分号分隔。所有元素处于一方括号内;多维矩阵用多重方括弧。可建立复数矩阵 如: Null_M = %生成一个空矩阵 可建立复数矩阵 R=1,2,3;4,5,6 I=7,8,9;10,11,12 Z=R+I*j 2. 由M文件方式建立,今后使用键入M文件名即可建立相应矩阵 2、利用函数输入 “:”表达式,产生
7、等差行向量 start:step:end 或start:end如:t1:20 产生等距输入: linspace 将a,b区间分成n1个等距小区间 产生随机排列: randperm(n) 产生1n之间整数的随机排列 3、特殊矩阵输入 zeros(n) 生成nn全零阵, zeros 元素全为0的ab维矩阵, 以下各函数同理具有该类型。 zeros(size(A) 生成与矩阵A相同大小的全零阵, ones 元素全为1的ab维矩阵 eye 对角线上的元素为1的ab维矩阵 rand 产生ab维均匀分布的随机矩阵,其元素在内 rand 无变量输入时只产生一个随机数 randn产生ab维正态分布的随机矩阵
8、4.矩阵的转置和逆矩阵 n X的转置:X ( 图像顺时针旋转90,并水平镜像) 如:a=imread(D:2-1.bmp); b=a; subplot(1,2,1),subimage(a),subplot(1,2,2),subimage(b) n X的逆矩阵 inv(X) 二、矩阵元素的访问及其大小的确定 访问第n个元素: X 访问多个元素: X (n1,n2,n3) 或 X 确定元素的个数: numel(X) 确定矩阵的大小: m,n,l=size(X) 三、矩阵的算数运算 l 数与矩阵的运算:m等价于m. mA : m与A中各元素相加 3 mA : m与A中各元素相减 mA : m与A中各
9、元素相乘 m. /A : m除以A中各元素 m A : A中各元素除以m l 矩阵与矩阵的运算 AB: A、B对应元素相加 AB: A、B对应元素相减 AB: A、B矩阵按线性代数中矩阵乘法运算进行相乘 A.*B: A、B对应元素相乘 A / B: A除以B矩阵 A./B: A除以B中各元素 A B: B除以A矩阵 A.B: B除以A中各元素 Am: 相当于矩阵A矩阵A矩阵A. A.m:矩阵A中各元素的m次方 A.B:矩阵A中各元素的进行B中对应元素次方 四、关系运算 、=、= =、 = 六种关系运算符。关系成立结果为1,否则为0。 五、逻辑运算 设矩阵A和B都是mn矩阵或其中之一为标量,在M
10、ATLAB中定义了如下的逻辑运算:&、|、xor 矩阵的与运算 格式 A&B或and(A, B) 说明 A与B对应元素进行与运算,若两个数均非0,则结果元素的值为1,否则为0。 或运算 格式 A|B或or(A, B) 说明 A与B对应元素进行或运算,若两个数均为0,则结果元素的值为0,否则为1。 非运算 格式 A或not (A) 说明 若A的元素为0,则结果元素为1,否则为0。 异或运算 格式 xor (A,B) 说明 A与B对应元素进行异或运算,若相应的两个数中一个为0,一个非0,则结果为0,否则为1。 六、集合运算 1两个集合的交集 intersect 2检测集合中的元素 ismember
11、 3两集合的差 setdiff 4两个集合交集的非函数 setxor 5两集合的并集 union 4 6取集合的单值元素 unique 七、MatLab的控制流 由各种语句构成 语句后面加“;”号,不显示运算结果 开头表示是注释语句 赋值语句 变量表达式 表达式 演示 for循环结构 一个简单的for循环示例。 for i=1:10; x(i)=i; end; x x = %i依次取1,2,10,. %对每个i值,重复执行由该指令构成的循环体, %要求显示运行后数组x的值。 1 2 3 4 5 6 7 8 9 10 while循环结构 Fibonacci数组的元素满足Fibonacci 规则:
12、ak+2=ak+ak+1 ,(k=1,2,L);且a1=a2=1。现要求计算出该数组中第一个大于10000的元素。 a(1)=1;a(2)=1;i=2; while a(i)8 sums=number*0.95*cost; end,sums sums = 114.0000 用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。 n=100;a=ones(1,n); 5 for i=3:n a(i)=a(i-1)+a(i-2); if a(i)=10000 a(i), break; %跳出所在的一级循环。 end; end,i ans = 10946 i = 21 switch
13、-case结构 学生的成绩管理,演示switch结构的应用。 clear; %划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格( diff( cos(x) ) % differentiate cos(x) with respect to x ans= -sin(x) M=sym( a,b;c,d ) % create a symbolic matrix M M= a,b c,d 注意:1.建立符号数组时,最好用上函数sym 2.许多符号函数可以自动将字符转变为符号表达式。例如diff cos(x) 也可以, diff x2+3*x+5 % the a
14、rgument is equivalent to x2+3*x+5 l 符号变量是符号表达式中的变量,如:x+3*y+z中的x,y,z。 l 独立变量是当符号表达式中含有多于一个的变量时,只有一个变量是独立变量。缺省的独立变量是x,如果没有x,则选择最靠近x的作为独立变量。如表达式 1/(5+cos(x) 中8 是 x ;在 3*y+z 中是 y ;在 a+sin(t) 是 t ,而表达式 sin(pi/4)-cos(3/5) 是一个符号常数无符号变量。可利用函数symvar询问MATLAB在符号表达式中哪一个变量它认为是独立变量(系统找不到一个独立变量,便假定无独立变量并返回x)。 symv
15、ar( a*x+y*) % find the default symbolic variable ans= x symvar( a*t+s/(u+3) ) % u is the closest to x ans= u symvar( sin(omega) ) % omega is not a singlee character。 ans= x symvar( 3*i+4*j ) % i and j are equel to sqrt(-1) ans= x 指定独立变量: diff( xn ) % differentiate with respect to the default variabl
16、e x ans= xn*n/x diff( xn , n ) % differentiate xn with respect to n ans= xn*log(x) diff( sin(omega) ) % differentiate using the default variables (x) ans= 0 diff( sin(omega) , omega ) % specify the independent variable ans= cos(omega) 第 2 节 符号表达式运算 标准代数运算: symadd、symsub、symlnul、symdiv:分别为加、减、乘、除两个表达
17、式 sympow:将一个表达式上升为另一个表达式的幂次 例如:给定两个函数 f=2x2+3x-5g=x2-x+7 f= 2*x2+3*x-5 % define the symbolic expression f= 2*x2+3*x-5 g= x2-x+7 g= x2-x+7 9 symadd(f,g) % find an expression for f+g ans= 3*x2+2*x+2 symsub(f,g) % find an expression for f-g ans= x2+4*x-12 symmul(f,g) % find an expression for f*g ans= (
18、2*x2+3*x-5)*(x2-x+7) symdiv(f,g) % find an expression for f/g ans= (2*x2+3*x-5)/(x2-x+7) 3* sympow(f,3*x) % find an expression for f ans = (2*x2+3*x-5)(3*x) 联接运算: symop:取由逗号隔开的、多至16个参量。各个参量可为符号表达式、数值或算子( + 、 - 、*、 / 、 、 ( 或 ) ),然后symop可将参量联接起来,返回最后所得的表达式. f= cos(x) % create an expression f= cos(x) g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 经典 数学 建模 教程
链接地址:https://www.31ppt.com/p-3161245.html