MATAB实验教程——MATLAB 基本运算.docx
实验二 MATLAB基本运算一. 实验目的(1)通过实验,进一步熟悉MATLAB编程环境。(2)掌握MATLAB各种表达式的书写规则以及常用函数的使用。(3)能用MATLAB进行基本的数组、矩阵及符号运算。(4)掌握矩阵分析的方法以及能用矩阵求逆法解线性方程组。二. 实验原理(1)赋值语句1)变量=表达式2)表达式(2)矩阵的建立1)直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行 的各元素之间用空格或逗号分开,不同行的元素之间用分号分开。2)利用m文件建立矩阵3)利用冒号表达式建立一个向量el:e2:e34)利用linspace函数产生行向量linspace(a,b,n)三. 实验任务及步骤1变量和数组MATLAB程序的基本数据单元是数组。一个数组是以行和列组织起来的数据集合,并 且拥有一个数组名。数组可以定义为向量或矩阵。向量一般来描述一维数组,而矩阵往往来 描述二维或多维数组。2 MATLAB变量的初始化当变量初始化时,MATLAB将会自动建立变量。有三种方式初始化MATLAB中的变量:1)用赋值语句初始化变量,var = expression;2)用 input 函数从键盘输入初始化变量,my_val = input('Enter an input value:');3)从文件读取一个数据编程隐患:每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同.试图 创建一个不同行(列)拥有不同数目元素的数组,在编译时将会出现错误.表2. 1用于创始化变量的MATLAB函数函数作用zcros(n)创建一个nXn军矩蚱zcros(n,m)面建一不n X m室矩蚱zcros(sizc(arrB刨建一不与 薮纽arr的零短距oncs(n)创建一个nXn元素全为1矩阵ones(n,m)创建一个nX m元素全为1矩阵cyc(n)的建一不nX n检矩阵cyc(njn)而屉一个nX m的隼位矩阵icngtlMarr)近向二不而系下而正函三孤薮纸币邕良帝而二雍而良说一sizeCarr)应向指比驳面而行薮和制数3矩阵定义与引用 一维数组的创建 建立方法一:直接输入法»A=1 2 3 4»A=1,2, 3,4建立方法二:冒号法例题:建立数组A,其中A=1, 2, 3, 4, 5» A=l:l:5» A=l:5建立方法三:特殊方法调用格式:A=linspace(初始量,终止量,数组元素个数)B=logspace (初始量,终止量,数组元素个数)例题:生成数组A,其中A=l, 2, 3, 4, 5> >A=linspace(1, 5, 5)> >A=linspace(1, 5. 5, 5)> >A=linspace(1, 5, 5. 5)一维数组的引用:引用格式:arrayName (n);引用一维数组中的第n个元素arrayName (nl :n2);引用一维数组中的第nl至n2个元素arrayName(nl n2);引用一维数组中的第nl和n2个元素arrayName(nl n2);引用一维数组中的第nl和r)2个元素(x) 例题:»A=1,2, 3,4, 5»A(3)»A(1:3)二维数组的创建例题>> myArray=l 23456;6543215, sqrt(25), 10-5, 0+5, abs(-5), 5二维数组的引用:引用格式:arrayName (m, n);引用二维数组的第m行n列的元素arrayName (m,:);引用二维数组的第m行的所有列元素arrayName (:, n);引用二维数组的第n列的所有行元素arrayName(ml :m2, n);引用二维数组的第n列中ml至m2行的元素arrayName(m, nl :n2);引用二维数组的第m行中nl至n2列的元素arrayName(ml m2, n);引用二维数组的第n列中ml行和m2行的元素 arrayName(m, nl n2);引用二维数组的第m行中nl列和n2列的元 例题:»A=1,2, 3,4, 5;6, 7, 8, 9, 10»A(1,:)»A(:,3)»A(2, 1:2)»A(1:2, 2)4特殊变量在MATLAB中有许多预先定义好的特殊变量。在MATLAB中这些特殊变量可以随时 使用,不用初始化。一些常见的预定义值列在表2. 2。表2.2预定义特殊变量函数用途-pi有15个有效值的3修代我虚数&JG)这个符号代裹无穷天,它二般情况下总除以0声生的"NaN应不祸而袤浚港不薮二蔽由双承运霜布而丁椀面海仅6clock.适不用麻芟靠证布署而施军万二一仃百丁芬耳;一忌二不%垸祈两富date当前的H丽,他用的将字和形式,in 30-Dcc-2007第芟IF茗戛G/ion而葡豆丁忍农商既筋而弹面而两双三而而展不薮ans常用于存储未达式的结果,如果一个结果没有明确的赋值给某个变量5标量运算和数组运算位于赋值号右边的表达式,可以包含标量,数组,括号和数学符号的任一个有效联合运 算。两标量间的标准运算符号如表2. 3所示。表2. 3两标量间的数学运算符运算符代数形式MATLAB形式加号A+BA+B减写A-BA-B乘号AXBA*BJ 除号一A/BB 指数A'A八B表2. 4常见的数组和矩阵运算运算MATLAB形式注释数组加法A+B数组加法和矩阵加法相同数组减法A-B数组减法和矩阵减法相同数组乘法A.*BA和B的元素逐个对应相乘.网数组之间必须有相同 的形,或其中一个是标量.矩阵乘法A*BA和B的矩阵乘法.A的列数必须和B的行薮相同.数组右除法A./Ba Sb而元素逐个对应相除:A(iJ)/B(iJ)两数组之间必须有相同的形,或其中一个 是标量.数组左除法A ABA和B的元素逐个对应相除:B(iJ)/A(iJ)两数组之间必须有相同的形,或其中一个 是标量.矩阵右除法A/B矩阵除法,等价于A*inv(B), inv(B)是B的逆阵矩阵无除法A'B矩阵除法尊价于inv(B)*A, inv(A)是A的逆阵数组指数运算A.ABAB中的元素逐个进行如下运算A(ijB(iJ), A(iJ)/B(iJ)两数组之间必须有相同的形,或其中一个 是标量.当我们需要的时候,我们可以运用括号来控制运算顺序。括号内的表达式优先于括号外 的表达式来计算。MATLAB在数组运算中提供了两种不同类型的运算,一种是数组运算(array operations), 一种是矩阵运算(matrix) o数组运算是一种用于元素对元素的运算。也就是 说,这个运算是针对两数组相对应的运算使用的。注意两数组的行与列必须相同。否则, MATLAB将产生错误。数组运算可以用于数组与标量的运算。当一个数组和一个标量进行运 算时,标量将会和数组中的每一元素进行运算行目对地,矩阵运算则遵守线性代数的一般规 则,像矩阵的乘法。MATLAB用一个特殊的符号来区分矩阵运算和数组运算。在需要区分两者不同的时候, 把点置于符号前来指示这是一个数组运算(例如,.* )。表2.4给出的是一些常见的数组 和矩阵运算。x=AB 是方程 A*x=B 的解;inv (A) *Bx=B/A是方程x*A二B的解。若A为非奇异矩阵,则AB和B/A可如下获得:AB=inv (A)*B B/A=B*inv (A)求矩阵的秩例题:求矩阵A的秩。其中A=1 2 3;4 5 6o» A=l 2 3;4 5 6> > rank(A)矩阵的特征值例题:求矩阵A的特征值。其中A=l 0 0;0 2 0;0 0 3o» A=l 0 0;0 2 0; 0 0 3> > b = eig(A) ; c d=eig(A)方阵的行列式例题:求方阵A的行列式的值。其中A=1 1 0; 0 0 2; 0 5 -lo» A=l 1 0; 0 0 2;0 5 -1> > det (A)6实验内容1)已知:12 34A= 34 73 65-48713 -1B= 2 033-2 7求下列表达式的值:(1) K11 = A + 6*B和K12 = AB+/ (其中I为单位矩阵)(2) K21 = A*B和 K22 = A*B(3)长31 =万3和长32 =人3(4) K41 = A/B和 K42=3A K51 = A, B和 K52 =:); 8A 2 (6)求矩阵A的秩(rank); (7)求矩阵A的行列式(determinant)(8)求矩阵A的逆(inverse); (9)求矩阵A的特征值及特征向量(eigenvalue andeigenvector)2)设有矩阵A和B- 126 7A= 11 1216 1721 223 4 5 1 F 389 101713 14 15 ,B= 018 19 20923 24 25J L40 16-6 923 -47013 11* X 二 BX = inv(A)*B X = AB(1) 求它们的乘积C;(2) 将矩阵C的右下角3*2子矩阵赋给D;3)下面是一个线性方程组:一 1/2 1/3 1/4(1)求方程的解。(2)将方程右边向量元素/改为53,再求解,并比较久的变化和解的相对变化。4)利用randn函数产生均值为0,方差为1的6X6正态分布随机矩阵C利用rand函数产生0 1区间上8义8均匀分布随机矩阵D