MATLAB理论基础_第1页
MATLAB理论基础_第2页
MATLAB理论基础_第3页
MATLAB理论基础_第4页
MATLAB理论基础_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 逗号逗号或或空格空格用于分隔某一行的元素,用于分隔某一行的元素,分号分号用于区分不用于区分不同的行。除了分号,在输入矩阵时,按同的行。除了分号,在输入矩阵时,按Enter键也表示开键也表示开始一新行。输入矩阵时,严格要求所有行有相同的列始一新行。输入矩阵时,严格要求所有行有相同的列。1 1 矩阵及其运算矩阵及其运算1.1 矩阵的直接输入矩阵的直接输入 例例 A=1 2 3 4; 5 6 7 8; 9 10 11 12 B=1 1 1 1 2 2 2 2 3 3 3 3附录附录 MATLAB使用使用入门入门2MATLAB(matrix1)d=eye(m, n) 产生一个产生一个m行、行、n列

2、的单位矩阵列的单位矩阵c=ones(m, n) 产生一个产生一个m行、行、n列的元素全为列的元素全为1的矩阵的矩阵b=zeros(m, n) 产生一个产生一个m行、行、n列的零矩阵列的零矩阵a= 产生一个空矩阵,当对一项操作无结果时,产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零返回空矩阵,空矩阵的大小为零. 1.2 矩阵的函数生成矩阵的函数生成e=rand(m, n) 产生一个产生一个m行、行、n列的列的 (0,1)均匀分布随机矩阵均匀分布随机矩阵1 矩阵及其运算3MATLAB(matrix2)(1)矩阵)矩阵A的第的第r行:行:A(r, :)(2)矩阵)矩阵A的第的第r

3、列:列:A(: , r)(4)取矩阵)取矩阵A的第的第i1i2行、第行、第j1j2列构成新矩阵列构成新矩阵:A(i1:i2, j1:j2)(5)以逆序提取矩阵)以逆序提取矩阵A的第的第i1i2行,构成新矩阵行,构成新矩阵: A(i2:-1:i1, :)(6)以逆序提取矩阵)以逆序提取矩阵A的第的第j1j2列,构成新矩阵列,构成新矩阵:A(:, j2:-1:j1 )(7)删除)删除A的第的第i1i2行,构成新矩阵行,构成新矩阵:A(i1:i2, :)= (8)删除)删除A的第的第j1j2列,构成新矩阵列,构成新矩阵:A(:, j1:j2)= (9)将矩阵)将矩阵A和和B拼接成新矩阵:拼接成新矩阵

4、:A B;A;B(3)依次提取矩阵)依次提取矩阵A的每一列,将的每一列,将A拉伸为一个列向量:拉伸为一个列向量:A(:)1.3 矩阵的裁剪与拼接矩阵的裁剪与拼接拼接拼接注意行数和列数的一致注意行数和列数的一致1 矩阵及其运算41.4 基本运算基本运算左除左除 AX=B X=AB右除右除/ XA=B X=B/A1.5 特殊运算特殊运算MATLAB(fourth)1 矩阵及其运算复数矩阵的转置复数矩阵的转置是共轭转置是共轭转置 + 加法加法 - 减法减法 * 乘法乘法 乘幂乘幂 左除左除 / 右除右除 转置转置 .* “点点”乘法乘法 . “点点”乘幂乘幂. “点点”左除左除 ./ “点点”右除右

5、除 . “点点”转置转置 前四者:同维矩阵前四者:同维矩阵对应元素进行运算对应元素进行运算复数矩阵的复数矩阵的“点点”转置是普通转置转置是普通转置 注意体会:矩阵与常数进行上述运算的含义注意体会:矩阵与常数进行上述运算的含义51.6 行向量(数组)的特殊输入方式行向量(数组)的特殊输入方式a:m:b 从从a到到b公差为公差为m的等差数组(的等差数组(m=1时用时用a:b)linspace(a,b,n) 从从a到到b共共n个数值的等差数组个数值的等差数组logspace(a,b,n) 从从10a到到10b共共n个数值的等比数组个数值的等比数组x=a b c d e f 创建包含指定元素的行向量创

6、建包含指定元素的行向量MATLAB(shuzu1)1 矩阵及其运算61.7 数组元素的访问数组元素的访问MATLAB(shuzu2)(3)直接使用元素编址序号直接使用元素编址序号: x(a b c d) 表示提表示提取数组取数组x的第的第a、b、c、d个元素构成一个新的数组个元素构成一个新的数组x(a) x(b) x(c) x(d). (2)访问一块元素:访问一块元素: x(a :b :c)表示访问数组表示访问数组x的从的从第第a个元素开始,以步长为个元素开始,以步长为b到第到第c个元素(但不超过个元素(但不超过c),b可以为负数,可以为负数,b缺损时为缺损时为1. (1)访问一个元素:访问一

7、个元素: x(i)表示访问数组表示访问数组x的第的第i个元素个元素. 1 矩阵及其运算72 语句语句和函数以及其他数据类型和函数以及其他数据类型2.1 语句语句变量由字母、数字和下变量由字母、数字和下划线组成,区分大小写划线组成,区分大小写字母,最多字母,最多31个字符,个字符,第一个为字母,不需要第一个为字母,不需要说明变量类型说明变量类型 /维数维数赋值:变量赋值:变量= =表达式表达式( (返回变量返回变量) )计算:表达式计算:表达式( (返回返回ans) )常用语句形式常用语句形式过程:函数调用、流程控制等过程:函数调用、流程控制等赋值语句以赋值语句以“;”;”结束结束( (不输出不

8、输出););以以“,”,”或或“ ”“ ”结束结束( (输输出出) )变量变量特殊常量特殊常量pi 圆周率圆周率 ; eps 最小浮点数最小浮点数Inf 正无穷大正无穷大; i, j 虚数单位虚数单位NaN 不定值不定值(或非数或非数)(0/0等等)字符串字符串是以单引号是以单引号括起来的字符集合,括起来的字符集合, 可以像向量一样进行拼接和裁剪。可以像向量一样进行拼接和裁剪。82.2 标量函数标量函数一元函数:如一元函数:如三角、指数、对数、取整等基本函数三角、指数、对数、取整等基本函数多元函数:如同余多元函数:如同余(rem)、四象限反正切、四象限反正切(atan2)作用于标量,或矩阵作用

9、于标量,或矩阵( (数组数组) )的每一元素的每一元素标量函数标量函数向量函数向量函数按自变量按自变量类型分类类型分类矩阵函数矩阵函数有些函数无自变量有些函数无自变量, ,甚至也不返回结果甚至也不返回结果(命令(命令/ /过程)过程)函数函数定义:定义: f=sin f=inline(sin(x) (非句柄非句柄) 求值:求值:feval(f,x) feval(sin,x) sin(x)函数函数句柄句柄2 语句和函数以及其他数据类型92.3 向量函数向量函数如:如:max, min, sum, mean, length, sort, 作用于作用于( (列或行列或行) )向量,或矩阵的每一列向量

10、向量,或矩阵的每一列向量矩阵构造矩阵构造矩阵计算矩阵计算zeros, ones, eye, rand, diag, triu, tril, size, det, rank, inv, eig, trace, norm, 2.4 矩阵函数矩阵函数矩阵重整矩阵重整reshape, 作用于矩阵作用于矩阵2 语句和函数以及其他数据类型10*2.5 高维矩阵高维矩阵如:如:=abc ABC; student.fee=5000.00; student.credit=4,3,2,3;85,60,90,70 三维或更高维的矩阵三维或更高维的矩阵( (低维优先访问低维优先访问) )*2.

11、6 结构变量结构变量(Structure)由由“域域”组成的变量;通过组成的变量;通过“.”.”操作符访问操作符访问 “ “域域” 定义方法:也可以用定义方法:也可以用 struct 函数生成结构变量函数生成结构变量 2 语句和函数以及其他数据类型11*2.7 元胞矩阵元胞矩阵(Cell)如:如:student(1,1)=abc ABC; student(1,2)=5000.00; student(2,1)=4,3,2,3;85,60,90,70 每个元素的类型可以不同(数值,字符,结构等)每个元素的类型可以不同(数值,字符,结构等) 定义方法:也可以用定义方法:也可以用 cell 函数生成元

12、胞矩阵函数生成元胞矩阵 效果:效果:student = abc ABC 5000 2x4 double 2 语句和函数以及其他数据类型12*2.8 数据类型的判断与转换数据类型的判断与转换numeric double (双精度双精度)(默认默认),single (单精度单精度)int8 (8位整数位整数),uint8 (无符号无符号 8 位整数位整数)int16 (16位整数位整数),uint16(无符号无符号16位整数位整数)int32 (32位整数位整数),uint32(无符号无符号32位整数位整数)int64 (64位整数位整数),uint64(无符号无符号64位整数位整数)char l

13、ogical 1/0 (true/false) struct 用户自定义的类用户自定义的类cell function_handle “ +函数名函数名”javaisa(obj, class_name)isnumeric, ischar, str2num, num2strstr2func, func2str, floatinteger2 语句和函数以及其他数据类型13数据统计分析函数数据统计分析函数例:计算例:计算16袋糖果的样本均值、样本标准差袋糖果的样本均值、样本标准差506 508 499 503 504 510 497 512 514 505 493 496 506 502 509 49

14、62 语句和函数以及其他数据类型14矩阵运算矩阵运算例例2 语句和函数以及其他数据类型15基础解系基础解系有理基有理基2 语句和函数以及其他数据类型16一个特解一个特解2 语句和函数以及其他数据类型172 语句和函数以及其他数据类型18行最简形行最简形2 语句和函数以及其他数据类型19匿名函数和一元连续匿名函数和一元连续函数的图象、零点及最值函数的图象、零点及最值用于在命令窗口或者程序文件中快速用于在命令窗口或者程序文件中快速创建由表达式定义的简单函数。语法创建由表达式定义的简单函数。语法格式:格式:fhandle=(arglist)expr2 语句和函数以及其他数据类型202 语句和函数以及

15、其他数据类型212 语句和函数以及其他数据类型222 语句和函数以及其他数据类型232 语句和函数以及其他数据类型242 语句和函数以及其他数据类型25定义定义-f(x)的匿名函数的匿名函数2 语句和函数以及其他数据类型26定义定义 h(x)=f(x)-20 的的匿名函数匿名函数2 语句和函数以及其他数据类型273. 命令和窗口环境命令和窗口环境3.1 在线帮助系统在线帮助系统help 程序或主题名程序或主题名(help 将给出所有主题名)将给出所有主题名)3.2 数据显示格式数据显示格式short (缺省缺省) 小数点后小数点后4位位, long 15位数字,位数字,short e 5位科学

16、计数,位科学计数,long e 15位科学计数位科学计数通过通过File下子菜单下子菜单Preferences选择;用选择;用format加格式选择加格式选择常用常用格式格式3.3 命令行编辑命令行编辑 调出前一行命令进行修改,重新计算调出前一行命令进行修改,重新计算 283. 命令和窗口环境命令和窗口环境3.4 MATLAB命令窗口命令窗口除运算外可用命令实现的主要功能除运算外可用命令实现的主要功能显示显示储存储存调出调出搜索搜索管理管理清除清除退出退出who, whos, disp(x)save, 或或File下的下的Save Workspace asloadclear, clear(x)

17、, clear all, clc, clf, clapath, 或或File下的下的Set Pathwhat, dir, cd , type , delete, whichquit, 或或File下的下的Exit29命命 令令命命 令令 选选 项项clear工作空间中清除所有变量工作空间中清除所有变量clear all工作空间中清除所有变量和函数工作空间中清除所有变量和函数clc清除指令窗口中显示内容清除指令窗口中显示内容delete 从磁盘删除指定文件从磁盘删除指定文件help 获得在线帮助获得在线帮助save 保存工作空间变量到指定文件保存工作空间变量到指定文件name.matsave x

18、,y保存工作空间变量保存工作空间变量x,y到指定文件到指定文件name.matload 加载加载”name”文件中的变量到工作空间文件中的变量到工作空间load name x,y加载加载”name”文件中的变量文件中的变量x,y到工作空间到工作空间demo演示窗口演示窗口30编编 辑辑 键键说说 明明调用上一行调用上一行调用下一行调用下一行光标左移一个字符光标左移一个字符光标右移一个字符光标右移一个字符Ctrl + 光标左移一个单词光标左移一个单词Ctrl + 光标右移一个单词光标右移一个单词Home光标置于当前行开头光标置于当前行开头End光标置于当前行末尾光标置于当前行末尾Del删除光标处

19、的字符删除光标处的字符Backspace删除光标前的字符删除光标前的字符Alt + backspace恢复上一次删除恢复上一次删除314.1 二维图形二维图形4.2 三维图形三维图形图形处理图形处理实实例例特殊二、三维图形特殊二、三维图形32 Matlab作图是通过描点、连线来实现的,故在画一个作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传坐标(即横坐标和纵坐标),然后将该点集的坐标传给给Matlab函数画图函数画图. 命令为:命令为:PLOT(X,Y,S)PLO

20、T(X,Y)-画实线画实线X,Y是向量是向量,分别表示点集的横坐标和纵坐标分别表示点集的横坐标和纵坐标格式字符串,表示颜色、线型格式字符串,表示颜色、线型y 黄色黄色 r 红色红色 b 蓝色蓝色 k 黑色黑色-实线实线 : 虚线虚线 -.虚点线虚点线 -波折线波折线 . 圆点圆点 + 加号加号 o小圆圈小圆圈 *星号星号PLOT(X,Y1,S1,X,Y2,S2,X,Yn,Sn) -将多条线画在一起将多条线画在一起(1) plot4.1 二维图形二维图形3301234567-1-0.8-0.6-0.4-0.60.81例例1 在在0,2*pi用红线画用红线画sin(x),用蓝圈

21、画用蓝圈画cos(x). x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,r,x,z,bo)解解Matlab liti134(2) fplot注意:注意:1 fun必须是必须是M文件的函数名或是独立变量为文件的函数名或是独立变量为x的字符串的字符串. 2 fplot函数不能画参数方程和隐函数图形,函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。但在一个图上可以画多个图形。fplot(fun,lims) 表示绘制字符串表示绘制字符串fun指定的函数在指定的函数在lims=xmin xmax ymin ymax的图形的图形.35解解 先

22、建先建M文件文件myfun1.m: function y=myfun1(x) y=exp(2*x)+sin(3*x.2)再输入命令再输入命令:fplot(myfun1,-1,2)Matlab liti2. )3sin(2-1,222的图形的图形上画上画在在例例xeyx 或者或者fplot(exp(2*x)+sin(3*x.2),-1,2)或者或者 利用匿名函数利用匿名函数f=(x)exp(2*x)+sin(3*x.2);fplot(f,-1,2)36-1-0.500.511.52010203040506037-2-1.5-1-0.500.511.52-1-0.8-0.6-0.4-0.200.2

23、1Matlab liti3例例3 在在-2,2范围内绘制函数范围内绘制函数tanh的图形的图形.解解 fplot(tanh,-2,2)38解解 输入命令输入命令: fplot(tanh(x),sin(x),cos(x), 2*pi *-1 1 -1 1)Matlab liti4. )cos(),sin(),(t2,-2,4的的图图形形画画函函数数,的的取取值值范范围围都都在在例例xxxanhyx 比较比较 fplot(tanh(x),sin(x),cos(x), 2*pi*-1,1)-6-4-20246-1-0.8-0.6-0.4-0.60.81-6-4-

24、20246-6-4-20246391、在图形上加网格、标题和标记、在图形上加网格、标题和标记(1)GRID ON: 在当前图形上显示坐标网格在当前图形上显示坐标网格 GRID OFF: 不显示坐标网格不显示坐标网格(2)xlabel(string): 在当前图形上加上在当前图形上加上x轴标记轴标记ylabel(string): 在当前图形上加上在当前图形上加上y轴标记轴标记title(string): 在当前图形的顶端上加上标题在当前图形的顶端上加上标题zlabel(string): 在当前图形上加上在当前图形上加上z轴标记轴标记图形处理图形处理40例例5 在区间在区间0,2*pi画画sin(

25、x)的图形,加上坐标轴的图形,加上坐标轴 “自变量自变量X”、“函数函数Y” 和标题和标题“示意图示意图”,并加上网并加上网格格.解解 x=linspace(0,2*pi,30);y=sin(x);plot(x,y)xlabel(自变量自变量X)ylabel(函数函数Y)title(示意图示意图)grid onMatlab liti941(3)gtext(string) 在鼠标点击处加上字符串在鼠标点击处加上字符串 例例6 在区间在区间0,2*pi画画sin(x),cos(x)的图形,的图形,并分别标注并分别标注“sin(x)” ”cos(x)”.解解 x=linspace(0,2*pi,30

26、); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x)Matlab liti10(4)legend(str1,str2,strk,n) 在图形上添加文本框,在图形上添加文本框,n可取可取-1,0,1,2,3,4,指文本框的位置指文本框的位置添加文本框演示添加文本框演示4201234567-1-0.8-0.6-0.4-0.60.81sin(x)cos(x)432、定制坐标、定制坐标axis(xmin xmax ymin ymax zmin zmax)例例7 在区间在区间0.005,0.01显示显示sin(1

27、/x)的图形。的图形。解解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 -1 1)Matlab liti11定制图形坐标定制图形坐标将坐标轴返回到自动缺省值将坐标轴返回到自动缺省值axis autox、y、z的最小、最大值的最小、最大值4455.566.577.588.599.510 x 10-3-1-0.8-0.6-0.4-0.60.81453、图形保持、图形保持hold onhold off例例8 将将 y=sin(x)、y=cos(x)分别用点和线画出在分别用点和线画出在同一

28、屏幕上。同一屏幕上。解解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,z) hold on plot(x,y)Matlab liti12保持当前图形保持当前图形, 以便继续画图到当前图上以便继续画图到当前图上释放当前图形窗口释放当前图形窗口4601234567-1-0.8-0.6-0.4-0.60.81474、分割窗口、分割窗口subplot(m,n,p)划分整个作图区域为划分整个作图区域为m*n块(逐行对块访问)并激活块(逐行对块访问)并激活第第p块,其后的作图语句将图形画在该块上。块,其后的作图语句将图形画在该块上

29、。命令命令subplot(1,1,1)返回非分割状态。返回非分割状态。 subplot(1,1,1)48 解解 x=linspace(0,2*pi,100);y=sin(x); z=cos(x); a=sin(x).*cos(x); b=sin(x)./(cos(x)+eps);subplot(2,2,1); plot(x,y), title(sin(x) )subplot(2,2,2); plot(x,z), title(cos(x) )subplot(2,2,3); plot(x,a), title(sin(x)cos(x) )subplot(2,2,4); plot(x,b), titl

30、e(sin(x)/cos(x) )例例9 将屏幕分割为四块,并分别画出将屏幕分割为四块,并分别画出 y=sin(x), z=cos(x), a=sin(x)*cos(x), b=sin(x)/cos(x).Matlab liti134902468-1-0.500.51sin(x)02468-1-0.500.51cos(x)02468-0.500.5sin(x)cos(x)02468-100-50050100sin(x)/cos(x)50 空间曲线空间曲线 空间曲面空间曲面4.2 三维图形三维图形51PLOT3(x,y,z,s) 空空 间间 曲曲 线线 一条曲线一条曲线例例10 在区间在区间0,

31、10*pi画出参数曲线画出参数曲线x=sin(t), y=cos(t), z=t. Matlab liti5解解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋转旋转n维向量,分别表示曲维向量,分别表示曲线上点集的横坐标、纵线上点集的横坐标、纵坐标、函数值坐标、函数值指定颜色、指定颜色、线形等线形等52-1-0.500.51-1-0.500.5101020304053 PLOT3(x,y,z) 多条曲线多条曲线例例11 画多条曲线观察函数画多条曲线观察函数 Z=(X+Y).2. (这里(这里meshgrid(x,y)的作用是产生一个以向量

32、的作用是产生一个以向量x为行、向量为行、向量y为列的矩阵)为列的矩阵)Matlab liti6其中其中x,y,z是都是是都是m*n矩阵,其对应的每一列表示矩阵,其对应的每一列表示一条曲线一条曲线.解解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z)54-4-20241234502040608055空空 间间 曲曲 面面例例12 画函数画函数Z=(X+Y).2的图形的图形. 解解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z) sh

33、ading flat %将当前图形变得平将当前图形变得平滑滑Matlab liti7(1) surf(x,y,z)画出数据点(画出数据点(x,y,z)表示的曲面表示的曲面数据矩阵。分别表示数据点数据矩阵。分别表示数据点的横坐标、纵坐标、函数值的横坐标、纵坐标、函数值56-4-20241234502040608057(2) mesh(x,y,z) 解解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; mesh(X,Y,Z) Matlab liti8例例13 画出曲面画出曲面Z=(X+Y).2在不同视角的网格图在不同视角的网格图. 画网格曲

34、面画网格曲面数据矩阵。分别表示数据点数据矩阵。分别表示数据点的横坐标、纵坐标、函数值的横坐标、纵坐标、函数值58-4-20241234502040608059例例14 画函数画函数 ,x-8,8,y-8,8的图形。的图形。解解 x=-8:0.5:8; y=x;X,Y=meshgrid(x,y);%产生网格节点坐标矩阵产生网格节点坐标矩阵R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;mesh(X,Y,Z) %绘制三维网格表面图绘制三维网格表面图2222sin()xyzxy 若改为若改为surf命令,图形效果有所不同。命令,图形效果有所不同。60-10-50510-10-5051

35、0-0.500.51615 程程 序序 设设 计计5.1 关系运算符关系运算符关系成立时结果为关系成立时结果为1 1(表示真),否则为(表示真),否则为0 0(表示假)(表示假)625. 2 逻辑运算符逻辑运算符运算规则成立时结果为运算规则成立时结果为1 1,否则为,否则为0 05 程序设计逻辑函数逻辑函数and, or, not, xor all, any位运算函数位运算函数bitand, bitor, bitcmp, bitxor635.3 条件与循环语句条件与循环语句 条件和循环语句属于控制流语句,条件和循环语句属于控制流语句,MATLAB 常用常用的控制流(的控制流(control f

36、low)语句有四种)语句有四种(都要用(都要用 end 结束)结束): (1)for 循环语句;循环语句; (2)while 条件循环语句;条件循环语句; (3)if 条件分支语句(还要用到条件分支语句(还要用到 elseif 和和 else);); (4)switch 情况分支语句(还要用到情况分支语句(还要用到 case 和和 otherwise). 这些结构经常包含大量的这些结构经常包含大量的MATLAB命令,故经常出现在命令,故经常出现在MATLAB程序中,而不是直接加在程序中,而不是直接加在MATLAB提示符下提示符下. 5 程序设计if, for, while, switch, t

37、rybreak, continue64例例1 对对n=1,2,10,求求xn= 的值的值.10sin nMATLAB(for1)1、for 语句语句for循环:允许一组命令以固定的和预定的次数重复循环:允许一组命令以固定的和预定的次数重复一般形式为:一般形式为: for =: end 在在for和和end语句之间的命令串语句之间的命令串按按中的每一中的每一参数值执行一次参数值执行一次. 5 程序设计65例例2 用用 for 循环语句编程计算循环语句编程计算 1+2+3+100 的值的值.如果不用如果不用 for 循环语句,前面程序可用下面的命令:循环语句,前面程序可用下面的命令:显然,后一种方

38、法编写的程序比显然,后一种方法编写的程序比 for 循环语句快得多循环语句快得多.x=0;for i=1:100 x=x+i;endxa=1:100; x=sum(a)5 程序设计66 while end 当关系表达式的值为真(当关系表达式的值为真(1),语句就被反复执行,直至关),语句就被反复执行,直至关系表达式为假(系表达式为假(0)时终止。)时终止。 2、While语句语句 for循环主要应用于已知循环次数的情况,如果不知道循环循环主要应用于已知循环次数的情况,如果不知道循环次数,可以使用次数,可以使用while循环来完成,其表达方式为:循环来完成,其表达方式为:MATLAB(while

39、1) 例例3 设银行年利率为设银行年利率为11.25%。将。将10000元钱存入银元钱存入银行,问多长时间会连本带利翻一番?行,问多长时间会连本带利翻一番?5 程序设计673、if 语句语句(1)有一个选择的一般形式是:)有一个选择的一般形式是: if end 如果关系表达式的值为真(如果关系表达式的值为真(1),就执行),就执行if和和end之间的语句命令串。之间的语句命令串。 否则执行否则执行end的后续命令。的后续命令。MATLAB(fun1).1(),2( ,1, 51,2)( 42 ffxxxxxf求求设设例例 先建立先建立M文件文件fun1.m定义函数定义函数 f (x),再在,再

40、在Matlab命令窗口输入命令窗口输入fun1(2), fun1(-1)即可。即可。5 程序设计68(2) 有三个或更多的选择的一般形式是:有三个或更多的选择的一般形式是: if else if else if else end5 程序设计69).1(),5 . 0(),2( ,010211)( 532 fffxxxxxxxf求求设设例例 先建立先建立M文件文件fun2.m定义函数定义函数 f(x),再在再在Matlab命令窗口输入命令窗口输入fun2(2), fun2(0.5), fun2(-1)即可。即可。MATLAB(fun2)5 程序设计704、switch 语句语句switch语句根

41、据表达式的值来执行相应的语句,一般形式是:语句根据表达式的值来执行相应的语句,一般形式是: switch case valuel case value2 otherwise end 如果关系表达式的值为真(如果关系表达式的值为真(1),就执行),就执行switch和和end之间之间的语句命令串。的语句命令串。 否则执行否则执行end的后续命令。的后续命令。5 程序设计71例例65 程序设计72例例65 程序设计73例例65 程序设计74例例65 程序设计75例例65 程序设计765.4 脚本脚本M文件文件File New (Open) M-file必须以必须以m m为扩展名为扩展名: : 文件

42、名文件名.m.m将反复调试、随时调用的程序将反复调试、随时调用的程序( (命令序列命令序列) )储存起来储存起来5 程序设计77 MATLAB的内部函数是有限的,有时为了研究的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为某一个函数的各种性态,需要为MATLAB定义新函定义新函数,为此必须编写函数文件数,为此必须编写函数文件. 函数文件是文件名后缀函数文件是文件名后缀为为m的文件,这类文件的的文件,这类文件的第一行必须是一特殊字符第一行必须是一特殊字符function开始开始,格式为:,格式为: function 因变量名因变量名 = 函数名(自变量名)函数名(自变量名)函数值的获

43、得必须通过具体的运算实现,并赋给因函数值的获得必须通过具体的运算实现,并赋给因变量变量. 5.5 函数函数M文件文件M文件建立方法:文件建立方法:1. 在在Matlab中,点中,点: File-New-M-file 2. 在编辑窗口中输入程序内容在编辑窗口中输入程序内容 3. 点点 File-Save,存盘,存盘,M文件名必须文件名必须 与函数名一致。与函数名一致。Matlab的应用程序也以的应用程序也以M文件保存。文件保存。5 程序设计78例例7 定义函数定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2function f=fun(x)f=100*(x(2)-x(1)2)

44、2+(1-x(1)21.建立建立M文件:文件:fun.m2.可以直接使用函数可以直接使用函数fun.m例如:计算例如:计算 f(1,2),只需在只需在Matlab命令窗口键入命令:命令窗口键入命令:x=1 2fun(x)MATLAB(fun)5 程序设计798例例85 程序设计80例例85 程序设计81 注:可以在某一目录中建立一个自己命名的私有注:可以在某一目录中建立一个自己命名的私有目录来存放相关函数目录来存放相关函数. 如如 work zhang.例例85 程序设计82例例81 1 12 2 22 6 95 程序设计83文本文件文本文件(逗号分隔逗号分隔) :textread, csvr

45、ead, csvwrite5.6 数据数据文件的读写文件的读写文本文件文本文件(一般分隔一般分隔):dlmread, dlmwrite二进制文件:二进制文件:fopen, fread, fwrite, fclose格式化的文本输入格式化的文本输入/输出:输出:fscanf, fprintf菜单命令:菜单命令:File Import Data处理函数处理函数5 程序设计84例如,可用例如,可用dlmread读入带分隔符的文本中的读入带分隔符的文本中的数据,用法是:数据,用法是:M = dlmread (filename, delimiter)这里这里filename是文件名,是文件名,delim

46、iter是文件中的是文件中的分隔符名称(缺省为逗号,分隔符名称(缺省为逗号,“t” 为为TAB键),键),读入数据存放于矩阵读入数据存放于矩阵M中。中。5 程序设计856 符号工具箱使用简介符号工具箱使用简介 符号变量与符号表达式符号变量与符号表达式 微积分运算微积分运算 解方程解方程 线性代数线性代数 化简和代换化简和代换 其他其他6 符号工具箱使用简介86与数值运算的区别与数值运算的区别 数值运算中必须先对变量赋值数值运算中必须先对变量赋值,然后才能参与运算。,然后才能参与运算。 符号运算无须事先对独立变量赋值符号运算无须事先对独立变量赋值,运算结果以标准,运算结果以标准的符号形式表达的符

47、号形式表达。 特点特点 运算对象可以是没赋值的符号变量。运算对象可以是没赋值的符号变量。 可以获得任意精度的解。可以获得任意精度的解。 Symbolic Math Toolbox符号数学工具箱符号数学工具箱,通过调用通过调用Maple软件实现符号计算。软件实现符号计算。 Maple软件软件主要功能是符号运算,它占据主要功能是符号运算,它占据符号软件的主导地位。符号软件的主导地位。 6 符号工具箱使用简介876.1 符号变量与符号表达式符号变量与符号表达式1. 符号变量符号变量 sym函数函数(symbolic的缩写的缩写)例例 x=sym(x) y=sym(y) syms函数函数例例 syms

48、 x y z两者功能相同,但两者功能相同,但syms输入更方便。输入更方便。6 符号工具箱使用简介882. 符号表达式符号表达式 例例 f =sym(sin(x)+5*x) f 符号变量名符号变量名 sin(x)+5*x 符号表达式符号表达式 符号标识符号标识 符号表达式一定要用符号表达式一定要用 单引号括起来单引号括起来MATLAB才能识别。才能识别。6 符号工具箱使用简介89 的内容可以是符号表达式,也可以是的内容可以是符号表达式,也可以是符号方程符号方程。例例 f1=sym(a x2+b x+c) 二次三项式二次三项式 f2=sym( a x2+b x+c=0) 方程方程 f3=sym(

49、Dy+y2=1)微分方程微分方程符号表达式或符号方程可以赋给符号变量,符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参以后调用方便;也可以不赋给符号变量直接参与运算。与运算。6 符号工具箱使用简介90例例1 r=sym(1+sqrt(x)/2) syms a b t x y f=a*(2*x-t)3+b*sin(4*y) g=f+a*(2*r-1)3 findsym(g) r = (1+sqrt(x)/2 f = a*(2*x-t)3+b*sin(4*y) g = a*(2*x-t)3+b*sin(4*y)+a*x(3/2) ans = a, b, t, x, y

50、6 符号工具箱使用简介91 diff (f) 对缺省变量求微分(导数)对缺省变量求微分(导数) diff(f,t) 对指定变量对指定变量t求微分(导数)求微分(导数) diff(f,t,n) 对指定变量对指定变量t求求n阶导数阶导数 int(f) 对对f表达式的缺省变量求不定积分表达式的缺省变量求不定积分 int(f,t) 对对f表达式的表达式的t变量求不定积分变量求不定积分 int(f,t,a,b) 对对f表达式的表达式的t变量在变量在 (a,b)区间求定积分)区间求定积分6.2 微积分运算微积分运算6 符号工具箱使用简介92例例2 求导数求导数 y=sym(sin(a*x); g1=dif

51、f(y) g2=diff(y,2) g3=diff(y,x,2) g4=diff(y,a,1) g1 = cos(a*x)*a g2 = -sin(a*x)*a2 g3 = -sin(a*x)*a2 g4 = cos(a*x)*x6 符号工具箱使用简介93例例3 求积分求积分 y=sym(sin(a*x); g1=int(y) g2=int(y,a) g3=int(y,0,pi) g1 = -1/a*cos(a*x) g2 = -1/x*cos(a*x) g3 = -(cos(pi*a)-1)/a6 符号工具箱使用简介94例例4 求积分求积分 syms x k real; f = exp(-(

52、k*x)2); int(f,x,-inf,inf) ans = signum(k)/k*pi(1/2)dxekx 2)(6 符号工具箱使用简介95例例5 计算二重不定积分计算二重不定积分 F=int(int(x*exp(-x*y),x),y)F= 1/y*exp(-x*y)dxdyxexy6 符号工具箱使用简介96 符号矩阵的创建符号矩阵的创建 数值矩阵数值矩阵A=1,2;3,4 A=a,b;c,d 不识别不识别 用用MATLAB函数函数sym创建矩阵创建矩阵命令格式:命令格式:A=sym( ) 符号矩阵内容同数值矩阵符号矩阵内容同数值矩阵 需用需用sym指令定义指令定义 需用需用 标识标识6

53、 符号工具箱使用简介97例如例如 A = sym(a , 2*b ; 3*a , 0)A = a, 2*b 3*a, 0这就完成了一个符号矩阵的创建。这就完成了一个符号矩阵的创建。注意:符号矩阵的每一行的两端都有方号,这是注意:符号矩阵的每一行的两端都有方号,这是与与 MATLAB数值矩阵的一个重要区别。数值矩阵的一个重要区别。6 符号工具箱使用简介98 将数值矩阵转化为符号矩阵将数值矩阵转化为符号矩阵 函数调用格式:函数调用格式:sym(A)例如例如 A=1/3,2.5;1/0.7,2/5A = 0.3333 2.5000 1.4286 0.4000 sym(A) ans = 1/3, 5/

54、2 10/7, 2/5 符号矩阵与数值矩阵的转换符号矩阵与数值矩阵的转换6 符号工具箱使用简介99 将符号矩阵转化为数值矩阵将符号矩阵转化为数值矩阵函数调用格式:函数调用格式: numeric(A)例如例如(续续) A = 1/3, 5/2 10/7, 2/5 numeric(A)ans = 0.3333 2.5000 1.4286 0.4000此命令不好用此命令不好用可用可用double6 符号工具箱使用简介100当微积分运算作用于符号矩阵时,是作用于矩阵的每个元素。当微积分运算作用于符号矩阵时,是作用于矩阵的每个元素。 A=sym(sin(a*x),cos(a*x);-cos(a*x),

55、-sin(a*x), dy=diff(A)A = sin(a*x), cos(a*x) -cos(a*x), -sin(a*x)dy = cos(a*x)*a, -sin(a*x)*a sin(a*x)*a, -cos(a*x)*a A=sym(sin(a*x),cos(a*x);-cos(a*x), -sin(a*x); int(A)ans = -1/a*cos(a*x), sin(a*x)/a -sin(a*x)/a, 1/a*cos(a*x)101求极限和级数求极限和级数 limit(f,x,a)- ,若,若a=0,且是,且是对对x求求极限极限,可简写为,可简写为limit(f) lim

56、it(f,x,a,left)- 左极限左极限 limit(f,x,a,right)- 右极限右极限 symsum(s,t,a,b)-表达式表达式s中的符号变量中的符号变量t从从a到到b的的级数和级数和。 toylor(f,n,a)-函数函数f对符号变量对符号变量x=a点的点的n-1阶阶泰勒多项式泰勒多项式(缺省时(缺省时n=6,a=0))(limxfax)(limxfax )(limxfax 6 符号工具箱使用简介102例例6 求极限求极限 syms x n; limit(1 + x/n)n,n,inf) limit(1/x,x,0,left) ans = exp(x) ans = -infx

57、nxxnn1 ; )1(limlim0 6 符号工具箱使用简介103例例7 求级数和求级数和 syms x; s1 = symsum(x2,x,0,10) syms x k; s2 = symsum(xk,k,0,inf) s1 = 385 s2 = -1/(x-1) 01002 ; kkxxx6 符号工具箱使用简介104例例8 泰勒多项式泰勒多项式 syms x; taylor(sin(x) syms x; f= log(x);s=taylor(f,4,2) ans = x-1/6*x3+1/120*x5 s = log(2)+1/2*x-1-1/8*(x-2)2+1/24*(x-2)36

58、符号工具箱使用简介1056.3 解方程解方程 MATLAB符号运算能够解一般的线性方程、符号运算能够解一般的线性方程、非线性方程及一般的非线性方程及一般的代数方程、代数方程组代数方程、代数方程组。当方程组不存在符号解时,又无其他自由参数,当方程组不存在符号解时,又无其他自由参数,则给出数值解。则给出数值解。命令格式:命令格式:solve(f) 求一个方程的解求一个方程的解solve(f1,f2,fn) 求求n个方程的解个方程的解使用使用solve时,要求未知数的个数和方程的个数一致。时,要求未知数的个数和方程的个数一致。(1)非线性方程(组)非线性方程(组)6 符号工具箱使用简介106例例9

59、f = ax2+bx+c 求解求解 s=solve(a*x2+b*x+c) 对缺省变量对缺省变量x求解求解或或 syms a b c x f=a*x2+b*x+c;s=solve(f) s = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)计算机计算机格式格式aacbb242 一般格式一般格式6 符号工具箱使用简介107例例9(续)(续)solve( f, b ) 对指定变量对指定变量b求解求解 s=solve(a*x2+b*x+c ,b) 对缺省变量对缺省变量x求解求解或或 syms a b c x f=a*x2+b*x+c;s=sol

60、ve(f,b)s = -(a*x2+c)/x6 符号工具箱使用简介108例例10 分别对符号方程分别对符号方程cos(x)=sin(x), cos(2*x)+sin(x)=1求解求解 s1=solve(cos(x)=sin(x)f1 = 1/4*pi s2=solve(cos(2*x)+sin(x)=1)f2 = pi 0 1/6*pi 5/6*pi6 符号工具箱使用简介109例例11 解方程组解方程组 x+y+z=1 x-y+z=2 2x-y-z=1 f=solve(x+y+z=1,x-y+z=2,2*x-y-z=1)f = x: 1x1 sym y: 1x1 sym z: 1x1 sym

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论