资源描述:
《MATLAB程序设计基础教学课件 作者 课件Matlab教程Ch2.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章MATLAB数值运算1本章目标掌握矩阵、向量、数组和多项式的构造和运算方法能够使用常用的几种函数进行一般的数值问题求解2主要内容2.1矩阵2.2向量2.3数组2.4多项式32.1矩阵MATLAB=matrix(矩阵)+laboratory(实验室)42.1.1矩阵的构造通过直接输入矩阵的元素构造矩阵:用中括号[]把所有矩阵元素括起来同一行的不同数据元素之间用空格或逗号间隔用分号(;)指定一行结束可分成几行进行输入,用回车符代替分号数据元素可以是表达式,系统将自动计算结果5例:输入矩阵A、B的值>>A=[1234;5678;9101112;13141516]>>B=[1,s
2、qrt(25),9,13;2,6,10,7*2;3+sin(pi),7,11,15;4,abs(-8),12,16]62.1.2矩阵下标与子矩阵提取A(m,n)提取第m行,第n列元素A(:,n)提取第n列元素A(m,:)提取第m行元素A(m1:m2,n1:n2)提取第m1行到第m2行和第n1列到第n2列的所有元素A(m:end,n)提取从第m行到最末行和第n列的子块A(:)得到一个长列矢量,该矢量的元素按矩阵的列进行排列7例:修改矩阵A中元素的数值>>A=[1234;5678;9101112;13141516];>>A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A
3、(4,4)=cos(0);则矩阵变为:A=023457789101112131415182.1.3矩阵的算术运算1.矩阵的加减运算:+(加)、-(减)2.矩阵乘法:*(乘)3.矩阵除法:/(右除)、(左除)4.矩阵的乘方:^(乘方)5.矩阵转置:'(转置运算符)92.1.4矩阵的关系运算关系运算符:<(小于)、<=(小于或等于)、>(大于)>=(大于或等于)、==(等于)、~=(不等于)。关系运算符的运算法则:关系运算将对两个矩阵的对应元素进行比较。102.1.5矩阵的逻辑运算必须是两个同维矩阵或其中一个矩阵为标量才能进行MATLAB提供了一些逻辑函数逻辑函数功能all如果所
4、有的元素都是非零值,返回1;否则,返回0。any如果有一个元素为非零值,那么返回1;否则,返回0isempty判断是否空矩阵isequal判断两矩阵是否相同isreal判断是否是实矩阵find返回一个由非零元素的下标组成的向量112.1.6矩阵函数函数功能det计算矩阵所对应的行列式的值diag抽取矩阵对角线元素eig求特征值和特征向量inv求矩阵的逆阵lu三角分解Poly求特征多项式Rank求矩阵的秩Svd奇异值分解121.求矩阵的行列式的值>>X=[1230;5608;901112;0141516];>>det(X)ans=-5464132.求矩阵的秩>>X=[1,2,3;
5、2,3-5;471];>>rank(X)ans=2143.求逆矩阵>>X=[1230;5608;901112;0141516];>>Y=inv(X)Y=0.22990.09080.0351-0.07170.19400.0798-0.06590.00950.1274-0.08350.03220.0176-0.28920.00840.02750.0377>>Y*X%矩阵与其逆阵相乘结果是单位矩阵ans=1.000000001.000000001.000000001.0000>>X*Y%矩阵的逆阵是唯一的ans=1.000000001.000000001.000000001.0000
6、154.求特征值和特征向量>>X=[-211;020;-413];>>[VD]=eig(X)V=-0.7071-0.24250.3015000.9045-0.7071-0.97010.3015D=-100020002165.矩阵分解>>A=[2-13;121;243];>>[L,U]=lu(A)%三角分解L=1.0000000.50000.50001.00001.00001.00000U=2.0000-1.00003.000005.0000000-0.5000176.求解线形方程组182.2向量向量是矢量运算的基础行向量列向量192.2.1向量的构造1.逐个输入>>a=[139
7、101516]%采用空格和逗号分隔构成行向量>>b=[1;3;9;10;15;16]%采用分号隔开构成列向量2.利用冒号表达式“:”生成向量>>x=1:2:9%初值=1,终值=9,步长=2>>z=1:5%初值=1,终值=5,默认步长=13.利用函数生成向量>>x=linspace(1,9,5)%初值=1,终值=9,元素数目=5202.2.2向量的运算1.点积:dot函数2.叉积:cross函数例>>a=[123];>>b=[456];>>c=dot(a,b)>>d=cross(a,b)c=3