您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 第2章MATLAB语言基础
2019/12/20内蒙古大学自动化系1数值计算与MATLAB第2章MATLAB语言基础内蒙古大学自动化系2第2章MATLAB语言基础2.0引言数值矩阵及其运算符号矩阵及其运算基本绘图方法MATLAB编程MATLAB的基础内容第2章MATLAB语言基础内蒙古大学自动化系32.0.1标识符(identifier)在MATLAB语言中,把标志变量、常量或文件名称的字符串称为标识符。一串符号的组合叫字符串(characterarray或string)标识符由字母、数字和下划线组成,且它的第一个符号必须得用英文字母。“fun_01”、“x03”“8ty”、“f(x)”、“k-q”、“文_01”第2章MATLAB语言基础内蒙古大学自动化系42.0.2MATLAB中的数据及变量类型1.三种数据类型数值型数据,简称数值(doublearray型数据)字符串型数据,简称字符量(chararray型数据)符号型数据,简称符号量(symobject型数据)sym(数字、字符串、字符变量名、字符表达式)symsa1a2a3在指令窗中键入class(a),回车即可得知已有变量a是哪种类型的数据。第2章MATLAB语言基础内蒙古大学自动化系52.变量名及其赋值代表上述三种数据的标识符让某个变量名等价地代表确定的数值、字符串或符号数据格式如下:变量名=数据或已赋过值的变量名第2章MATLAB语言基础内蒙古大学自动化系62.1数值矩阵数值矩阵的基本形式是复数矩阵,一个数值、向量或实数矩阵都可以看作是复数矩阵的特例。2.1.1永久性数值变量名系统事先定义了的“数值变量名”,系统一旦启动它们就已存在,而且总是代表着固定的数值。piepsansINF或Infi、jNaN第2章MATLAB语言基础内蒙古大学自动化系72.1.2数值矩阵的创建1.直接输入元素—创建数值矩阵的直接方法①矩阵的所有元素必须置于方括号“[]”内;②矩阵一行中元素之间用逗号“,”或空格分隔;矩阵相邻两行之间用分号“;”间隔或回车换行;③如果输入内容太多,屏幕宽度不够或其它原因需要中途换行时,可键入三个连续的英文格式句号“…”,称为续行号,回车后可继续键入后续的内容。续行号后的回车只是“换行”而不是“执行指令”。续行号不得加在矩阵一行中的两个元素之间;第2章MATLAB语言基础内蒙古大学自动化系8④矩阵元素可以是实数、复数、向量、矩阵等数值量或其变量名,每行中元素个数必须相等;⑤输完矩阵内容后加逗号“,”或回车,则显示出创建矩阵的内容;若在包含矩阵元素的右侧方括号外加有英文格式分号“;”,回车完成创建任务但不显示矩阵内容;⑥指令窗中同一行内输入几个矩阵或指令时,它们之间必须用逗号或分号间隔;⑦完成矩阵输入后,无论光标在行内的什么位置,只要按回车键则“执行”该行的指令,不必非把光标移到行末再按回车(这里的回车作用是“执行”而不是“换行”)。第2章MATLAB语言基础内蒙古大学自动化系9例2-1创建矩阵a=,但不显示在屏幕上。例2-2利用例2-2中的矩阵a,创建一个新矩阵a=。Notes:1、逗号和分号在创建矩阵语句中的作用不同。2、复数矩阵的创建。1453219i3i2145321第2章MATLAB语言基础内蒙古大学自动化系102.创建特殊数值矩阵的指令输入法对于某些特殊矩阵,MATLAB中设有直接创建的专用指令,这给它们的创建、运算,特别是给编程带来很多方便。zeros(n)zeros(m,n)ones(n)ones(m,n)eye(n)rand(n)rand(m,n)randn(n)randn(m,n)magic(n)diag(a,k)tril(a)triu(a)第2章MATLAB语言基础内蒙古大学自动化系11例2-3创建一个3×4阶的全零阵。例2-4创建一个2×4阶均匀分布随机矩阵。例2-5创建3阶、4阶魔方矩阵。演示指令diag(a,k)、tril(a)和triu(a)。第2章MATLAB语言基础内蒙古大学自动化系123.变换矩阵结构的指令不改变矩阵中元素的总数和各元素的取值,仅使其位置发生变化。如使矩阵整体发生旋转、翻转等变换,称为变换矩阵结构。flipud(A)fliplr(A)rot90(A,k)rot90(A)reshape(A,m,n)例2-6使三阶魔方矩阵左右翻转。例2-7将例2-4中的2×3阶矩阵as变成3×2阶矩阵。第2章MATLAB语言基础内蒙古大学自动化系134.一些特殊向量(行矩阵)的创建1)等差数列型向量的创建增量输入法:t=a:h:bt=[a:h:b]t=(a:h:b)指令输入法:t=linspace(a,b,n)增量输入法与指令输入法的关系当(b-a)可被h整除时,设t=(a:h:b)=linspace(a,b,n),则h=(b-a)/(n-1)或n=(b-a)/h+1。第2章MATLAB语言基础内蒙古大学自动化系142)等比数列型向量的创建q=logspace(log10(a),log10(b),n)q=logspace(as,bf,n)例2-8创建矩阵d=。87654321第2章MATLAB语言基础内蒙古大学自动化系155.创建n个分量都等于1的向量•ones(1,n)•linspace(1,1,n)•logspace(0,0,n)6.常数变量的赋值一个常数可以看作一行一列的矩阵,也可以看作是点向量,它的赋值可以有3种方法。第2章MATLAB语言基础内蒙古大学自动化系162.1.3数值矩阵元素的标识与修改用一个符号代表已输入数值矩阵的单个或部分元素,称为矩阵元素的标识。1.矩阵元素的标识方法1)a(p)“先列后行”,a(:)2)a(m,n)3)a(m,[p,q,r])4)a(p:q,n)5)a([p,q,r],[w,s])6)A(:,:,n)第2章MATLAB语言基础内蒙古大学自动化系17例2-9a=,下列变量名各表示什么样的矩阵:d=a(2,1)d1=a(:,3)d2=a(1:2,:)d3=a([1,3],[2,3])9i3i2145321第2章MATLAB语言基础内蒙古大学自动化系18例2-10已知A=reshape(1:8.5,2,4)B=,如何用A组合成B?42468113572864237531第2章MATLAB语言基础内蒙古大学自动化系192.数值矩阵的增删修改要想对已输入矩阵a的部分或某个元素进行修改,首先将欲修改部分加以标识,然后再对被标识部分重新赋值。所以,矩阵的增删修改,实际上就是对被修改部分元素的标识和重新赋值。第2章MATLAB语言基础内蒙古大学自动化系20例2-11把例2-9中矩阵a增加一个第四行,其数值为3,6,9。例2-12使例2-11中矩阵a的第三行元素全部消失。例2-13把例2-12中矩阵a的第二列改为259,并增加一个第四列:057。第2章MATLAB语言基础内蒙古大学自动化系212.1.4数值矩阵的矩阵算法MATLAB对数值矩阵提供了两种不同的运算方法:矩阵算法和数组算法。1.数值矩阵维数的查验和矩阵的转置1)查验矩阵维数指令:size(a)或size(a,r)2)求矩阵共轭转置的指令:“'”求矩阵共轭的指令:conj求矩阵转置的方法?第2章MATLAB语言基础内蒙古大学自动化系22例2-14已知a=,求a的共轭矩阵和共轭转置矩阵。i8478i2i93i1第2章MATLAB语言基础内蒙古大学自动化系232.矩阵算法中的矩阵加、减和乘法运算①“+”、“-”和“*”;②矩阵进行加、减运算时,它们的维数必须相同,即行数、列数分别相等;③两个矩阵相乘时,它们的内维数必须相等,即左矩阵的列数必须等于右矩阵的行数,用a*b或指令mtimes(a,b);第2章MATLAB语言基础内蒙古大学自动化系24④进行方阵a的n次幂an运算时,输入a^n或mpower(a,n):若整数n0;若整数n0;若n是非整数;⑤在MATLAB中赋予如下规定:若a为矩阵,d为常数,作a±d的运算意义为a±d=a±d*ones(size(a))第2章MATLAB语言基础内蒙古大学自动化系25例2-15已知矩阵a=,b=,c=,求:a+c,ab,ac,ca。952145321921653174825216第2章MATLAB语言基础内蒙古大学自动化系26例2-16已知a=,计算方阵a的幂乘:a2和a-3。例2-17已知d=5,a=,计算:a-d。i95214i543i211952145321第2章MATLAB语言基础内蒙古大学自动化系273.数值矩阵的求逆及矩阵算法中的除法1)求方阵逆阵的指令inv2)求矩阵伪逆阵的指令pinv3)左除x=inv(a)*b或x=a\b或mldivide(a,b)4)右除x=b*inv(a)、x=b/a或mrdivide(b,a)第2章MATLAB语言基础内蒙古大学自动化系28例2-18已知a=,求a的逆阵g=a-1。例2-19已知a=和b=,分别求解矩阵方程ax=b和ya=bT中的x、y。i95316i548i215403410234321第2章MATLAB语言基础内蒙古大学自动化系294.矩阵函数定义域和值域都属于方阵的函数称为矩阵函数。方阵函数f(a)=expm(a)logm(a)sqrtm(a)funm(a,@f)0kkkaC第2章MATLAB语言基础内蒙古大学自动化系30例2-20设方阵a=,求sin(a)。351974714a=[417;479;153];sina=funm(a,@sin)或funm(a,'sin')第2章MATLAB语言基础内蒙古大学自动化系312.1.5数值矩阵的数组算法1.查验向量维数的指令length(a)①输入参数a为向量时,则输出向量a的维数;②输入参数a为列阵(或行阵)时,输出a的列(或行)数;③输入参数a是m×n阶矩阵时,则输出行数和列数的最大值:max(m,n)=max(size(a))。例2-21求向量t=0:0.2:2.1的维数。第2章MATLAB语言基础内蒙古大学自动化系322.数值矩阵间数组算法的四则运算•对应元素之间的四则运算。因此,参与数组运算的矩阵维数必须严格相同。•数组算法的乘除运算与矩阵算法定义不同,使用的符号也不同,数组算法的乘除符号是在矩阵算法乘除符号前面加一个小黑点。a.*ba.^na./ss.\aa./bb.\as./aa.\s第2章MATLAB语言基础内蒙古大学自动化系33例2-22已知a=,c=,计算a.*c、a*c、a.^3和a^3。例2-23已知矩阵a=,求a的平方及a中每个元素的立方根。95214532117482521621612581641252781第2章MATLAB语言基础内蒙古大学自动化系343.数值矩阵间数组乘法和矩阵乘法的差异矩阵乘法不遵从交换律矩阵的数组乘法是遵从交换律的4.数组算法中的基本初等函数运算sin(x)asin(x)cos(x)sec(x)tan(x)atan(x)exp(x)log(x)log2(x)log10(x)sqrt(x)cot(x)sinh(x)cosh(x)real(x)imag(x)abs(x)angle(x)pow2(x)max(x)mean(x)sum(x)sign(x)round(x)fix(x)floor(x)ceil(x)rem(x1,x2)mod(x1,x2)median(x)prod(m:n)factorial(x)第2章MATLAB语言基础内蒙古大学自动化系35例2-24分别求出当x=1、2、3、5、4、9时,和2x的值。例2-25求、、和,表示m个元素中取n个的组合。x510C38C27C46CnmC第2
本文标题:第2章MATLAB语言基础
链接地址:https://www.777doc.com/doc-2154739 .html