版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 MATLAB的数学运算,2.1 矢量和矢量运算,2.2 矩阵和矩阵运算,2.3 数组和数组运算,2.4 线性代数,2.5 函数和多项式,2.6 高等数学中的问题,2.1 矢量和矢量运算,2.1.1 常用的数字常量 下面是MATLAB提供的一些数学常量。,1、浮点数相对精度 eps ans = 2.2204e-016,2、虚数单位(i,j) 虚数单位i,j表述复数的虚数部分。同时,虚数单位i,j还可以作为变量,例如循环变量等。也就是说,他们被赋予的虚数虚部身份并不影响它们作为一般变量的使用。 sqrt(5)+2/3*j ans = 2.2361 + 0.6667i 实际使用中默认的虚数变
2、量还是i,sqrt(5)+2/3j ans = 2.2361 - 0.6667i %一定要注意上面两个表达式的结果区别。,3、正无穷大(inf) 2/0 Warning: Divide by zero. (Type warning off MATLAB:divideByZero to suppress this warning.) ans = Inf %虽然给出了警告,但还是可以出线一个结果,4、非数值(NaN), x=0,5,8.5,9;9,1,inf,6 x = 0 5.0000 8.5000 9.0000 9.0000 1.0000 Inf 6.0000 y=1,0,7,inf;5,7,
3、inf,9 y = 1 0 7 Inf 5 7 Inf 9 rem(x,y) Warning: Divide by zero. (Type warning off MATLAB:divideByZero to suppress this warning.) ans = 0 NaN 1.5000 NaN 4.0000 1.0000 NaN 6.0000,5、圆周率 S=pi*0.52 S = 0.7854 半径为0.5的圆的面积,6、最大正浮点数(realmax)和最小正浮点数(realmin) realmax ans = 1.7977e+308 realmin ans = 2.2251e-30
4、8,2.1.2 矢量的表示 矢量表示一种既有大小、又有方向的物理量,如速度、加速度、位移和力等。所以,从某种意义上讲,矢,量是矩阵表达的特殊形式。,B=5 6 7 B = 5 6 7 B就可以表示一个矢量,当然,亦可以看作是一个13的矩阵。,2.1.3 矢量的各种运算,矢量的各种运算,加减运算,数乘运算,乘积运算,数量积,矢量积,混合积,1、矢量的加减运算 A=x1i+y1j+z1k,B=x2i+y2j+z2k; AB=(x1x2)i+(y1y2)j+(z1z2)k;,2、矢量的数乘运算 A=x1i+y1j+z1k; A( x1)i+( y1)j+( z1)k;,3、矢量的数量积运算 A=x1
5、i+y1j+z1k,B=x2i+y2j+z2k; AB=x1x2+y1y2+z1z2; MATLAB提供了dot函数专门进行这项运算。 C=dot(A,B) C=dot(A,B,dim) %注意,参与运算的向量的维数必须相同,此时,作为维数的dim参数可以省略。, a=4 4 1; b=-1 -2 5; c=dot(a,b) c = -7,4、矢量的矢量积运算 A=x1i+y1j+z1k,B=x2i+y2j+z2k;,MATLAB提供了cross函数进行矢量积运算。C=cross(A,B) C=cross(A,B,dim) 同样,dim也是代表维数, a=4 4 1; b=-1 -2 5; c
6、ross(a,b) ans = 22 -21 -4,5、矢量的混合积运算 A=x1i+y1j+z1k,B=x2i+y2j+z2k;C=x3i+y3j+z3k;,MATLAB提供了函数det()专门进行矢量混合积的运算。其实就是求一个方阵的行列式值。, a=4 4 1;b=-1 -2 5; e=1 2 3; G=a;b;e; det(G) ans = -32,2.2 矩阵和矩阵运算,在科学研究和工程实践中,矩阵是个十分重要的概念。尤其是与电气、自动化和通信相关的专业,矩阵理论的学习那更是必不可少。其实,理工科的科研和工程问题到最后基本上都只能归结于数学问题,而高级的数学问题则是矩阵运算及矩阵理论
7、问题,所以,要把科研和工程做好,尤其是要作科学研究,学好矩阵运算是不可或缺的。,2.2.1矩阵的表示,矩阵最一般的表示:,1、矩阵的一般输入方式 A=-1 0 1 3;0 1 2 4;0 0 -1 0;-9 2 0 3 A = -1 0 1 3 0 1 2 4 0 0 -1 0 -9 2 0 3,2、矩阵的等差输入方式 (1)等差行矢量输入 t=0:0.1:0.6 t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 (2)等差矩阵输入,a=1:0.1:1.6;1.1:0.1:1.7;1.2:0.1:1.8;1.3:0.1:1.9;1.4:0.1:2.
8、0 a = 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000,3、零矩阵 元素全是0的矩阵称之为零矩阵。 B=zeros(n) %输出n阶零方阵 B=zeros
9、(m,n) %输出mn阶零矩阵 B=zeros(m,n) %输出mn阶零矩阵 B=zeros(d1,d2,d3) %输出多维零数组 B=zeros(d1 d2 d3) %输出多维零数组 B=zeros(size(A) %输出一个与矩阵A行列数相同 的零矩阵, zeros(2,3) ans = 0 0 0 0 0 0 b=zeros(3,5,2) 行 列 组 b(:,:,1) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b(:,:,2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, b=zeros(3,5,2,3) b(:,:,1,1) = 0 0 0 0
10、 0 0 0 0 0 0 0 0 0 0 0 b(:,:,2,1) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,b(:,:,1,3) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b(:,:,2,3) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,b(:,:,1,2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b(:,:,2,2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,4、方阵(略),5、单位矩阵 MATLAB中利用eye()函数构造单位矩阵。 Y=eye(n) %输出n阶单位方阵 Y=ey
11、e(m,n) %输出mn阶单位矩阵,B=eye(size(A) %输出一个与矩阵A行列数相同 的单位矩阵, eye(8) ans = 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1,6、全1矩阵 元素全是1的矩阵称之为全1矩阵。 B=ones(n) %输出n阶全1方阵 B=ones(m,n) %输出mn阶全1矩阵 B=ones(m,n) %输出mn阶全1矩阵 B=ones(d1,d2,d3
12、) %输出多维全1数组 B=ones(d1,d2,d3) %输出多维全1数组 B=ones(size(A) %输出一个与矩阵A行列数相同 的全1矩阵,ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1,7、对角矩阵 主对角线以外元素全部为0的矩阵称为对角矩阵。 MATLAB中利用diag()函数构造对角矩阵。 diag()函数格式如下: X=diag(v,k) %v为主对角线向量,k为控制参数 X=diag(v) v=diag(X,k) %提取矩阵X当中的某条对角线的内容 v=diag(X) out=blkdiag(a,b) %组建分块对角矩阵,下面看几个例子:,
13、a=diag(1:5,0) a = 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5, a=diag(1:5,1) a = 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0, v=diag(a,0) v = 1 2 3 4 5, v=diag(a,-1) v = 0 0 0 0 0, a=1 2; 2 0; b=6 8;6 -2; c=blkdiag(a,eye(3),b) c = 1 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0
14、 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 6 8 0 0 0 0 0 6 -2,8、随机矩阵,利用MATLAB可以生成随机矩阵。随机矩阵分为两种:均匀分布随机矩阵正态分布随机矩阵。,(1)rand()构造均匀分布随机矩阵 元素值(0,1) B=rand(n) %输出n阶均匀分布随机方阵 B=rand(m,n) %输出mn阶均匀分布随机矩阵 B=rand(m,n) %输出mn阶均匀分布随机矩阵 B=rand(d1,d2,d3) %输出多维均匀分布随机数组 B=rand(d1 d2 d3) %输出多维均匀分布随机数组 B=rand(size(A) %
15、输出一个与矩阵A行列数相同 的均匀分布随机矩阵,(2)randn()构造正态分布随机矩阵 元素平均值为0,方差为1,标准差为1。 B=randn(n) %输出n阶正态分布随机方阵 B=randn(m,n) %输出mn阶正态分布随机矩阵 B=randn(m,n) %输出mn阶正态分布随机矩阵 B=randn(d1,d2,d3) %输出多维正态分布随机数组 B=randn(d1 d2 d3) %输出多维正态分布随机数组 B=randn(size(A) %输出一个与矩阵A行列数相同 的正态分布随机矩阵,9、魔块方阵 特点:相同阶的模块方阵其特征和相等,为(1n2)/n; 模块方阵的每行元素和、每列元
16、素和以及主对角线元素和与特征和相同。, a=rand(3,4) a = 0.4447 0.9218 0.4057 0.4103 0.6154 0.7382 0.9355 0.8936 0.7919 0.1763 0.9169 0.0579 randn(size(a) ans = -0.4326 0.2877 1.1892 0.1746 -1.6656 -1.1465 -0.0376 -0.1867 0.1253 1.1909 0.3273 0.7258,MATLAB中用magic()函数构造模块方阵。格式为: Magic(n) n2,输出一个模块方阵 a=magic(4) a= 16 2 3
17、13 5 11 10 8 9 7 6 12 4 14 15 1 求模块方阵的特征和 sum(1:42)/4 ans = 34,计算模块方阵的列矢量和 sum(a) ans = 34 34 34 34 计算模块方阵的行矢量和 sum(a) ans = 34 34 34 34,计算模块方阵的主对角线和 sum(diag(a) ans = 34,10、Hilbert方阵 特点:元素的值等于元素行列数之和减1后取倒数。,MATLAB中利用hilb()函数构造Hilbert方阵。 H=hilb(n) %构造一个n阶Hilbert方阵 (n15) Y=invhilb(n) %构造一个n阶Hilbert逆方
18、阵 (n15), H=hilb(5) H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 Y=invhilb(5) Y = 25 -300 1050 -1400 630 -300 4800 -18900 26880 -12600 1050 -18900 79380 -117600 56700
19、-1400 26880 -117600 179200 -88200 630 -12600 56700 -88200 44100,11、Hadamard方阵 特点:其转置矩阵和自身的乘积等于单位矩阵的阶数倍。hadamard方阵的阶数必须是4的倍数,且不能为0。 MATLAB中用hadamard()函数构造Hadamard方阵。, H=hadamard(4) H = 1 1 1 1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 1, H*H ans = 4 0 0 0 0 4 0 0 0 0 4 0 0 0 0 4, H*inv(H) ans = 1 0 0 0 0 1 0 0 0 0
20、 1 0 0 0 0 1,12、Hankel方阵,该方阵是矩阵中的特殊矩阵,用来判断相同最小实现的维数时使用。 MATLAB中用hankel()函数构造Hankel方阵。格式如下:,Hhankel(c) %c表示hankel矩阵的第一列矢量; H=hankel(c,r) %c同上,r表示hankel矩阵的最后一行行 矢量。c和r重叠的元素取c所对应的值。, c=5 6 7 8; r=1 2 3 4; hankel(c) ans = 5 6 7 8 6 7 8 0 7 8 0 0 8 0 0 0, hankel(c,r) ans = 5 6 7 8 6 7 8 2 7 8 2 3 8 2 3 4
21、,13、Vandermonde方阵 Vandermonde方阵也是特殊矩阵。若存在矢量v,v中各,元素为c1 、 c2 、 c3 、 cn,此时, Vandermonde方阵中(i,j)元素为cin-j,其数学表达式为:,MATLAB中用vander()函数构造该矩阵。格式为: A=vander(v) V为Vandermonde方阵中的第n-1列矢量。, k=4:7; A=vander(k) A = 64 16 4 1 125 25 5 1 216 36 6 1 343 49 7 1,14、Toeplitz矩阵 若存在矢量c,c中各元素为c1 、 c2 、 c3 、 cm;存在矢量r,r中各元
22、素为r1 、 r2 、 r3 、 cn;此时, Toeplitz矩阵的表达式如下:,toeplitz(c,r), r=1:5; a=toeplitz(r) a = 1 2 3 4 5 2 1 2 3 4 3 2 1 2 3 4 3 2 1 2 5 4 3 2 1,toeplitz(r) %表c=r, c=4:7; b=toeplitz(c,r) b = 4 2 3 4 5 5 4 2 3 4 6 5 4 2 3 7 6 5 4 2,15、freqspace矩阵 用该矩阵可以构造频率响应的间隔。调用格式如下: f1,f2=freqspace(n) %输出等间隔的频率响应矩阵,n表示矩阵阶数,f1
23、,f2表示矩阵输出的行、列矢量。当n为奇数时,f1=f2=(-n+1):2:(n-1)/n;当n为偶数时, f1=f2=(-n):2:(n-2)/n。,f1,f2=freqspace(m,n) %输出等间隔的频率响应矩阵, n 对应行矢量f1的阶数;m对应列矢量f2的阶数。当m或n为奇数时,计算对应f=(-n+1):2:(n-1)/n;当m或n为偶数时,计算对应f=(-n):2:(n-2)/n。 f=freqspace(N) %输出值为单位圆上的等间隔值。f为一维矢量,f=0:(2/N):1。N为偶数时,矢量f包括(n+2)/2个元素;当N为奇数时,f包括(n+1)/2个元素。 f=freqs
24、pace(N,whole) %输出值为单位圆上的等间隔值。一维矢量f= f=0:(2/N):2(N-1)/N。 f1,f2=freqspace(4 5) f1 = -0.8000 -0.4000 0 0.4000 0.8000 f2 = -1.0000 -0.5000 0 0.5000, f=freqspace(4,whole) f = 0 0.5000 1.0000 1.5000,16、linspace矩阵 用该矩阵可以构造等间隔的线性矢量。调用格式如下: y=linspace(a,b) %输出(a,b)区间100个等分元素; y=linspace(a,b,n) %输出(a,b)区间n个等分
25、元素;, y=linspace(1,10,7) y = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000,2.2.2 矩阵的运算,1、矩阵的加减运算(略) 2、矩阵的乘法(略) 3、矩阵的转置(如果一个矩阵是复数矩阵,则输出的转矩是原矩阵的共扼转置矩阵) A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 A ans = 1 4 7 2 5 8 3 6 9, B=1+2i 3+4i;3j 1.7+2i B = 1.0000 + 2.0000i 3.0000 + 4.0000i 0 + 3.0000i 1.7000
26、 + 2.0000i B ans = 1.0000 - 2.0000i 0 - 3.0000i 3.0000 - 4.0000i 1.7000 - 2.0000i 4、矩阵的幂 Ak=AAA,是A的k次方幂。调用格式: C=Ak A=1 2 3;4 5 6;7 8 9; A3 ans =468 576 684 1062 1305 1548 1656 2034 2412,5、矩阵的除法 分为左除和右除两种。 矩阵左除AB 表示方程A*X=B的解A-1B; 矩阵右除A/B 表示方程X*B=A的解AB-1; A=1 2;3 4 A = 1 2 3 4 B=5 6;7 8 B = 5 6 7 8, C
27、=AB C = -3.0000 -4.0000 4.0000 5.0000 D=A/B D = 3.0000 -2.0000 2.0000 -1.0000,6、行列式 调用格式为: det(X) X为输入方阵;, a=1 2 3;4 5 6;7 3 9; det(a) ans = -30,7、逆矩阵 调用格式为: inv(X) X为输入方阵; a=1 2 3;4 5 6;7 3 9; inv(a) ans = -0.9000 0.3000 0.1000 -0.2000 0.4000 -0.2000 0.7667 -0.3667 0.1000,8、矩阵的迹 矩阵的迹指矩阵主对角线元素的和。调用格
28、式为:trace(X) X为一般矩阵,不一定是方阵;, a=1 2 3;4 5 6;7 3 9; trace(a) ans = 15 b=1 2 3;4 5 6;0 0 0; trace(b) ans = 6,2.2.3 矩阵的操作 1、矩阵的合并 将相关矩阵重新组合以得到新的矩阵。 调用格式如下: C=cat(dim,A,B) %dim=1表示以列为基准进行合并;dim=2表示以行为基准进行合并。,C=vertcat(A1,A2, ) 等效于dim=1 C=horzcat(A1,A2, ) 等效于dim=2, a=1 2;3 4; b=6 7;8 9; c=cat(1,a,b) c = 1
29、2 3 4 6 7 8 9 horzcat(a,b) ans = 1 2 6 7 3 4 8 9,2、矩阵的累积乘积 设A=(aij)mn,调用格式:Bcumprod(A) A=1 2 3;4 5 6;7 8 9; B=cumprod(A) B = 1 2 3 4 10 18 28 80 162,3、矩阵的累积求和 设A=(aij)mn,调用格式:Bcumsum(A) A=1 2 3;4 5 6;7 8 9; B=cumsum(A) B = 1 2 3 5 7 9 12 15 18,4、矩阵的最大元素和最小元素,C=max(A) %求每列元素的最大值构成的行向量; C=max(A,B) %求A
30、,B中最大元素构成的矩阵; C=min(A) %求每列元素的最小值构成的行向量; C=min(A,B) %求A,B中最小元素构成的矩阵;, A=1 5;8 9 A = 1 5 8 9 B=23 4;5 2.3 B = 23.0000 4.0000 5.0000 2.3000, max(A) ans = 8 9 min(A,B) ans = 1.0000 4.0000 5.0000 2.3000,5、矩阵元的升序排列 由sort(A)函数执行 B=sort(A,dim) %dim=1进行列元素升序排列;dim=2进行行元素的升序排列; B=sort(A) 与sort(A,dim) dim=1的功
31、能完全相同。 A=9 8 7;1 2 3;5 4 6 A = 9 8 7 1 2 3 5 4 6, B=sort(A,1) B = 1 2 3 5 4 6 9 8 7, C=sort(A,2) C = 7 8 9 1 2 3 4 5 6,MATLAB之中是没有降序排列的函数可以调用的,请同学们思考如何实现降序排列?,6、矩阵元素的求和与求积 B=sum(A,dim) %dim=1进行列元素求和;dim=2进行行元素求和; B=sum(A) % 与sum(A,dim) dim=1的功能完全相同。 C=prod(A,dim) %dim=1进行列元素求积;dim=2进行行元素求积; C=prod(A
32、) % 与prod(A,dim) dim=1的功能完全相同。 A=9 8 7;1 2 3;5 4 6 A = 9 8 7 1 2 3 5 4 6, prod(A,2) ans = 504 6 120, sum(A,1) ans = 15 14 16,7、矩阵的上下三角部分 B=tril(A,k) %矩阵的下三角形部分输出,k为主对角线控制参数; B=tril(A) 与B=tril(A,k) k=0效果相同; C=triu(A,k) %矩阵的上三角形部分输出,k为主对角线控制参数; C=triu(A) 与C=triu(A,k) k=0效果相同;, A=1 2 3;4 5 6;7 8 9 A =
33、1 2 3 4 5 6 7 8 9, tril(A) ans = 1 0 0 4 5 0 7 8 9, triu(A,-1) ans = 1 2 3 4 5 6 0 8 9,8、矩阵的旋转 MATLAB软件利用flip()函数进行矩阵旋转,调用格式如下:,B=flipdim(A,dim) %对矩阵进行指定的旋转,dim=1时对输入矩阵进行上下翻转;dim=2时,对输入矩阵进行左右翻转; B=fliplr(A) %对输入矩阵进行左右翻转; B=flipud(A) %对输入矩阵进行上下翻转; B=rot90(A) %对输入矩阵进行逆时针90旋转 B=rot90(A,k) %对输入矩阵进行逆时针k倍
34、90旋转, A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9, fliplr(A) ans = 3 2 1 6 5 4 9 8 7, flipud(A) ans = 7 8 9 4 5 6 1 2 3, rot90(A,3) ans = 7 4 1 8 5 2 9 6 3,2.3 数组和数组运算,2.3.1 数组的表示 1、一维数组和二维数组的表达方式 一维数组和二维数组的表达方式和矢量、矩阵的表达方式相同。 这就说明单从长相上我们是看不出一个单元究竟是矩阵、矢量或者是数组?难道就没有办法区别吗?肯定不是。其实,从后面我们可以知道,只有多位数组的表示方法才不一
35、样,而对于常见的一维和二维数组,也只有从表达式上我们才能判断元素究竟是被当作数组还是被当作矩阵。,2、多维数组的表示 多维数组的构成相对比较复杂。这其中以3维数组比较常见。表达形式为: A(:,:,k) 其中k表示层数; 现举例如下:,A(:,:,1) = -0.0956 -1.3362 -0.6918 -0.8323 0.7143 0.8580 0.2944 1.6236 1.2540 A(:,:,2) = -1.5937 -0.3999 0.7119 -1.4410 0.6900 1.2902 0.5711 0.8156 0.6686,A(:,:,3) = 1.1908 -0.1567 -
36、1.0565 -1.2025 -1.6041 1.4151 -0.0198 0.2573 -0.8051 A(:,:,4) = 0.5287 -2.1707 0.6145 0.2193 -0.0592 0.5077 -0.9219 -1.0106 1.6924,2.3.2 数组的运算 1、数组的加减运算 数组的加减运算和矩阵及矢量的加减运算完全一致。其含义是不同维数的对应元素直接进行和差运算。 2、数组的乘法 数组的乘法与矩阵的乘法有着本质的区别。数组乘法,等于数组对应元素的乘积。表达式: C=A.*B 举例: A=3 1 1;3 2 5;4 1 7; B=2 3 0;1 4 1;2 0 1;
37、 C=A.*B C = 6 3 0 3 8 5 8 0 7, D=A*B D = 9 13 2 18 17 7 23 16 8,可以看见,这D表达式进行的是矩阵运算;而C表达式进行的是数组运算。,3、数组的转置 表达式如下:,C=A. (注意,如果A为复数矩阵,则转置不会是共扼的,元素仅仅是互换位置而已), C=1+i 1 2-8i;3 1-4i 6;-2 4 -3-6i C = 1.0000 + 1.0000i 1.0000 2.0000 - 8.0000i 3.0000 1.0000 - 4.0000i 6.0000 -2.0000 4.0000 -3.0000 - 6.0000i D=C
38、. D = 1.0000 + 1.0000i 3.0000 -2.0000 1.0000 1.0000 - 4.0000i 4.0000 2.0000 - 8.0000i 6.0000 -3.0000 - 6.0000i,4、数组的幂 数组A的k次幂等于数组相对应元素的k次幂。表达式:C=A.k。, A=2 3;4 53 A = 116 153 204 269,5、数组的除法 数组的除法也分为左除和右除两种。,左除 定义,右除 定义, A=1:3;2:4;3:5; B=1 1 2;3 1 6;-1 2 -3; C=A./B C = 1.0000 2.0000 1.5000 0.6667 3.0
39、000 0.6667 -3.0000 2.0000 -1.6667, D=A.B D = 1.0000 0.5000 0.6667 1.5000 0.3333 1.5000 -0.3333 0.5000 -0.6000,6、数组的自然对数 对数组X中的每个元素求自然对数。调用格式: Y=reallog(X),7、数组元素分别求幂 这种方法可以对数组中的不同元素求不同的幂。调用格式: Z=realpow(X,Y) %X、Y必须同维,Y中的数据作为X数组对应位置上元素的幂次值。 这样,realpow(X,X) =X.X 这个结论十分有用。,8、数组的平方根运算 求数组每个元素的平方根。 Y=rea
40、lsqrt(X),2.3.3 数组的操作 1、数组的关系运算 在MATLAB中,数组的关系运算是一系列特殊的运算,关系运算是对数组相关元素进行关系比较。当数组的关系成立时,输出值为真,用1表示;当数组的关系不成立时,输出值为假,用0表示。共有如下运算符: = = =, a=1 2;3 4 a = 1 2 3 4 b=0 -2;4 3 b = 0 -2 4 3, ab ans = 1 1 0 1 ab ans = 0 0 1 0,2、数组的逻辑运算 在MATLAB中,数组的逻辑运算也是一系列特殊的运算。逻辑运算是对数组相关元素进行逻辑关系比较。当数组的逻辑关系成立时,输出值为真,用1表示;当数组
41、的逻辑关系不成立时,输出值为假,用0表示。注意, MATLAB中只要一个元素不为0,就认为它在逻辑上代表”真“,视为逻辑1。,共有如下逻辑运算符: 3 4; b=0 -2;4 3; a否则,y=0。,4、数组的质数判别, A=1 2 3 4 5;6 7 8 9 10 A = 1 2 3 4 5 6 7 8 9 10 y=isprime(A) y = 0 1 1 0 1 0 1 0 0 0,MATLAB中用isprime()函数判断数组中对应位置的元素 是否是质数。调用格式 y= isprime(A)。如果数组A中 有质数存在,则对应位输出值为真,否则为假。,5、组合数组 MATLAB中用per
42、ms()函数生成元素排列数组,格式如下: P=perms(v) %v为输入矢量 对输入的矢量元素进行排列组合,生成组合数组。, p=perms(1 2 3) p = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2,2.4 线性代数,这一节的内容涉及线性方程组、特征值与特征向量、二次型、稀疏矩阵、范数理论等有关内容。 2.4.1 线性方程组 1、矩阵的标准型 矩阵在经过一系列的行列变换后,可以化成阶梯型的标准矩阵。MATLAB中利用函数rref()实现这一原本极为复杂的变换过程。调用格式为: R=rref(A) 通过这一变换可以反映出行列式的许多性质,比如行列式的秩、线性
43、方程组解的结构、对应矩阵的特征值等。, A=10 2 5;1 8 6.3;4 5.6 55 A = 10.0000 2.0000 5.0000 1.0000 8.0000 6.3000 4.0000 5.6000 55.0000 rref(A) ans = 1 0 0 0 1 0 0 0 1 可以看出,此处矩阵A的秩为3。,2、矩阵的秩 MATLAB中利用rank()函数求得矩阵的秩。调用格式为: k=rank(A),3、矩阵的范数,在MATLAB中利用norm()函数求矩阵或者矢量的范数。调用格式为 n=norm(A) %只计算矩阵的2范数,与下面p=2的效果相同; n=norm(A,p)
44、%根据p的不同,用来计算矩阵的不同范数。 P=1为1范数,即矩阵A列矢量和的最大值; P=2为2范数,即为矩阵A的最大奇异值; P=-inf,为负无穷范数,即行矢量和的最小值; P=inf,为正无穷范数,即行矢量和的最大值;,P=fro时,计算矩阵A的Frobenius范数; 不同范数的数学含义如下:, A=10 2 5;1 8 6.3;4 5.6 55 A = 10.0000 2.0000 5.0000 1.0000 8.0000 6.3000 4.0000 5.6000 55.0000 n1=norm(A) n1 = 56.2160 n2=norm(A,inf) n2 = 64.6000
45、n3=norm(A,fro) n3 = 57.4983,4、矩阵的条件数 MATLAB中利用矩阵的条件数来判断线性方程组的求解和矩阵求逆结果中的正确性。利用cond()函数来完成这一检查: c=cond(X) %用来计算矩阵X在2范数下的条件数,X表示输入矩阵,c为矩阵X的最大奇异值与最小奇异值的比值,当条件数接近1时,说明结果良好; c=cond(X,p) %用来计算矩阵X在p范数下的条件数,当条件数接近1时,说明结果良好; c=rcond(A) %用来计算矩阵逆的条件数。当c接近于1时,矩阵A为良好条件矩阵;当c接近于0时,矩阵A为坏条件矩阵,此时不易进行A阵求逆运算。 c=condest
46、(A) %用来计算方阵在1范数下的下界值。, A=1 3 0 1;2 0 2 1;3 0 0 -2;2 3 1 2 A = 1 3 0 1 2 0 2 1 3 0 0 -2 2 3 1 2, c1=cond(A) c1 = 30.9580 /矩阵A怀条件 c2=rcond(A) c2 = 0.0176 /矩阵A怀条件 c3=condest(A) c3 = 56.8889,2.4.2 特征值和特征向量 1、矩阵的特征值和特征向量 设P为一个数域,A为P上的n阶方阵,若存在数P及n维非零列矢量x Pn,使得Ax= x,则称是A的一个特征值,x是属于的一个特征向量。,MATLAB中利用eig()函数
47、求解矩阵的特征值和特征向量。调用格式如下: d=eig(A) %d为A的特征值组成的向量; V,D=eig(A) %V为输出的特征向量矩阵;D为输出的特征值矩阵; V,D=eig(A,nobalance) %输出的特征值和特征向量没有经过提高特征值精度的balance()函数的处理。 矩阵的广义特征值和特征向量:设P为一个数域,A为P上的n阶方阵,若存在数P及n维非零列矢量x Pn,使得B-1Ax= x,则称是A的一个广义特征值,x是属于的一个广义特征向量。,广义特征值和特征向量的求解见下面的函数调用: d=eig(A,B) V,D=eig(A,B) V,D=eig(A,B,flag) fla
48、g为chol时,对矩阵进行Cholesky分解; flag为qz时,对矩阵进行QZ分解;, A=1 2 2;1 -1 1;4 -12 1 A = 1 2 2 1 -1 1 4 -12 1, d=eig(A) d = 1.0000 -0.0000 + 1.0000i -0.0000 - 1.0000i V,D=eig(A) V = 0.9045 -0.7255 -0.7255 0.3015 -0.2176 - 0.0725i -0.2176 + 0.0725i -0.3015 0.5804 - 0.2902i 0.5804 + 0.2902i D = 1.0000 0 0 0 -0.0000 +
49、 1.0000i 0 0 0 -0.0000 - 1.0000i,2、矩阵的相似变换 设P为一个数域,A为P上的n阶方阵,引入一个相似变换矩阵T,使得B=T-1AT,称为矩阵的相似变换。如果A为对称矩阵,则会有B=A,且有T=I。 MATLAB中利用balance()函数进行矩阵的相似变换。调用格式如下: T,B=balance(A) %求解矩阵的相似变换矩阵和输出矩阵 B= balance(A) %直接输出相似变换后的输出矩阵, A=0.5 100 6600;300 1 0.03;90 0.1 2700; A =1.0e+003 * 0.0005 0.1000 6.6000 0.3000 0
50、.0010 0.0000 0.0900 0.0001 2.7000 T,B=balance(A) T = 4.0000 0 0 0 8.0000 0 0 0 0.5000 B =1.0e+003 * 0.0005 0.2000 0.8250 0.1500 0.0010 0.0000 0.7200 0.0016 2.7000,3、矩阵的特征多项式,设P为一个数域,A为P上的n阶方阵,则称(EA)为A的特征矩阵,称行列式| EA |为A的特征多项式,又称n次代数方程| EA |0为A的特征方程。其特征多项式为,MATLAB中利用poly(A)求解矩阵的特征多项式。调用格式为:p=poly(A) 其
51、中p为行距阵:p=c1 c2 cn cn+1, A=2 3 -1 3;3 -1 -2 -7;4 1 -3 -5;3 4 -5 7 A = 2 3 -1 3 3 -1 -2 -7 4 1 -3 -5 3 4 -5 7, p=poly(A) %求得矩阵A的特征方程系数 p = 1.0000 -5.0000 -28.0000 64.0000 42.0000 roots(p) %求得方程的根,即求得A特征值 ans = 7.4965 -4.3388 2.3839 -0.5417,4、矩阵的特征值条件数 矩阵的条件数用来判断特征值是否为多重特征值。如果矩阵的特征值条件数较大,则矩阵具有多重特征值。 V,
52、D,s=condeig(A) %输出矩阵的特征向量、特征值和条件数 c=condeig(A) %只输出矩阵的条件数, V,D,s=condeig(A) V = -0.2206 -0.2984 -0.6754 -0.6169 0.4849 0.7560 -0.3681 0.7200 0.3328 0.5786 -0.6351 -0.1846 -0.7781 0.0674 0.0700 -0.2588 D = 7.4965 0 0 0 0 -4.3388 0 0 0 0 2.3839 0 0 0 0 -0.5417 s = 1.6667 2.0358 1.9861 2.4720,这一结果在上面解特
53、征方程的根时已经结出来了,现在大家可以对比一下,看看结果是不是完全一致。,5、hessenberg矩阵,设P为一个数域,A为P上的n阶方阵,若存在n阶方阵H和酉矩阵P,使得A=PHP-1,且PP=eye(n)。则称矩阵H为hessenberg矩阵。 hessenberg矩阵H与矩阵A有相同的特征值,且hessenberg矩阵次对角线下方元素为0。有如下两种调用方法: P,H=hess(A) H= hess(A), A=2 3 -1 3;3 -1 -2 -7;4 1 -3 -5;3 4 -5 7; P,H=hess(A) P = 1.0000 0 0 0 0 -0.5145 0.5628 0.6
54、469 0 -0.6860 0.1825 -0.7043 0 -0.5145 -0.8062 0.2922,6、矩阵的零空间,设P为一个数域,A为P上的n阶方阵,若存在规范正交矩阵Z,使得AZ=0,且ZZ=I,则称矩阵Z为零空间的正交矩阵。调用方法: Z=null(A) %很多时候,对于一个矩阵A都不能求得相应的Z,即很多时候是没有这种零空间矩阵的存在的。,7、矩阵的正交空间,设P为一个数域,A为P上的n阶方阵,若存在规范正交矩阵B,使得矩阵A、B正交空间相同,则称矩阵B为矩阵A的正交空间的正交矩阵,并且可以得出矩阵B的列等于矩阵A的秩,且BB=eye(rank(A)。 MATLAB中用ort
55、h函数求解矩阵的正交空间。格式:B=orth(A) Z其中A为输入矩阵,B为正交空间的正交矩阵, 1 -1 0 1;3 -1 1 0;0 -2 1 -1;2 4 -1 3, B=orth(A) B = 0.3212 0.2549 -0.8516 -0.3267 -0.5451 0.4724 0.1912 -0.6657 -0.3266 0.6412 -0.1877 0.6685 0.7022 0.5484 0.4506 -0.0564 B*B %检查BB=eye(rank(A) ans = 1.0000 -0.0000 0.0000 0.0000 -0.0000 1.0000 0.0000 0
56、.0000 0.0000 0.0000 1.0000 -0.0000 0.0000 0.0000 -0.0000 1.0000,8、矩阵的非线性运算,利用expm(X)进行矩阵的e指数运算; 利用logm(X)进行矩阵的对数运算; 利用 sqrtm(X)进行矩阵的平方根运算;, X=1 2 3;4 5 6;7 8 9, B=expm(X) B =1.0e+006 * 1.1189 1.3748 1.6307 2.5339 3.1134 3.6929 3.9489 4.8520 5.7552 C=logm(X) C = -5.3603+2.7896i 11.9071-0.4325i -5.3340-0.5129i 12.2169-0.7970i -22.1367+2.1623i 12.5267-1.1616
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南长沙市第一医院自主招聘备考题库及答案详解(各地真题)
- 2026中国农业科学院饲料研究所新兽药与免疫调控创新团队科研助理招聘2人备考题库及答案详解(真题汇编)
- 2026浙江宁波市鄞州区公立学校招聘编外员工1人备考题库含完整答案详解(历年真题)
- 2026广西玉林市福绵区就业中心招聘见习生1人备考题库附参考答案详解【培优】
- 2026浙江嘉兴市启禾社会工作公益发展中心招聘备考题库附完整答案详解(考点梳理)
- 2026郑州大学附属郑州中心医院上半年博士招聘备考题库含答案详解【培优】
- 2026甘肃省人力资源市场招聘就业见习人员6人备考题库附完整答案详解【名师系列】
- 2025-2026学年高中数学教学设计师包包
- 2026年4月份黑龙江齐齐哈尔市碾子山区开发公益性岗位3人备考题库及参考答案详解【研优卷】
- 2026江苏南通市第一人民医院第一批招聘备案制工作人员102人备考题库(考点梳理)附答案详解
- 2026中化泉州石化春季校园招聘考试参考题库及答案解析
- 2026年安徽城市管理职业学院单招职业适应性测试题库附参考答案详解(突破训练)
- 2026年扬州工业职业技术学院单招职业技能考试题库带答案详解
- 2026年江苏安全技术职业学院单招职业技能考试题库带答案详解
- 6会摇尾巴的狼 教学课件
- GB/T 24015-2026环境管理环境尽职调查评估指南
- 2026年佳木斯职业学院单招综合素质考试题库含答案详解(完整版)
- (2023-2025)重庆市中考历史高频考点分析及2026备考建议
- 2026年甘肃省交通运输厅所属事业单位招聘600人考试备考试题及答案解析
- 高考英语重点不及物动词汇编
- 部编版三年级语文下册第三单元教材分析
评论
0/150
提交评论