您好,欢迎访问三七文档
当前位置:首页 > 资格认证/考试 > 计算机等级考试 > Matlab讲义-第二章matlab02数值运算功能2-10
第二章MATLAB的数值计算功能——Matlab具有出色的数值计算能力,占据世界上数值计算软件的主导地位主要内容§2.1数值§2.2变量及其赋值§2.3矩阵的表示–2.3.1矩阵的输入–2.3.2向量的构造§2.4矩阵的操作§2.5矩阵的运算–2.5.1矩阵的点(数组)运算–2.5.2矩阵的关系和逻辑运算–2.5.3矩阵的数学运算§2.6矩阵数据处理函数§2.7矩阵函数§2.5矩阵的运算矩阵的点(数组)运算矩阵的数学运算矩阵的关系和逻辑运算和矩阵运算符比较,除了加减符号外,其余的数组运算符号均须加上一个“.”符号。2.5.1矩阵的点(数组)运算点运算是两个维数相同的矩阵对应元素之间的运算,在有的教材中也定义为数组运算。矩阵元素与矩阵元素的运算(数组的运算)A.+B(或A+B)矩阵对应元素相加A.-B(或A-B)矩阵对应元素相减A.*B同维数组对应元素相乘A./BA的元素是被除数(48./2=24)B.\AA的元素是被除数(2.\48=24)A.^nA的每个元素自乘n次A.’矩阵的点转置矩阵点加减、点乘除,均要求两矩阵必须有相同的行数和列数a=[123;456;789];b=[246;135;7910];a.*bans=2818415304972901.矩阵点乘a*bans=253746558510985133172987654321a1097531642b已知x,写出y=2e-0.5xcos(4πx)的表达式x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);【例】a./b=b.\a(斜线上方的数为被除数,反斜线下方的数为被除数)a=[123];b=[456];c1=a.\b;c2=b./a—a的元素除以b的对应元素—b的元素除以a的对应元素a.\b=b./a2.矩阵点除【例】c1=4.00002.50002.0000c2=4.00002.50002.0000z2=1.0032.00729.003.数组乘方(.^)—元素对元素的幂【例】a=[123];b=[456];z1=a.^2,z2=a.^bz1=1.004.009.00求A’和A.’A’,A.’对于实矩阵:(’)或(.’)求转置结果一样;对于含复数的矩阵:’将同时对复数进行共轭处理;.’则只是将其排列形式进行转置。4.矩阵的转置和点转置转置说明:ans=15913261014371115481216b=[1+2i2-7i]'b=[1+2i2-7i].'b=1.0000-2.0000i2.0000+7.0000ib=1.0000+2.0000i2.0000-7.0000i共轭转置点转置1.矩阵的关系运算符2.5.2矩阵的关系和逻辑运算注意:1=a=2错误1=a=2正确对矩阵的每个元素进行比较判断,运算结果为与原矩阵大小一样的由0和1组成的矩阵。:,,=,=,==,~=A=[111;232;444]B=000010111B=[A=3]a=[1-2-45];b=[a=-2]b=1101A=111232444【例】【例】2.矩阵的逻辑运算符A和B对应元素,不相同返回1,相同返回0应用举例:xor([1100],[0101])ans=1001A&B(and(A,B)),A|B(or(A,B)),~A(not(A)),xor(A,B)xor(A,B)函数:异或运算等同直接用:[error,ber]=biterr(X,Y)可应用于误比特率的计算xor([1100],[0101])ans=1001errorbit=xor([1100],[0101]);errorbit(find(errorbit==0))=[]errorbit_num=length(errorbit)X=[1100];Y=[0101];error:错误个数;ber:误比特率t=-1:0.001:5;tft402[t=0&t=4]已知t=[-1:0.001:5],试表示如图所示矩形脉冲ft。【例】关系运算的结果均为数值,不是1,就是0,下面举例说明关系与逻辑运算在图形区间表示中的应用。其他0402ttf*2ft=tf1101-t已知t=[-2:0.001:2],试表示如图所示三角波ft。t=-2:0.001:2;ft=(t+1).*[t=-1&t=0]+(-t+1).*[t0&t=1];【例】101011ttt-ttf2.5.2矩阵的数学运算矩阵运算矩阵运算符含义A’矩阵转置A+B矩阵相加A-B矩阵相减A*B矩阵相乘A/B矩阵相除(右除)B\A矩阵相除(左除)A^nA阵的n次幂1.矩阵加、减(+,-)运算:A+B、A-B规则:若参与运算的两矩阵之一是标量,标量与矩阵的所有元素分别进行加减操作。若两矩阵相加,A,B必须有相同的维数,两矩阵对应元素相加减,得到一新矩阵。A、B两矩阵已知,求:C=A+BC=27121771217221217222717222732C=A+B%对应元素的运算【例】2.矩阵乘法():A*Bd=[-1;0;2];f=pi*df=-3.141606.2832a=[123;456;780];b=[1;2;3];c=a*bc=143223a矩阵的列数等于b矩阵的行数规则:•若参与运算的两矩阵之一是标量,标量与矩阵的所有元素分别进行乘法操作。•若两矩阵相乘,A矩阵(m*n)的列数必须等于B矩阵(n*p)的行数。【例】【例】结果为m*p矩阵x1=[0:6]’;y=x1*[1,-1]%第1列为x,第2列为-x已知x=[0:6];利用矩阵相乘生成新矩阵y,要求y的第1列为x,第2列为-x。【例】y=001-12-23-34-45-56-63.矩阵除法当矩阵A、B非奇异时:A\B=inv(A)B,是方程AX=B的解。B/A=Binv(A),是方程XA=B的解;只是A与B的矩阵表示不同在matlab中有两种矩阵除运算:“\”(反斜线)和“/”(斜线)分别表示左除和右除。32103251xyzxyzxyzA=[32-1;-132;1-1-1];B=[105-1]';%将方程右边已知项写成列向量X=A\B%左除运算求解32103251xyzxyzxyzX=-2.00005.0000-6.0000%注意X为列向量矩阵左除解方程A*X=B321132111AxXyz1051BX=A\BA=[32-1;-132;1-1-1]’;B=[105-1];%将方程右边已知项写成行向量X=B/A%右除运算求解32103251xyzxyzxyzX=-2.00005.0000-6.0000%注意X为行向量矩阵右除解方程X*A=BX=B/A311231121AzyxX,,15,,10-Ba^p——a自乘p次幂方阵1的整数4.矩阵乘方——a^pa和p只能一个是矩阵(且必须为方阵),另一个为一个数,不能两个都为矩阵。如p是方阵,a是标量,a^p应该使用特征值和特征向量来计算;如a,p都是矩阵,a^p则无意义(报错)。===========a=[1,2,3;4,5,6;7,8,9];a^2===========ans=303642668196102126150相当于a*a各种数据处理函数放置在MATLAB的一个子目录datafun内,了解这些函数的功能便于使用MATLAB来编程。本节简要介绍主要的数据处理函数。§2.6矩阵数据处理函数(datafun)helpdatafun%可查看datafun函数库中的各函数•max、min——各列最大/小值•sort——各列递增排序•sum——各列求和•mean—各列平均值•std——各列标准差,均方差•var——各列方差一些基本的数据处理函数MATLAB的数据处理函数其功能是按矩阵列向进行的。用于查找矩阵或向量的最大值,并给出最大值的下标。1.查找最大值函数:max[Y,I]=max(X)•当X为向量时,则Y为最大值,而I则表示最大值的下标。•当X为矩阵时,min(X)返回矩阵X的各列中的最大元素值及该元素的位置;Y和I均为行向量。A=[1:4;2623;0468;5341];[Y,I]=max(A)Y=5668I=42331435864032624321AA=[1:4;2623;0468;5341];Y=8I=15无论矩阵是多大维数,求最大值使用命令max(x(:))即可1435864032624321A【如何求矩阵中所有元素的最大值?】[Y,I]=max(A(:))%先将矩阵按列转换为列向量,然后求向量的最大值用于查找矩阵或向量的最小值,并给出最小值的下标。[Y,I]=min(X)当X为向量时,则Y为最小值,而I则表示最小值的下标。将X为矩阵时,min(X)返回矩阵X的各列中的最小元素值及该元素的位置赋予行向量Y与I;2.查找最小值函数:minV=[4823];[VS,I]=sort(V)3.排序函数:sort实际上VS=V(I)VS=2348I=3412向量排序A=[1234262304685341]As=0221133324445668I=3124141223414233•注意:每列作为一个向量,返回相应下标值矩阵排序[AS,I]=sort(A)mean函数用于求向量和矩阵的平均值,其用法是:vm=mean(v);%v为向量,vm为各元素的平均值,一个数vm=mean(A);%A为矩阵,运算针对列向量进行,vm为一个行向量,其中各元素为矩阵中每列元素的平均值。4.mean函数•u=diff(v)函数的功能是差分1i=1,2,n-1iiiuv5.diff函数•u=diff(v);%若v为一向量,u也为一个向量,其中u的元素数量为length(v)-1个•B=diff(A);%A为一个矩阵,B为一个矩阵,若A为m×n的矩阵,则B为(m-1)×n的矩阵B=14-1-1-2-2455-1-2-7A=1234262304685341B=diff(A)使用diff函数可近似计算信号的微分【例】求方波信号的近似微分•使用diff函数可近似计算信号的微分,可以找到信号发生突变的地方。sigdiff-sig避免0作除数x=-3:3;y=sin(x)./xWarning:Dividebyzero.(TypewarningoffMATLAB:divideByZerotosuppressthiswarning.)y=0.84150.92760.9816NaN0.98160.92760.8415为了避免分母中出现0,可利用计算机中的相对浮点精度eps来取代0,具体做法如下:【例】x=-20:0.01:20;x=x+(x==0)*eps;y=sin(x)./x%当x=0;x=x+(x==0)*eps;y=y=1系统的浮点精度eps:2.2e-016或2-52sin(eps)./eps•其中的关键是引入了关系表达式x==0,其运算结果为向量[…0001000…],然后将这个向量先与eps相乘,然后再与x向量相加,这样就利用eps取代了0.x=-20:0.001:20;y=sinc(x/pi);plot(x,y),title('sinc函数'),gridon•inv——求方阵的逆•det——求方阵的行列式的值•eig——求方阵的特征值•norm——求矩阵的范数§2.7矩阵函数(matfun)helpmatfun%可查看matfun函数库中的各函数函数功能det•计算矩阵所对应的行列式的值inv•求矩阵的逆阵rank•求矩阵的秩eig•求特征值和特征向量
本文标题:Matlab讲义-第二章matlab02数值运算功能2-10
链接地址:https://www.777doc.com/doc-7583131 .html