MATLAB矩阵的数值运算.ppt

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二讲MATLAB的数值计算——matlab具有出色的数值计算能力,占据世界上数值计算软件的主导地位数值运算的功能创建矩阵矩阵运算多项式运算线性方程组数值统计线性插值函数优化微分方程的数值解一、命令行的基本操作1.创建矩阵的方法直接输入法规则:矩阵元素必须用[]括住;矩阵元素必须用逗号或空格分隔;在[]内矩阵的行与行之间必须用分号分隔。a=3.3;b=4.4;c=[1,a,3;4,5,6;b,7,8]c=1.00003.30003.00004.00005.00006.00004.40007.00008.0000例1:m=[123;456],n=[111213;141516]m=123456n=111213141516c=m+i*nc=1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i例2:其中符号的作用:逗号和分号的作用逗号和分号可作为指令间的分隔符,matlab允许多条语句在同一行出现。分号如果出现在指令后,屏幕上将不显示结果。冒号的作用用于生成等间隔的向量,默认间隔为1。用于选出矩阵指定行、列及元素。循环语句Note:只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖。当一个指令或矩阵太长时,可用•••续行例:(1,1)a(2:3,1:2)a369814527a([123],3)(1:3,3)(:,3)aaa用matlab函数创建矩阵空阵[]—matlab允许输入空阵,当一项操作无结果时,返回空阵。rand(1,N)——产生[01]上均匀分布的随机序列,长度为Nrandn(1,N)——产生均值为0,方差为1的高斯随机序列,即白噪声序列,长度Neye——单位矩阵zeros——全部元素都为0的矩阵ones——全部元素都为1的矩阵此外,还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵的创建,就不一一介绍了。Note:matlab严格区分大小写字母,因此a与A是两个不同的变量。matlab函数名必须小写。2.矩阵的修改直接修改可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。指令修改可以用A(,)=来修改。例:a=[120;305;789]a=120305789a(3,3)=0a=120305780还可以用subs函数修改,matlab6.0还可用find函数修改。1.矩阵加、减(+,-)运算二、矩阵运算规则:相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。矩阵与标量的加减运算是标量与矩阵的所有元素分别进行加减操作。矩阵运算包括:矩阵的四则运算、特征根、奇异解的求解等。2.矩阵乘()运算规则:A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘。例:a=[123;456;780];b=[1;2;3];c=a*bc=1432233.在matlab中有两种矩阵除运算,矩阵左除和矩阵右除,\和/。如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。A\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。例:d=[-1;0;2];f=pi*df=-3.141606.2832例:利用矩阵除法求解线性方程:321550.7227437xyzA=[321;50.72;743];b=[5;2;7];X=A\bX=2.26091.7391-5.2609a^p——a自乘p次幂方阵1的整数4.矩阵乘方——a^n,a^p,p^aP=0,结果为与a相同的矩阵,当p0,只有在a的逆存在时才可定义a^p,其意义为inv(a)^(-p)例:a=[1,2,3;4,5,6;7,8,9];a^2ans=303642668196102126150※当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。例:a=[1,2,3;4,5,6;7,8,9];a^0.5ans=0.4498+0.7623i0.5526+0.2068i0.6555-0.3487i1.0185+0.0842i1.2515+0.0228i1.4844-0.0385i1.5873-0.5940i1.9503-0.1611i2.3134+0.2717ieig(a)%求矩阵a的特征值ans=16.1168-1.1168-0.0000inv(A)——矩阵求逆det(A)——矩阵A所对应的行列式的值eig(A)——矩阵的特征值及特征向量diag(A)——提取A对角元素或生成对角矩阵sqrtm(A)——矩阵A的平方根logm(A)——矩阵A的自然对数expm(A)——A的矩阵指数函数trace(A)——求矩阵的迹rank(A)——求矩阵的秩5.矩阵的其它运算6.矩阵的一些特殊操作矩阵的变维例:a=[1234;5678;9101112]a=123456789101112b=reshape(a,4,3)%把指定的矩阵改变形状,但是元素个数不变b=161151049382712矩阵的旋转例:a=[1234;5678;9101112]a=123456789101112b=rot90(a)%矩阵逆时针旋转90度b=481237112610159矩阵的对称交换例:a=[-4-1-2;-30-3;-214]a=-4-1-2-30-3-214flipud(a)%上下对称交换ans=-214-30-3-4-1-2fliplr(a)%左右对称交换ans=-2-1-4-30-341-2提取矩阵的上、下三角阵例:a=[-4-1-2;-30-3;-214]a=-4-1-2-30-3-214tril(a)%提取a的下三角阵ans=-400-300-214triu(a)%提取a的上三角阵ans=-4-1-200-3004求矩阵的维数(size)或向量的长度(length)例:a=[14710;25811;36912]a=147102581136912k=size(a)k=34A=[123486];n=length(A)n=6矩阵的转置运算符’可进行矩阵的共轭转置运算,运算符.’可进行矩阵的转置运算,当矩阵元素为实数时,两者结果相同。例、A=[123;456]A=123456B=A'B=1425367.矩阵的关系运算MATLAB提供了6种关系运算符:关系符号意义====~=小于小于或等于大于大于或等于等于不等于它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。关系运算符的运算法则为:当两个比较量是标量时,直接比较两数的大小若关系成立,关系表达式结果为1,否则为0。当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。c=(a4)c=111000000abans=000001111a=[123;456;789]a=123456789b=10-ab=987654321例:8.矩阵的逻辑运算在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。设参与逻辑运算的是两个标量a和b,那么,a&b(与)a,b全为非零时,运算结果为1,否则为0。a|b(或)a,b中只要有一个非零,运算结果为1。~a(非)当a是零时,运算结果为1;当a非零时,运算结果为0。MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。逻辑运算的运算法则为:若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成。在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成。a=[-301;24-5;-7-89]a=-30124-5-7-89x=~a%等价于not(a),元素为0时,结果为1,否则为0x=010000000例:x1=~(a0)x1=110001110x2=a-2&a4x2=011100000数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同。数组加减(.+,.-)9.数组运算数组乘除(,./,.\)ab——a,b两数组必须有相同的行和列,两数组相应元素相乘。对应元素相加减(与矩阵加减等效)a.+ba.-ba=[123;456;789];b=[246;135;7910];a.*bans=281841530497290例:a=[123;456;789];b=[246;135;7910];a*bans=253746558510985133172数组相乘矩阵相乘a./b=b.\aa.\b=b./a——给出a,b对应元素间的商.a./b=b.\a———都是a的元素被b的对应元素除例:a=[123];b=[456];c1=a.\b,c2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000数组乘方(.^)—元素对元素的幂例:a=[123],b=[456],a=123b=456a.^2ans=149a.^bans=132729三、数据统计处理1、求向量的最大值和最小值格式:y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。[y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。求向量X的最小值的函数是min(X),用法和max(X)完全相同。例1、求向量x的最大值。x=[-43,72,9,16,23,47];y=max(x)%求向量x中的最大值[y,l]=max(x)%求向量x中的最大值及其该元素的位置2、求矩阵的最大值和最小值求矩阵A的最大值的函数常用有2种调用格式:max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。[Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。求矩阵A的最小值的函数是min(X),用法和max(X)完全相同。例:A=[2816;0-230;3614]A=28160-2303614max(A)ans=36130[y,u]=max(A)y=36130u=332sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘积。sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。3、求和与求积数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是一个向量,A是一个矩阵,函数的调用格式为:sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。例:A=[2816;0-230;3614]A=28160-2303614sum(A)

1 / 67
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功