Application of Matlab Language 主讲:李 峰 电话:15937812261 email: lif8086@163.com Application of Matlab Language
Application of Matlab Language 菜单栏 工具栏 文件编辑窗口 命令窗口 工作空间 历史命令 窗口 Start 菜单 命令提示符 2018/12/4 Application of Matlab Language
Application of Matlab Language 2 命令窗口的使用 【例1】计算 (1)575+987-345; (2)456*852; (3)123/56;56\123 (4)5^8; (5) 2018/12/4 Application of Matlab Language
Application of Matlab Language 3 数值表示、变量及表达式 运算符和表达式 运算 数学表达式 MATLAB运算符 MATLAB表达式 加 a+b + 减 a-b - 乘 axb * a*b 除 a÷b /或\ a/b或b\a 幂 ^ a^b 2018/12/4 Application of Matlab Language
Application of Matlab Language 4 数值表示、变量及表达式 Matlab常用函数 函数名称 功能介绍 a^b sqrt(x) exp(x) log(x) log10(x) sin(x) cos(x) tan(x) 函数名称 功能介绍 cot(x) asin(x) acos(x) atan(x) acot(x) sec(x) csc(x) 2018/12/4 Application of Matlab Language
Application of Matlab Language 4 数值表示、变量及表达式 Matlab常用函数 函数名称 功能介绍 abs(x) 绝对值 round(x) 四舍五入为整数 fix(x) 向零方向取整 min 最小值 max 最大值 mean 平均值 函数名称 功能介绍 sort 排序 length 个数 prod 总乘积 sum 总和 2018/12/4 Application of Matlab Language
Application of Matlab Language 2.2 命令窗口 (续) 【例2】计算 的值。 【练习】计算 的值。 【练习】计算 的值,其中x=4.92。 【练习】计算 的值 2018/12/4 Application of Matlab Language
Application of Matlab Language 2.2 命令窗口 (续) 【例3】已知向量x X=[43,72,9,16,23,47,26] 求其最大值,最小值,平均值,和 各数的乘积,排序,向量维数 2018/12/4 Application of Matlab Language
Application of Matlab Language 2.2 命令窗口 (续) 数值显示格式设置 缺省显示格式:简洁的短格式(short) 窗口命令及语法格式: format short format long 15位数字显示 常见通用命令 命令 含义 clc 清除命令窗口的显示内容 clear 清除Matlab工作空间中保存的变量 2018/12/4 Application of Matlab Language
Application of Matlab Language 2.1 数值表示、变量及表达式 数值的记述 其数字的绝对值范围大约是: 变量命令规则 变量名、函数名对字母的大小写是敏感的。如myVar与myvar表示两个不同的变量。 变量名第一个字母必须是英文字母。 变量名可以包含英文字母、下划线和数字。 变量名不能包含空格、标点。 变量名最多可包含63个字符。 2018/12/4 Application of Matlab Language
Application of Matlab Language 2.1 数值表示、变量及表达式 Matlab预定义的变量 变量名 意义 ans 最近的计算结果的变量名 eps MATLAB定义的正的极小值=2.2204e-16 pi 圆周率π inf ∞值,无限大 i或j 虚数单元,sqrt(-1) NaN 非数,0/0、∞/ ∞ 〖说明〗 每当MATLAB启动完成,这些变量就被产生。 MATLAB中,被0除不会引起程序中断,给出报警的同时用inf或NaN给出结果。 用户只能临时覆盖这些预定义变量的值,Clear或重启MATLAB可恢复其值。 2018/12/4 Application of Matlab Language
Application of Matlab Language 极限运算 导数运算 积分运算 解方程 矩阵运算 2018/12/4 Application of Matlab Language
Application of Matlab Language 极限运算 Matlab利用limit函数计算函数的极限。 表示方法为: limit(f,x,a) 表示求函数f(x)当x趋近于常数a的极限。 1. limit(f,a) 表示当x趋近于常数a时,f(x)的极限。 2. limit(f,x,a,’right’)和limit(f,x,a,’left’)分别表示 函数f(x)当x趋近于a时的右极限和左极限。 2018/12/4 Application of Matlab Language
Application of Matlab Language 极限运算 例1 求 syms x %将x定义为符号变量 limit(x^2*sin(1/x),x,0) 练习求 2018/12/4 Application of Matlab Language
Application of Matlab Language 例3 求 limit((x^2-1)/(2*x^2+x-1),x,inf) 例4 求 当 时的左极限,右极限 和极限。 syms x; f=1/x^3; limit(f,x,0,’left’) limit(f,x,0,’right’) limit(f,x,0) 2018/12/4 Application of Matlab Language
Application of Matlab Language 极限练习 (1) (2) (3) (4) 2018/12/4 Application of Matlab Language
Application of Matlab Language 导数运算 Matlab利用diff函数计算函数的导数。 表示方法为: diff(f,x) 表示对函数f(x)关于x求导。 differential 1. diff(f) 表示函数f(x)对默认变量求一阶导数。 2. diff(f,x,n) 表示函数f(x)对变量x求n阶导数。 2018/12/4 Application of Matlab Language
Application of Matlab Language 导数运算 例1 求 的导数。 syms x diff(cos(x^2+2*x),x,1) 例2 求 的二阶及三阶导数。 diff(x^3+cos(2*x)+log(x^2),x,2) diff(x^3+cos(2*x)+log(x^2),x,3) 2018/12/4 Application of Matlab Language
Application of Matlab Language 导数练习 (1) (2) (3) (4) 2018/12/4 Application of Matlab Language
Application of Matlab Language 积分运算 Matlab利用int函数计算函数的积分。 不定积分的表示方法为: int(f,x) 表示求函数f(x)关于x的不定积分。 integral 定积分的表示方法为: int(f,x,a,b) 表示求函数f(x)关于x从a到b的定积分。 注:定积分上下限中的a,b既可以是一个具体的数, 也可以是一个无穷的符号(inf)。 2018/12/4 Application of Matlab Language
Application of Matlab Language 积分运算 例1 求 syms x int(6^x+3*sin(x)+sqrt(x),x) 例2 求 int(sin(x)+cos(x),x,0,pi/4) 例3 求 int(1/(x^2+4*x+9),x,-inf,inf) 2018/12/4 Application of Matlab Language
Application of Matlab Language 积分练习 (1) (2) (3) (4) (5) 2018/12/4 Application of Matlab Language
Application of Matlab Language 求解代数方程 1.Matlab利用solve函数求解代数方程。 表示方法为: solve(‘eq’,x) 2.Matlab利用solve函数求解代数方程组。 表示方法为: solve(‘eq1,eq2,eq3’,x) 注:在输入方程时,方程要带上单引号 ‘ ’。 2018/12/4 Application of Matlab Language
Application of Matlab Language 例1 求解方程 syms x solve(‘x^2+2*x-1=0’,x) 例2 求解方程组 syms x,y,z solve(‘2*x-y+3*z=3,3*x+y-5*z=0,4*x-y+z=3’,x,y,z) 2018/12/4 Application of Matlab Language
Application of Matlab Language 方程练习 (1) (2) 2018/12/4 Application of Matlab Language
Application of Matlab Language 求解微分方程 1.Matlab利用dsolve函数求解微分方程。 表示方法为: dsolve(‘eq’,’x’) 注1:在微分方程中,用大写字母D表示一次 微分,D2,D3分别表示二次、三次微分运 算,如符号D2y表示 。 注2:在输入方程时,方程和变量x要带上 单引号 ‘ ’。 2018/12/4 Application of Matlab Language
Application of Matlab Language 例1 求解微分方程 syms x y dsolve(‘Dy-1/x*y=x^2’,‘x’) 例2 求解微分方程 dsolve(‘D2y+2*Dy-3*y=9*x’,’x’) 例3 求解微分方程 y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x') 2018/12/4 Application of Matlab Language
Application of Matlab Language 微分方程练习 (1) (2) (3) (4) 2018/12/4 Application of Matlab Language
Application of Matlab Language 矩阵运算 1.矩阵的定义 定义:由m×n个元素组成的具有m行n列的数表 称为m行n列的矩阵(Matrix)。 行向量 列向量 2018/12/4 Application of Matlab Language
Application of Matlab Language 第一种方法:使用方括号“[ ]”操作符 使用规则 数组元素必须在“[ ]”内键入; 行与行之间须用分号“;” 间隔; 行内元素用空格或逗号“,”间隔。 【例】创建矩阵 a=[1 2 3; 4 5 6; 7 8 9] 【例】创建向量 b=[1 3 pi 5] 2018/12/4 Application of Matlab Language
Application of Matlab Language 第二种方法:使用冒号“:”操作符 基本语法格式: x=Start : Increment : End Start表示向量x的第一个元素; 向量x的最后一个元素不能大于End ; 若Increment=1,则可简写为:x=Start:End。 【例】键入并执行c=1:2:10 >> c=1:2:10 c=1 3 5 7 9 【例】创建以1~10顺序排列整数为元素的行向量b。>>b=1:10 b=1 2 3 4 5 6 7 8 9 10 2018/12/4 Application of Matlab Language
Application of Matlab Language 第三种方法:利用函数linspace 函数linspace的基本语法 x= linspace(x1, x2, n) 该函数生成一个由n个元素组成的行向量; x1为其第一个元素;x2为其最后一个元素; x1、x2之间元素的间隔=(x2-x1)/(n-1)。 如果忽略参数n,则系统默认生成100个元素的行向量。 【例】键入并执行x= linspace(1,2,5) x=1.0000 1.2500 1.5000 1.7500 2.0000 2018/12/4 Application of Matlab Language
Application of Matlab Language 运算 运算符 含义说明 加 + 相应元素相加 减 - 相应元素相减 点乘 .* 相应元素相乘 左点除或右点除 .\或./ A的元素被B的对应元素除 转置 a’ 矩阵转置 2018/12/4 Application of Matlab Language
Application of Matlab Language 【例】矩阵加减法 >>a=[1 2 3;4 5 6] >>b=a+2.5 b = 3.5000 5.5000 7.5000 4.5000 6.5000 8.5000 >>c=b-a c = 2.5000 2.5000 2.5000 2018/12/4 Application of Matlab Language
Application of Matlab Language 【例】矩阵运算举例 >>a=[2 2 3;1 -1 0;-1 2 1] >>b=a’ >>d=a.*b 2018/12/4 Application of Matlab Language
Application of Matlab Language 绘函数图像 matlab程序 2018/12/4 Application of Matlab Language
Application of Matlab Language 二维曲线绘图的基本操作 plot指令的基本调用格式 (1)plot(x, y) 绘制以x为横坐标、以y为纵坐标的曲线 (2)plot(x1, y1, x2, y2, …) 绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。 2018/12/4 Application of Matlab Language
Application of Matlab Language 二维曲线绘图的基本操作 【例】在[0,2π]区间内,绘制曲线 x = 0:0.1:2*pi; y = 2*exp(-0.5*x).*sin(2*pi*x) plot(x,y) 【例】在[0,10]区间内,同时绘制曲线 y=sin(x)和 y=cos(x)+2 x=0:0.1:10; plot(x,sin(x),x,cos(x)+2) 2018/12/4 Application of Matlab Language
Application of Matlab Language 使用参数方程绘制曲线 绘制曲线 t = -pi:0.01:pi; x = t.*cos(3*t); y = t.*sin(t).^2; plot(x,y) 2018/12/4 Application of Matlab Language
Application of Matlab Language 3. 三维绘图的基本操作 三维线图指令plot3 plot3的使用格式与plot十分相似,只是对应 第3 维空间的参量。 【例】绘制宝石链 t=0:0.01:2*pi; x=sin(t); y=cos(t); z=cos(2*t); plot3(x,y,z,'b-',x,y,z,'bd'); view([-82,58]); box on legend('链','宝石') 2018/12/4 Application of Matlab Language
Application of Matlab Language 三维线图绘制结果 2018/12/4 Application of Matlab Language
Application of Matlab Language 基本绘图函数表 命 令 含 义 plot 建立向量或矩阵对应坐标的图形 fplot 自动画函数的图形 title 给图形加标题 xlabel 给x轴加标记 ylabel 给y轴加标记 text 在图形指定的位置上加文本字符串 gtext 在鼠标的位置上加文本字符串 grid 打开网格线 2018/12/4 Application of Matlab Language
Application of Matlab Language plot绘图函数的参数表 字元 颜色 图线型态 y 黄色 . 点 k 黑色 o 圆 w 白色 x b 蓝色 + g 绿色 * r 红色 - 实线 c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线 2018/12/4 Application of Matlab Language
Application of Matlab Language 图像练习 (1) (2) (3) (4) (5) 2018/12/4 Application of Matlab Language
Application of Matlab Language 其他绘图函数 三维网格图 mesh(x,y,z) 柱状图 bar(x,y) 饼图 pie(x,explode) 2018/12/4 Application of Matlab Language
Application of Matlab Language 三维网线图(mesh) 画函数z=f(x,y)所代表的三维空间曲面,需要做以下 的数据准备工作: 确定自变量的取值范围和取值间隔。 x=x1:dx:x2; y=y1:dy:y2; 构成x-y平面上的自变量采样“格点”矩阵。 利用指令meshgrid产生“格点”矩阵 [x, y]=meshgrid(x,y) ; 计算函数在自变量采样“格点”上的函数值, 即z=f(x,y)。 曲面图绘制 2018/12/4 Application of Matlab Language
Application of Matlab Language 举例 绘制函数z=x^2+y^2的曲面 x=-4:4;y=x; [x,y]=meshgrid(x,y); %生成 x-y 坐标“格点”矩阵 z=x.^2+y.^2; %计算格点上的函数值 mesh(x,y,z); %三维网格图 surf(x,y,z); %三维曲面图 colormap(hot); 2018/12/4 Application of Matlab Language
Application of Matlab Language 函数z=x^2+y^2的曲面的绘制结果 2018/12/4 Application of Matlab Language
Application of Matlab Language 例3.15 x = -2.9:0.2:2.9; bar(x,exp(-x.*x),'r') 2018/12/4 Application of Matlab Language
Application of Matlab Language 例3.16 北京市从业人员统计 1990年 1995年 2000年 第一产业 90.7 70.6 73.9(万人) 第二产业 281.6 271 214.6 第三产业 254.8 323.7 326.5 执行以下语句: year=[1990 1995 2000]; people=[90.7 281.6 254.8; 70.6 271 323.7; 73.9 214.6 326.5]; bar(year, people, ‘stack’); legend(‘\fontsize{6}第一产业’, ‘\fontsize{6}第二产业’, ‘\fontsize{6}第三产业'); 2018/12/4 Application of Matlab Language
Application of Matlab Language bar(year, people, ‘group’); % 分组式直方图 legend(‘\fontsize{6}第一产业’, ‘\fontsize{6}第二产业’, ‘\fontsize{6}第三产业'); 2018/12/4 Application of Matlab Language
Application of Matlab Language 2018/12/4 Application of Matlab Language
Application of Matlab Language 关系操作符 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 ~= 不等于 运算法则:若关系式成立,结果为1; 若关系式不成立,结果为0。 A=[1 4 3 5 7] B=[2 6 9 0 7] A==B ans= 0 0 0 0 1 2018/12/4 Application of Matlab Language
Application of Matlab Language 8、逻辑运算 MATLAB逻辑运算 逻辑操作符 a=1:2:11 b=2:7 (a<2)|(b>6) ans= 1 0 0 0 0 1 & 与 | 或 ~ 非 运算法则: 若逻辑真,结果为1; 若逻辑假,结果为0。 2018/12/4 Application of Matlab Language
Application of Matlab Language 数据分析与统计 1、求向量的最大值和最小值 求一个向量X最大值的函数调用格式: (1) y=max(X):返回向量X的最大值存入y; (2)[y,I]=max(X):返回向量X的最大值存入y,最大值 的序号存入I。 求向量X的最小值的函数是min(X) 2、求和与求积 sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 2018/12/4 Application of Matlab Language
Application of Matlab Language 【例7-1】求向量的最大值 >>x=[-43,72,9,16,23,47]; >>y=max(x) %求向量x中的最大值 y = 72 >>[y,l]=max(x) %求向量x中的最大值及其该元素的位置 l = 2 2018/12/4 Application of Matlab Language
Application of Matlab Language 程序控制结构 顺序结构 选择结构 循环结构 任何复杂的程序都可以由这3种基本结构构成。 2018/12/4 Application of Matlab Language
Application of Matlab Language 顺序结构 顺序结构是指按照程序中语句的排列顺序依次执行,直到程序的最后一个语句。(最简单的一种程序) 1、数据的输入 从键盘输入数据,则可以使用input函数来进行, 调用格式为: A = input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入数据。 例如:从键盘输入A矩阵,可以采用下面的命令来完成 A = input(‘输入A矩阵’); 如果在input函数调用时采用’s’选项,则允许用户输入一个字符串。 例:xm = input(‘What’’s your name?’,’s’); 2018/12/4 Application of Matlab Language
Application of Matlab Language 顺序结构 2、数据的输出 命令窗口输出函数主要有disp函数,其调用格式为: disp(输出项) 其中输出项既可以为字符串,也可以为矩阵。例如: A = ‘Hello, Tom’; disp(A) 输出为:Hello, Tom 又如:A = [1,2,3;4,5,6;7,8,9]; 输出为: 1 2 3 4 5 6 7 8 9 %disp函数输出格式更紧凑 2018/12/4 Application of Matlab Language
Application of Matlab Language 选择结构 选择结构是根据给定的条件成立或不成立,分别执行不同的语句。 Matlab用于实现选择结构的语句有if语句,switch语句。 1. if语句 语句格式: if 条件1 语句组 1 elseif 条件2 语句组 2 … else 语句组n end 2018/12/4 Application of Matlab Language
Application of Matlab Language 选择结构 例 计算分段函数: 程序如下: x = input(‘请输入x的值:'); if x <0 y = 2*x; elseif x>=0&x<=5 y = 3*x; else y=2*x+5; end y 2018/12/4 Application of Matlab Language
Application of Matlab Language 选择结构 switch语句 switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式: switch 表达式 case 表达式1 语句组1 … case 表达式m 语句组m otherwise 语句组 n end 2018/12/4 Application of Matlab Language
Application of Matlab Language 选择结构 例 某商场对顾客所购买的商品实行打折销售,标准如下: price<200 没有折扣 200<=price<500 3%折扣 500<=price<1000 5%折扣 1000<=price<2500 8%折扣 2500<=price<5000 10%折扣 5000<=price 14%折扣 输入所售商品的价格,求其实际销售价格。 2018/12/4 Application of Matlab Language
Application of Matlab Language 选择结构 price = input(‘请输入商品价格’); switch fix(price/100) case{0,1} %价格小于200 rate = 0; case{2,3,4} rate = 3/100; %价格大于等于200但小于500 case num2cell(5:9) rate = 5/100; %价格大于等于500但小于1000 case num2cell(10:24) rate = 8/100; %价格大于等于1000但小于2500 case num2cell(25:49) rate = 10/100; %价格大于等于2500但小于5000 otherwise rate = 14/100; %价格大于等于5000 end price = price*(1-rate) %输出商品实际销售价格 2018/12/4 Application of Matlab Language
Application of Matlab Language 循环结构 循环是指按照给定的条件,重复执行指定的语句,Matlab 提供了两种实现循环结构的语句:for语句和while语句。 1、for语句 for语句的格式为: for 循环变量 =表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式2的值为步 长,表达式3的值为循环变量的终值。步长为1时,表达式 2可以省略。 2018/12/4 Application of Matlab Language
Application of Matlab Language 循环结构 已知 ,当n=100时,求y的值。 程序如下: y = 0;n = 100; for i=1:n y = y+1/i*i; end y 2018/12/4 Application of Matlab Language
Application of Matlab Language 循环结构 2、while语句 while语句的一般格式为: while条件 循环体语句 end 其执行过程为: 若条件成立,则执行循环体语句,执行后再判断条件是否成立, 如果不成立则跳出循环。 2018/12/4 Application of Matlab Language
Application of Matlab Language 循环结构 3、break语句和continue语句 它们一般与if语句配合使用。 break语句用于终止循环的执行。 当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。 continue语句控制跳过循环体中的某些语句。 当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。 2018/12/4 Application of Matlab Language