matlab02向量与矩阵运算
matlab第二章矩阵运算基础
南京信息工程大学
4
例2.1 创建矩阵
>>x=[1 2 3;4 5 6;7 8 9] >>x=[1 2 3 456 7 8 9] >>x=[a b c;e f g;u v w] >>x=[1 2 3;4 5 6]; y=[2 3 4;5 6 7] >>Q=x*y >>a=2;b=3 >>x=a*b
2010-12-29
2010-12-29 南京信息工程大学 6
2.1 矩阵的创建
2、 赋值语句 MATLAB赋值语句有两种格式:
变量=表达式(或数) 表达式
2010-12-29
南京信息工程大学
7
【例2.2】 x=[1,2,3;4,5,6;7,8,9] 与[1,2,3;4,5,6;7,8,9]。
5 + cos 47
【例2.3】计算
2010-12-29
南京信息工程大学
25
§2.2 矩阵和数组的算术运算 六、点运算
C=A.*B C=A.\B
C=A./B C=A.^B
2010-12-29
南京信息工程大学
26
§2.2 矩阵和数组的算术运算 七、幂运算
C=A^B C=A.^B
2010-12-29
南京信息工程大学
27
例2.12 例2.13 例2.14 例2.15
find(x)
检查x是 否全为1
南京信息工程大学 42
2010-12-29
例2.20 建立矩阵A,然后找出大于4的元素位置 (1)建立A >>A=[4 -6 5 -54 0 6 56 0 67 -45 0] (2)找出大于4的元素位置 >>find(A>4)
MATLAB中的矩阵与向量运算
之欧侯瑞魂创作4.1 数组运算和矩阵运算从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操纵简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同.4.1.1 数组运算和矩阵运算指令形式和实质内涵数组运算矩阵运算指令含义指令含义A.'非共轭转置A'共轭转置A=s把标量s赋给数组A的每个元素s+B把标量s分别与数组B的每个元素相加sB, Bs标量s分别与数组B的元素之差s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积s./B, B.\s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量sA.^n数组A的每个元素的n次方A^nA为方阵时,矩阵A的n次方A+B数组对应元素的相加A+B矩阵相加AB数组对应元素的相减AB矩阵相减A.*B数组对应元素的相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除BB.\A一定与上相同B\AA左除B(一般与右除分歧)exp(A)以e为底,分别以A的元素为指数,求幂expm(A)A的矩阵指数函数log(A)对A的各元素求对数logm(A)A的矩阵对数函数sqrt(A)对A的积各元素求平方根sqrtm(A)A的矩阵平方函数从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加"点".所以,我们要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.另外,在执行数组与数组运算时,介入运算的数组必须同维,运算所得的结果数组也是总与原数组同维.4.2 数组的基本运算在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组.4.2.1 点转置和共轭转置. ' ——点转置.非共轭转置,相当于conj(A').>> a=1:5;>> b=a. 'b =12345>> c=b. 'c =1 2 3 4 5这标明对行向量的两次转置运算便得到原来的行向量.' ——共轭转置.对向量进行转置运算并对每个元素取其共轭.如: >> d=a+i*ad =Columns 1 through 31.0000 + 1.0000i2.0000 + 2.0000i3.0000 + 3.0000i Columns 4 through 54.0000 + 4.0000i5.0000 + 5.0000i>> e=d'e =1.0000 1.0000i2.0000 2.0000i3.0000 3.0000i4.0000 4.0000i5.0000 5.0000i4.2.2 纯量 (标量) 和数组的四则运算纯量和数组之间可以进行简单数学运算.如:加,减,乘,除及其混合运行.>> g=[1 2 3 45 6 7 89 10 11 12]>> g=g2g =1 0 1 23 4 5 67 8 9 10>> 2*g1ans =3 1 1 35 7 9 1113 15 17 194.2.3 数组间的四则运算在MATLAB中,数组间进行四则运算时,介入运算的数组必须具有相同的维数,加,减,乘,除运算是按元素与元素的方式进行的.其中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:"+","".但是,数组间的乘,除运算与矩阵间的乘,除运算完全分歧,运算符号也有不同,数组间的乘,除运算符为:".*","./"或".\".1. 数组按元素相加,减>> g=[1 2 3 45 6 7 89 10 11 12]>> h=[1 1 1 1; 2 2 2 2; 3 3 3 3] >> g+h % 按元素相加ans =2 3 4 57 8 9 1012 13 14 15>> ansh % 按元素相减ans =1 2 3 45 6 7 89 10 11 12>> 2*gh % 混合运算ans =1 3 5 78 10 12 1415 17 19 212. 按元素乘>> g.*hans =10 12 14 1627 30 33 363. 按元素除数组间的除法运算符有两个,即左除:"./"和右除:".\",它们之间的关系是:a./b=b.\a>> g./hans =1.00002.00003.00004.00002.50003.00004.1000 4.00003.0000 3.3333 3.66674.0000>> h.\gans =1.00002.00003.00004.00002.50003.00004.1000 4.00003.0000 3.3333 3.66674.00004.2.4 幂运算在MATLAB中,数组的幂运算的运算为:".^",暗示每一个元素进行幂运算.>> g.^2 % 数组g每个元素的平方ans =25 36 49 6481 100 121 144>> g.^(1) % 数组g的每个元素的倒数ans =1.0000 0.5000 0.3333 0.25000.2000 0.1667 0.1429 0.12500.1111 0.1000 0.0909 0.0833>> 2.^g % 以g的每个元素为指数对2进行乘方运算ans =2 4 8 1632 64 128 256512 1024 2048 4096>> g.^h % 以h的每个元素为指数对g中相应元素进行乘方运算ans =1 2 3 425 36 49 64729 1000 1331 1728>> g.^(h1)ans =1 1 1 15 6 7 881 100 121 1444.2.5 数组的指数,对数和开方运算在MATLAB中,所谓数组的运算实质是是数组内部每个元素的运算,因此,数组的指数,对数和开方运算与标量的运算规则完全是一样的,运算符函数分别为:exp( ),log( ),sqrt( )等.>> a=[1 3 4;2 6 5;3 2 4];>> c=exp(a)c =2.7183 20.0855 54.59827.3891 403.4288 148.413220.0855 7.3891 54.5982>>数组的对数,开方运算与数组的指数运算,其方式完全一样,这里不详述.4.3 向量运算对于一行或一列的矩阵,为向量,MATLAB有专门的函数来进行向量点积,叉积和混合积的运算.4.3.1 向量的点积运算在高等数学中,我们知道,两向量的点积指两个向量在其中一个向量方向上的投影的乘积,通经常使用来定义向量的长度.在MATLAB 中,向量的点积用函数"dot"来实现,其调用格式如下:C=dot(A,B) ——返回向量A与B的点积,结果存放于C中.C=dot(A,B, DIM) ——返回向量A与B在维数为DIM的点积,结果存放于C中.>> A=[2 4 5 3 1];>> B=[3 8 10 12 13];>> C=dot(A,B)C =137>> C=dot(A,B,4)C =6 32 50 36 134.3.2 向量的叉积运算在高等数学中,我们知道,两向量的叉积返回的是与两个向量组成的平面垂直的向量.在MATLAB中,向量的点积用函数"cross"来实现,其调用格式如下:C=cross(A,B) ——返回向量A与B的叉积,即:,结果存放于C中. C=cross(A,B, DIM) ——返回向量A与B在维数为DIM的叉积,结果存放于C中.>> A=[2 4 5];>> B=[3 8 10];>> C=cross(A,B)C =0 5 44.3.3 向量的混合运算>> D=dot(A, cross(B,C))D =41上例标明,首先进行的是向量B与C的叉积运算,然后再把叉积运算的结果与向量A进行点积运算.4.4 矩阵的基本运算如果说MATLAB的最大特点是强大的矩阵运算功能,此话毫不为过.事实上,MATLAB中所有的计算都是以矩阵为基本单元进行的.MATLAB对矩阵的运算功能最全面,也是最为强大的.矩阵在形式上与构造方面是等同于前面所述的数组的,当其数学意义却是完全分歧的.矩阵的基本运算包含矩阵的四则运算,矩阵与标时的运算,矩阵的幂运算,指数运算,对数运算,开方运算及以矩阵的逆运算,行列式运算等.4.4.1 矩阵的四则运算矩阵的四则运算与前面介绍的数组的四则运算基底细同.但也有一些不同.1. 矩阵的加减矩阵的加,减与数组的加,减是完全相同的,运算时要求两矩阵的大小完全相同.>> a=[1 2; 3 5; 2 6];>> b=[2 4; 1 8; 9 0];>> c=a+bc =3 64 1311 62. 矩阵的相乘对于矩阵的乘法,从线性代数中,我们知道,要求进行相乘的两矩阵有相同的公共维.如:>> a=[1 2; 3 5; 2 6];>> b=[2 4 1; 8 9 0];>> c=a*bc =18 22 146 57 352 62 2设A矩阵为一个阶的矩阵,则要求与之相乘的B矩阵必须是一个阶,得到矩阵是阶的.即,只有当第一个矩阵 (左矩阵) 的列数等于第二个矩阵 (右矩阵) 的行数时,两个矩阵的乘积才有意义.3. 矩阵的除法对于矩阵的除法有两个运算符号,分别为左除符号"\"和右除符号"/".矩阵的右除运算速度要慢一点,而左除运算可以防止奇异矩阵的影响.对于方程,若此方程为超定的方程,则使用除法可以自动找到使的平方最小化的解.若此方程为不定方程,则使用除法运算符至少求得的解至多有rank(A) (矩阵A的秩)个非零元素,而且求得的解是这种类型的解中范数最小的一个.>> a=[21 34 20; 5 78 20; 21 14 17; 34 31 38];>> b=[10 20 30 40]';>> x=b\ax =0.7667 1.1867 0.8767上面方程是超定方程.要注意的:结果矩阵x是列向量形式.如果, >> a=[21 34 20 5; 78 20 21 14; 17 34 31 38];>> b=[10 20 30]';>> x=b\ax =1.6286 1.2571 1.1071 1.0500上面的方程为不定方程.4. 矩阵与标量间的四则运算矩阵与标量的四则运算和数组与标量间的四则运算完全相同,即矩阵中的每个元素与标量进行加,减,乘,除四则运算.需要说明的是,当进行除法运算时,标量只能做除数.5. 矩阵的幂运算矩阵的幂运算与标量的幂运算分歧.用符号"^",它不是对矩阵的每个元素进行幂运算,而是与矩阵的某种分解有关.>> b=[21 34 20; 78 20 21; 17 34 31];>> c=b^2c =3433 2074 17543555 3766 26313536 23126. 矩阵的指数,对数运算与开方运算矩阵的指数运算,对数运算与开方运算与数组相应的运算是分歧的.它其实不是对矩阵中的单个元素的运算,而是对整个矩阵的运算.这些运算函数如下:expm, expm1, expm2, expm3 ——指数运算函数;logm ——对数运算函数;sqrtm ——开方运算函数.>> a=[1 3 4; 2 6 5; 3 2 4];>> c=expm(a)c =1.0e+004 *0.4668 0.7694 0.92000.7919 1.3065 1.56130.4807 0.7919 0.9475>> c=logm(a)c =0.5002 + 2.4406i 0.5960 0.6800i 0.7881 1.2493i 0.4148 + 0.4498i 1.4660 0.1253i 1.0108 0.2302i 0.5780 1.6143i 0.4148 + 0.4498i 1.0783 + 0.8263i >> c=sqrtm(a)c =0.6190 + 0.8121i 0.8128 0.2263i 1.1623 0.4157i0.3347 + 0.1497i 2.3022 0.0417i 1.1475 0.0766i1.0271 0.5372i 0.3347 + 0.1497i 1.6461 + 0.2750i 7. 矩阵的转置,逆运算与行列式运算矩阵的转置的运算符为"'".求逆用运算函数:inv( ).而用函数:det( )则可求的矩阵行列式的大小.>> a=[1 2 0; 2 5 1; 4 10 1];>> c=a'c =1 2 42 5 100 1 1>> b=inv(a)b =5 2 22 1 10 2 1>> d=det(a)d =14.5 矩阵的特殊运算矩阵的特殊运算包含矩阵特征值运算,条件数运算,奇异值运算,范数运算,秩运算,正交化运算,迹运算,伪逆运算等,这些运算,MATLAB都可以非常方便地给出.4.5.1 矩阵的特征值运算在线性代数中,计算矩阵的特征值过程相当复杂.而在MATLAB中,矩阵特征值运算只需用函数"eig( )"或"eigs( )"计算即可得到.其使用格式如下.E=eig(X) ——生成由矩阵X的特征值所组成的一个列向量; [V,D]=eig(X) ——生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵.eigs( )函数使用迭代法求解矩阵的特征值和特征向量.D=eigs(X) ——生成由矩阵X的特征值所组成的一个列向量.X 必定是方阵,最好是大型稀疏矩阵;[V,D]=eigs(X) ——生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵.>> a=[1 2 0; 2 5 1; 4 10 1];[b,c]=eig(a)b =0.2440 0.9107 0.44720.3333 0.3333 0.00000.9107 0.2440 0.8944c =3.7321 0 00 0.2679 00 0 1.00004.5.2 矩阵 (向量) 的范数运算为了反映了矩阵 (向量) 某些特性,线性代数中引入了范数的概念,它分为2范数,1范数,无穷范数和Frobenius范数等.在MATLAB 中,用函数norm( )或normest( ) 计算矩阵 (向量) 的范数.其使用格式如下.norm(X) ——计算矩阵 (向量) X的2范数;norm(X,2) ——同上;norm(X,1) ——计算矩阵 (向量) X的1范数;norm(X,inf) ——计算矩阵 (向量) X的无穷范数;norm(X,'fro') ——计算矩阵 (向量) X的Frobenius范数; normest(X) ——只计算矩阵 (向量) X的2范数;而且是2范数的估计值,适用于计算norm(X)比较费时的情况. >> X=hilb(4)X =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429>> norm(4)ans =4>> norm(X)ans =1.5002>> norm(X,2)ans =1.5002>> norm(X,1)ans =2.0833>> norm(X,inf)ans =2.0833>> norm(X,'fro')ans =1.5097>> normest(X)ans =1.50024.5.3 矩阵的条件数运算矩阵的条件数是判断矩阵"病态"程度的一个量值,矩阵A的条件数越大,标明A越"病态",反之,标明A越"良态".如Hilbert矩阵就是一个有名的病态矩阵.cond(X) ——返回矩阵X的2范数的条件数;cond(X, P) ——返回矩阵X的P范数的条件数,其中P为1,2,inf或fro;rcond(X) ——用于计算矩阵条件数的倒数值,当矩阵X为"病态"时,rcond(X)就接近0,X为"良态"时,rcond(X)就接近1. condest(X) ——计算关于矩阵X的1范数的条件数的估计值. >> M=magic(3)M =8 1 63 5 74 9 2>> H=hilb(4)H =1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429 >> c1=cond(M)c1 =4.3301>> c2=cond(M)c2 =4.3301>> c3=rcond(M)c3 =0.1875>> c4=condest(M)c4 =5.3333>> h1=cond(H)h1 =1.5514e+004>> h2=cond(H,inf)h2 =2.8375e+004>> h3=rcond(H)h3 =3.5242e005>> h4=condest(H)h4 =2.8375e+004从上计算可以看出,魔方矩阵比较"良态",而Hilbert矩阵是"病态"的.4.5.4 矩阵的秩秩是线性代数中的相当重要的概念之一,通常矩阵可以经过初等行列式或列变换,将其转化为行阶梯形矩阵,而行阶梯矩阵所包含非零行的行数是一个定的,这个确定的非零行的行数就是矩阵的秩.矩阵中的秩用函数rank( )来计算.>> T=rand(6)T =0.9501 0.4565 0.9218 0.4103 0.1389 0.01530.2311 0.0185 0.7382 0.8936 0.2028 0.74680.6068 0.8214 0.1763 0.0579 0.1987 0.44510.4860 0.4447 0.4057 0.3529 0.6038 0.93180.8913 0.6154 0.9355 0.8132 0.2722 0.46600.7621 0.7919 0.9169 0.0099 0.1988 0.4186>> r=rank(T)r =6由上计算可知,矩阵T为满秩矩阵. >> T1=[1 1 1; 2 2 3]T1 =1 1 12 2 3>> r=rank(T1)r =2由上计算可知,矩阵T1为行满秩矩阵.。
Matlab中的矩阵运算技巧
Matlab中的矩阵运算技巧1. 引言Matlab是一款广泛应用于科学计算与工程领域的软件工具,可以进行各种数学运算和数据分析。
在Matlab中,矩阵运算是一个非常重要的部分,它可以用来表达和处理各种复杂的数据结构和算法。
本文将介绍一些在Matlab中常用的矩阵运算技巧,帮助读者更高效地使用这个强大的工具。
2. 矩阵的创建与索引在Matlab中,可以通过一些简单的方法来创建矩阵。
例如,可以使用矩阵的维度和元素进行创建:```matlabA = zeros(3, 3); % 创建一个3x3的零矩阵B = ones(2, 4); % 创建一个2x4的全1矩阵C = eye(5); % 创建一个5x5的单位矩阵```可以使用索引来访问矩阵中的元素。
Matlab中的索引是从1开始的,可以使用单个索引来获取矩阵中的元素,也可以使用多个索引来获取矩阵中的一个子矩阵。
例如:```matlabA = [1 2 3; 4 5 6; 7 8 9]; % 创建一个3x3的矩阵a = A(2, 3); % 获取第2行第3列的元素,结果为6B = A(2:3, 1:2); % 获取矩阵的第2、3行与第1、2列的子矩阵,结果为[4 5; 7 8]```3. 矩阵的加法和减法在Matlab中,可以通过矩阵的加法和减法进行矩阵之间的运算。
矩阵的加法和减法遵循相同的规则:对应位置上的元素相加或相减。
例如:```matlabA = [1 2; 3 4]; % 创建一个2x2的矩阵B = [5 6; 7 8]; % 创建一个2x2的矩阵C = A + B; % 对矩阵A和B进行相加,结果为[6 8; 10 12]D = A - B; % 对矩阵A和B进行相减,结果为[-4 -4; -4 -4]```4. 矩阵的乘法和除法在Matlab中,矩阵的乘法和除法是一个相对复杂的操作,需要注意矩阵的维度和规则。
矩阵的乘法可以通过`*`符号进行运算。
Matlab中的向量和矩阵操作方法
Matlab中的向量和矩阵操作方法Matlab是一种非常强大的数值计算和科学计算软件,广泛应用于工程、科学和金融等领域。
在Matlab中,向量和矩阵是最常用的数据结构之一,使用它们可以进行各种数值运算和数据分析。
本文将介绍Matlab中的向量和矩阵操作方法,包括创建、索引、运算等方面的内容。
1. 向量的创建和索引向量是一维的数组,可以包含任意数量的元素。
在Matlab中,我们可以通过以下方法创建向量:- 手动输入:可以使用[ ]来手动输入向量的元素。
例如,向量a = [1, 2, 3]表示一个包含3个元素的向量,分别为1、2和3。
- 使用冒号运算符:可以使用冒号运算符(:)创建一个连续的向量。
例如,向量b = 1:5表示一个包含1到5这5个连续元素的向量。
- 使用linspace函数:linspace函数可以创建一个指定起始值、结束值和元素数量的等差数列向量。
例如,向量c = linspace(1, 10, 10)表示一个从1到10的等差为1的数列向量,包含10个元素。
对于已经创建的向量,我们可以使用索引来访问和修改其中的元素。
Matlab中的索引从1开始,使用圆括号()进行索引操作。
2. 向量的运算在Matlab中,向量的运算包括数学运算和逻辑运算两种类型。
- 数学运算:可以对向量进行加、减、乘、除等数学运算。
例如,向量a = [1, 2, 3]与向量b = [4, 5, 6]相加,可以得到向量c = a + b,结果为向量c = [5, 7, 9]。
此外,还可以对向量进行数学函数的运算,如求和、平均值、最大值、最小值等。
- 逻辑运算:可以对向量进行逻辑运算,如与、或、非运算等。
在Matlab中,逻辑运算的结果为逻辑向量,其中每个元素的值为true或false。
例如,向量a = [1, 2, 3]与标量值2进行大于比较,可以得到逻辑向量b = (a > 2),结果为逻辑向量b = [false, false, true]。
Matlab中的向量和矩阵操作技巧
Matlab中的向量和矩阵操作技巧引言Matlab是一种常用的科学计算和数据分析的工具,它在向量和矩阵操作方面有着强大的功能。
本文将介绍一些在Matlab中常用的向量和矩阵操作技巧,让读者能够更加高效地进行数据处理和分析。
1. 向量和矩阵的创建和初始化在Matlab中,创建和初始化向量和矩阵非常简单。
下面我们通过几个示例来展示不同方式下的向量和矩阵创建和初始化操作。
1.1 向量的创建和初始化向量可以通过矩阵的一列或者一行进行创建。
例如,我们可以使用下面的代码创建一个行向量:a = [1 2 3 4 5];我们也可以通过reshape函数将一个矩阵转换为向量。
例如,我们可以使用下面的代码将一个3x3的矩阵转换为一个列向量:b = reshape([1 2 3; 4 5 6; 7 8 9], 9, 1);1.2 矩阵的创建和初始化矩阵可以通过直接赋值或者使用特定的函数进行创建和初始化。
例如,我们可以使用下面的代码创建一个3x3的矩阵:A = [1 2 3; 4 5 6; 7 8 9];我们也可以使用随机数生成函数来创建和初始化矩阵。
例如,我们可以使用rand函数创建一个3x3的随机矩阵:B = rand(3, 3);2. 向量和矩阵的运算Matlab提供了丰富的向量和矩阵运算符和函数,使得向量和矩阵之间的运算非常简便。
下面我们将介绍一些常用的向量和矩阵运算。
2.1 向量和矩阵的加法和减法向量和矩阵的加法和减法可以直接使用"+"和"-"运算符。
例如,我们可以使用下面的代码实现两个向量的加法和减法:a = [1 2 3];b = [4 5 6];c = a + b;d = a - b;我们可以用相同的方法对矩阵进行加法和减法运算。
2.2 向量和矩阵的乘法向量和矩阵的乘法在Matlab中有两种方式:点乘和矩阵乘法。
点乘使用"."运算符,矩阵乘法使用"*"运算符。
MATLAB中的矩阵运算
哈 工 程 大 学 数 值 计 算 软 件
●randn生成正态分布的随机阵 生成正态分布的随机阵 randn(n)生成 ×n的正态随机阵; 生成n× 的正态随机阵 的正态随机阵; 生成 randn(m,n),randn([m,n])生成 ×n的正态随机阵; 生成m× 的正态随机阵 的正态随机阵; 生成 randn(size(A))生成与矩阵 大小相同的正态随机阵。 生成与矩阵A大小相同的正态随机阵 生成与矩阵 大小相同的正态随机阵。 (5)其它基本运算 左右翻转; 上下翻转; ●fliplr(A) 将A左右翻转;●flipud(A) 将A上下翻转; 左右翻转 上下翻转 旋转90度 返回A ● rot90(A) 将 A旋转 度 。 ● tril(A)返回 A 的下三角部分 ; 旋转 返回 的下三角部分; tril(A,k)返回A第K 条对角线以下部分,K=0为主对角线, 返回A 条对角线以下部分,K=0为主对角线, 返回 K>0为主对角线以上,K<0为主对角线以下。 K>0为主对角线以上,K<0为主对角线以下。 返回A ●triu(A), triu(A,K)返回A的上三角部分,其它同上。 返回 的上三角部分,其它同上。 返回以向量v为主对角线的矩阵 ●diag(v)返回以向量 为主对角线的矩阵; 返回以向量 为主对角线的矩阵; diag(v,k) 若 v 是 n 个 元 素 的 向 量 , 则 它 返 回 一 个 大 小 为 n+abs(k)方阵,向量 位于第 条对角线上。K=0代表主对角线 方阵, 位于第k条对角线上 方阵 向量v位于第 条对角线上。 代表主对角线 为主对角线以上, 为主对角线以下。 , k>0为主对角线以上,k<0为主对角线以下。 diag(A)以向量 为主对角线以上 为主对角线以下 以向量 形式, 返回A 的主对角线元素; 对于矩阵A 形式 , 返回 A 的主对角线元素 ; diag(A,k)对于矩阵 A , 返回 对于矩阵 由第k条对角线构成的列向量 条对角线构成的列向量。 由第 条对角线构成的列向量。
如何在Matlab中进行矩阵运算和线性代数计算
如何在Matlab中进行矩阵运算和线性代数计算矩阵运算和线性代数计算在科学计算中起着至关重要的作用。
Matlab是一种强大的科学计算软件,其中内置了丰富的矩阵运算和线性代数函数,使得我们能够轻松地进行各种复杂的数学计算。
本文将介绍如何在Matlab中进行矩阵运算和线性代数计算。
一、矩阵的表示与生成在Matlab中,我们可以使用一对方括号来表示矩阵。
例如,下面的代码可以生成一个3×3的矩阵A:```A = [1, 2, 3; 4, 5, 6; 7, 8, 9];```我们也可以使用内置函数来生成一些特殊矩阵,如零矩阵、单位矩阵和对角矩阵。
下面的代码分别生成一个3×3的零矩阵B、一个3×3的单位矩阵C和一个对角元素为1、2、3的对角矩阵D:```B = zeros(3);C = eye(3);D = diag([1, 2, 3]);```二、矩阵的基本运算1. 矩阵的加法和减法在Matlab中,我们可以使用运算符"+"和"-"对矩阵进行加法和减法运算。
下面的代码演示了如何对两个3×3的矩阵A和B进行加法和减法运算:```A = [1, 2, 3; 4, 5, 6; 7, 8, 9];B = [9, 8, 7; 6, 5, 4; 3, 2, 1];C = A + B; % 矩阵相加D = A - B; % 矩阵相减```2. 矩阵的乘法矩阵的乘法在Matlab中使用运算符"*"表示。
下面的代码演示了如何对两个矩阵A和B进行乘法运算:```A = [1, 2, 3; 4, 5, 6]; % 2×3 矩阵B = [7, 8; 9, 10; 11, 12]; % 3×2 矩阵C = A * B; % 矩阵相乘```需要注意的是,矩阵的乘法是满足结合律的,但不满足交换律。
也就是说,如果A是m×n的矩阵,B是n×p的矩阵,那么A*B是m×p的矩阵,而B*A是n×n 的矩阵。
第2章 MATLAB矩阵及其运算
1 4 7 1 4 7
3 5 6 8 9 11 2 3 5 6 8 9
2.2.2 矩阵的拆分
1.矩阵元素的引用方式
1)通过下标引用矩阵的元素,例如
A=[1,2,3;4,5,6;7,8,9] A(3,2)=200 注意 :如果给出的下标大于矩阵的行数和列数,则 自动扩展原有矩阵,没赋值的元素为0。
元素由1,2,3,…,n2共n2个整数组成。MATLAB提供
了求魔方矩阵的函数magic(n),其功能是生成一个 n阶魔方阵。 (2) 范得蒙矩阵 (3) 希尔伯特矩阵 (4) 托普利兹矩阵 (5) 伴随矩阵
(6) 帕斯卡矩阵
练习
1.利用clear命令清除工作空间的变量(若工作 空间没有变量,可先任意新建一个); 2.按下列方式对变量赋值 A=[pi,2*pi;4*pi,0;10*pi,0.5*pi]; B=[1+2i,3-5i,5;4,6-2i,8;7,9+3i,11]; 3.求出2题中A的正弦函数并赋给变量C,求出 2题中B的实部和虚部分别赋给变量Br和Bi。 4.将3题中的变量C, Br和Bi保存下来,保存 数据的文件名自己选取(英文名)
1.变量命名
可以改变, 重新赋值
在MATLAB 中,变量名是以字母开头,后接字母、
数字或下划线的字符序列(不能包含空格和标点
符号),最多63个字符。在MATLAB中,变量名 区分字母的大小写。关键字和函数名不能作为变 量名。
2.赋值语句 (1) 变量=表达式 (2) 表达式
其中表达式是用运算符将有关运算量连接起来的
e或E表示 10为底的 指数
e3,2e3, 1e, 1e-2, 1E2, 1E-2i, 2E-1-i, .....
matlab第二章矩阵运算基础
矩阵的表示方法
01
02
03
文字表示法
使用中括号[]将矩阵元素 括起来,元素之间用逗号 或空格分隔,行与行之间 用分号隔开。
符号表示法
使用符号“”将矩阵元素 括起来,例如 A=[abc;def;ghi]。
分块表示法
将一个大的矩阵分成若干 个小矩阵,每个小矩阵称 为该大矩阵的一个子块。
02
04
矩阵分解与线性方程组求 解
矩阵的LU分解
LU分解
LU分解是一种将一个矩阵 分解为一个下三角矩阵L和 一个上三角矩阵U的乘积 的方法。
算法步骤
将给定矩阵A进行LU分解, 得到L和U两个矩阵,满足 A=LU。
应用场景
LU分解在许多数值计算问 题中都有应用,如线性方 程组求解、矩阵求逆等。
矩阵的QR分解
例如,`E = rand(3,3)`创建一个3x3的随机矩阵,所有元素 都是0到1之间的随机数。
矩阵的输入与
使用键盘输入:在Matlab命令 窗口中,可以直接输入矩阵并按
Enter键。
使用文件输入:可以使用`load` 函数从文件中读取矩阵数据,例
如`load('filename.mat')`。
使用`disp`、`fprintf`等函数输 出矩阵:例如,`disp(A)`会显示
迭代法适用于系数矩阵不可逆或系 数矩阵为稀疏矩阵的情况。
05
矩阵的应用实例
在控制系统中的应用
线性系统建模
利用矩阵表示线性系统的状态方程、输出方程等, 便于分析和设计控制系统。
控制系统分析
通过矩阵运算,可以对控制系统进行稳定性分析、 时域和频域分析等。
控制算法实现
利用矩阵运算实现控制算法,如PID控制、状态反 馈控制等。
MATLAB中的矩阵与向量运算
4.1 数组运算和矩阵运算从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同.4.1.1 数组运算和矩阵运算指令形式和实质内涵数组运算矩阵运算指令含义指令含义A.'非共轭转置A'共轭转置A=s把标量s赋给数组A的每个元素s+B把标量s分别与数组B的每个元素相加s-B, B-s标量s分别与数组B的元素之差s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积s./B, B.\s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量sA.^n数组A的每个元素的n次方A^nA为方阵时,矩阵A的n次方A+B数组对应元素的相加A+B矩阵相加A-B数组对应元素的相减A-B矩阵相减A.*B数组对应元素的相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除BB.\A一定与上相同B\AA左除B(一般与右除不同)exp(A)以e为底,分别以A的元素为指数,求幂expm(A)A的矩阵指数函数log(A)对A的各元素求对数logm(A)A的矩阵对数函数sqrt(A)对A的积各元素求平方根sqrtm(A)A的矩阵平方函数从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加"点".所以,我们要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.另外,在执行数组与数组运算时,参与运算的数组必须同维,运算所得的结果数组也是总与原数组同维.4.2 数组的基本运算在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组.4.2.1 点转置和共轭转置. ' ——点转置.非共轭转置,相当于conj(A').>> a=1:5;>> b=a. 'b =12345>> c=b. 'c =1 2 3 4 5这表明对行向量的两次转置运算便得到原来的行向量.' ——共轭转置.对向量进行转置运算并对每个元素取其共轭.如:>> d=a+i*ad =Columns 1 through 31.0000 + 1.0000i2.0000 + 2.0000i3.0000 + 3.0000iColumns 4 through 54.0000 + 4.0000i5.0000 + 5.0000i>> e=d'e =1.0000 - 1.0000i2.0000 - 2.0000i3.0000 - 3.0000i4.0000 - 4.0000i5.0000 - 5.0000i4.2.2 纯量(标量) 和数组的四则运算纯量和数组之间可以进行简单数学运算.如:加,减,乘,除及其混合运行.>> g=[1 2 3 45 6 7 89 10 11 12]>> g=g-2g =-1 0 1 23 4 5 67 8 9 10>> 2*g-1ans =-3 -1 1 35 7 9 1113 15 17 194.2.3 数组间的四则运算在MATLAB中,数组间进行四则运算时,参与运算的数组必须具有相同的维数,加,减,乘,除运算是按元素与元素的方式进行的.其中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:"+","-".但是,数组间的乘,除运算与矩阵间的乘,除运算完全不同,运算符号也有差别,数组间的乘,除运算符为:".*","./"或".\".1. 数组按元素相加,减>> g=[1 2 3 45 6 7 89 10 11 12]>> h=[1 1 1 1; 2 2 2 2; 3 3 3 3]>>g+h % 按元素相加ans =2 3 4 57 8 9 1012 13 14 15>>ans-h % 按元素相减ans =1 2 3 45 6 7 89 10 11 12>> 2*g-h % 混合运算ans =1 3 5 78 10 12 1415 17 19 212. 按元素乘>> g.*hans =1 2 3 410 12 14 1627 30 33 363. 按元素除数组间的除法运算符有两个,即左除:"./"和右除:".\",它们之间的关系是: a./b=b.\a>> g./hans =1.00002.00003.00004.00002.50003.00004.1000 4.00003.0000 3.3333 3.66674.0000>> h.\gans =1.00002.00003.00004.00002.50003.00004.1000 4.00003.0000 3.3333 3.66674.00004.2.4 幂运算在MATLAB中,数组的幂运算的运算为:".^",表示每一个元素进行幂运算. >> g.^2 % 数组g每个元素的平方ans =1 4 9 1625 36 49 6481 100 121 144>> g.^(-1) % 数组g的每个元素的倒数ans =1.0000 0.5000 0.3333 0.25000.2000 0.1667 0.1429 0.12500.1111 0.1000 0.0909 0.0833>> 2.^g % 以g的每个元素为指数对2进行乘方运算ans =2 4 8 1632 64 128 256512 1024 2048 4096>>g.^h % 以h的每个元素为指数对g中相应元素进行乘方运算ans =1 2 3 425 36 49 64729 1000 1331 1728>> g.^(h-1)ans =1 1 1 15 6 7 881 100 121 1444.2.5 数组的指数,对数和开方运算在MATLAB中,所谓数组的运算实质是是数组内部每个元素的运算,因此,数组的指数,对数和开方运算与标量的运算规则完全是一样的,运算符函数分别为:exp( ),log( ),sqrt( )等.>> a=[1 3 4;2 6 5;3 2 4];>> c=exp(a)c =2.7183 20.0855 54.59827.3891 403.4288 148.413220.0855 7.3891 54.5982>>数组的对数,开方运算与数组的指数运算,其方式完全一样,这里不详述.4.3 向量运算对于一行或一列的矩阵,为向量,MATLAB有专门的函数来进行向量点积,叉积和混合积的运算.4.3.1 向量的点积运算在高等数学中,我们知道,两向量的点积指两个向量在其中一个向量方向上的投影的乘积,通常用来定义向量的长度.在MATLAB中,向量的点积用函数"dot"来实现,其调用格式如下:C=dot(A,B) ——返回向量A与B的点积,结果存放于C中.C=dot(A,B, DIM) ——返回向量A与B在维数为DIM的点积,结果存放于C中.>> A=[2 4 5 3 1];>> B=[3 8 10 12 13];>> C=dot(A,B)C =137>> C=dot(A,B,4)C =6 32 50 36 134.3.2 向量的叉积运算在高等数学中,我们知道,两向量的叉积返回的是与两个向量组成的平面垂直的向量.在MATLAB中,向量的点积用函数"cross"来实现,其调用格式如下:C=cross(A,B) ——返回向量A与B的叉积,即:,结果存放于C中.C=cross(A,B, DIM) ——返回向量A与B在维数为DIM的叉积,结果存放于C中.>> A=[2 4 5];>> B=[3 8 10];>> C=cross(A,B)C =0 -5 44.3.3 向量的混合运算>> D=dot(A, cross(B,C))D =41上例表明,首先进行的是向量B与C的叉积运算,然后再把叉积运算的结果与向量A进行点积运算.4.4 矩阵的基本运算如果说MATLAB的最大特点是强大的矩阵运算功能,此话毫不为过.事实上,MATLAB中所有的计算都是以矩阵为基本单元进行的.MATLAB对矩阵的运算功能最全面,也是最为强大的.矩阵在形式上与构造方面是等同于前面所述的数组的,当其数学意义却是完全不同的.矩阵的基本运算包括矩阵的四则运算,矩阵与标时的运算,矩阵的幂运算,指数运算,对数运算,开方运算及以矩阵的逆运算,行列式运算等.4.4.1 矩阵的四则运算矩阵的四则运算与前面介绍的数组的四则运算基本相同.但也有一些差别.1. 矩阵的加减矩阵的加,减与数组的加,减是完全相同的,运算时要求两矩阵的大小完全相同.>> a=[1 2; 3 5; 2 6];>> b=[2 4; 1 8; 9 0];>> c=a+bc =3 64 1311 62. 矩阵的相乘对于矩阵的乘法,从线性代数中,我们知道,要求进行相乘的两矩阵有相同的公共维.如:>> a=[1 2; 3 5; 2 6];>> b=[2 4 1; 8 9 0];>> c=a*bc =18 22 146 57 352 62 2设A矩阵为一个阶的矩阵,则要求与之相乘的B矩阵必须是一个阶,得到矩阵是阶的.即,只有当第一个矩阵(左矩阵) 的列数等于第二个矩阵(右矩阵) 的行数时,两个矩阵的乘积才有意义.3. 矩阵的除法对于矩阵的除法有两个运算符号,分别为左除符号"\"和右除符号"/".矩阵的右除运算速度要慢一点,而左除运算可以避免奇异矩阵的影响.对于方程,若此方程为超定的方程,则使用除法可以自动找到使的平方最小化的解.若此方程为不定方程,则使用除法运算符至少求得的解至多有rank(A) (矩阵A的秩)个非零元素,而且求得的解是这种类型的解中范数最小的一个.>> a=[21 34 20; 5 78 20; 21 14 17; 34 31 38];>> b=[10 20 30 40]';>> x=b\ax =0.7667 1.1867 0.8767上面方程是超定方程.要注意的:结果矩阵x是列向量形式.如果,>> a=[21 34 20 5; 78 20 21 14; 17 34 31 38];>> b=[10 20 30]';>> x=b\ax =1.6286 1.2571 1.1071 1.0500上面的方程为不定方程.4. 矩阵与标量间的四则运算矩阵与标量的四则运算和数组与标量间的四则运算完全相同,即矩阵中的每个元素与标量进行加,减,乘,除四则运算.需要说明的是,当进行除法运算时,标量只能做除数.5. 矩阵的幂运算矩阵的幂运算与标量的幂运算不同.用符号"^",它不是对矩阵的每个元素进行幂运算,而是与矩阵的某种分解有关.>> b=[21 34 20; 78 20 21; 17 34 31];>> c=b^2c =3433 2074 17543555 3766 26313536 2312 20156. 矩阵的指数,对数运算与开方运算矩阵的指数运算,对数运算与开方运算与数组相应的运算是不同的.它并不是对矩阵中的单个元素的运算,而是对整个矩阵的运算.这些运算函数如下:expm, expm1, expm2, expm3 ——指数运算函数;logm ——对数运算函数;sqrtm ——开方运算函数.>> a=[1 3 4; 2 6 5; 3 2 4];>> c=expm(a)c =1.0e+004 *0.4668 0.7694 0.92000.7919 1.3065 1.56130.4807 0.7919 0.9475>> c=logm(a)c =0.5002 + 2.4406i 0.5960 - 0.6800i 0.7881 - 1.2493i0.4148 + 0.4498i 1.4660 - 0.1253i 1.0108 - 0.2302i0.5780 - 1.6143i 0.4148 + 0.4498i 1.0783 + 0.8263i>> c=sqrtm(a)c =0.6190 + 0.8121i 0.8128 - 0.2263i 1.1623 - 0.4157i0.3347 + 0.1497i 2.3022 - 0.0417i 1.1475 - 0.0766i1.0271 - 0.5372i 0.3347 + 0.1497i 1.6461 + 0.2750i7. 矩阵的转置,逆运算与行列式运算矩阵的转置的运算符为"'".求逆用运算函数:inv( ).而用函数:det( )则可求的矩阵行列式的大小. >> a=[1 2 0; 2 5 -1; 4 10 -1];>> c=a'c =1 2 42 5 100 -1 -1>> b=inv(a)b =5 2 -2-2 -1 10 -2 1>> d=det(a)d =14.5 矩阵的特殊运算矩阵的特殊运算包括矩阵特征值运算,条件数运算,奇异值运算,范数运算,秩运算,正交化运算,迹运算,伪逆运算等,这些运算,MATLAB都可以非常方便地给出.4.5.1 矩阵的特征值运算在线性代数中,计算矩阵的特征值过程相当复杂.而在MATLAB中,矩阵特征值运算只需用函数"eig( )"或"eigs( )"计算即可得到.其使用格式如下.E=eig(X) ——生成由矩阵X的特征值所组成的一个列向量;[V,D]=eig(X) ——生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵.eigs( )函数使用迭代法求解矩阵的特征值和特征向量.D=eigs(X) ——生成由矩阵X的特征值所组成的一个列向量.X必然是方阵,最好是大型稀疏矩阵;[V,D]=eigs(X) ——生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵.>> a=[1 2 0; 2 5 -1; 4 10 -1];[b,c]=eig(a)b =-0.2440 -0.9107 0.4472-0.3333 0.3333 0.0000-0.9107 -0.2440 0.8944c =3.7321 0 00 0.2679 00 0 1.00004.5.2 矩阵(向量) 的范数运算为了反映了矩阵(向量) 某些特性,线性代数中引入了范数的概念,它分为2-范数,1-范数,无穷范数和Frobenius范数等.在MATLAB中,用函数norm( )或normest( ) 计算矩阵(向量) 的范数.其使用格式如下.norm(X) ——计算矩阵(向量) X的2-范数;norm(X,2) ——同上;norm(X,1) ——计算矩阵(向量) X的1-范数;norm(X,inf) ——计算矩阵(向量) X的无穷范数;norm(X,'fro') ——计算矩阵(向量) X的Frobenius范数;normest(X) ——只计算矩阵(向量) X的2-范数;并且是2-范数的估计值,适用于计算norm(X)比较费时的情况.>> X=hilb(4)X =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429>> norm(4)ans =4>> norm(X)ans =1.5002>> norm(X,2)ans =1.5002>> norm(X,1)ans =2.0833>> norm(X,inf)ans =2.0833>> norm(X,'fro')ans =1.5097>>normest(X)ans =1.50024.5.3 矩阵的条件数运算矩阵的条件数是判断矩阵"病态"程度的一个量值,矩阵A的条件数越大,表明A越"病态",反之,表明A越"良态".如Hilbert矩阵就是一个有名的病态矩阵.cond(X) ——返回矩阵X的2-范数的条件数;cond(X, P) ——返回矩阵X的P-范数的条件数,其中P为1,2,inf或fro;rcond(X) ——用于计算矩阵条件数的倒数值,当矩阵X为"病态"时,rcond(X)就接近0,X为"良态"时,rcond(X)就接近1.condest(X) ——计算关于矩阵X的1-范数的条件数的估计值.>> M=magic(3)M =8 1 63 5 74 9 2>> H=hilb(4)H =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429>> c1=cond(M)c1 =4.3301>> c2=cond(M)c2 =4.3301>> c3=rcond(M)c3 =0.1875>> c4=condest(M)c4 =5.3333>> h1=cond(H)h1 =1.5514e+004>> h2=cond(H,inf)h2 =2.8375e+004>> h3=rcond(H)h3 =3.5242e-005>> h4=condest(H)h4 =2.8375e+004从上计算可以看出,魔方矩阵比较"良态",而Hilbert矩阵是"病态"的.4.5.4 矩阵的秩秩是线性代数中的相当重要的概念之一,通常矩阵可以经过初等行列式或列变换,将其转化为行阶梯形矩阵,而行阶梯矩阵所包含非零行的行数是一个定的,这个确定的非零行的行数就是矩阵的秩.矩阵中的秩用函数rank( )来计算.>> T=rand(6)T =0.9501 0.4565 0.9218 0.4103 0.1389 0.01530.2311 0.0185 0.7382 0.8936 0.2028 0.74680.6068 0.8214 0.1763 0.0579 0.1987 0.44510.4860 0.4447 0.4057 0.3529 0.6038 0.93180.8913 0.6154 0.9355 0.8132 0.2722 0.46600.7621 0.7919 0.9169 0.0099 0.1988 0.4186>> r=rank(T)r =6由上计算可知,矩阵T为满秩矩阵.>> T1=[1 1 1; 2 2 3]T1 =1 1 12 2 3>> r=rank(T1)r =2由上计算可知,矩阵T1为行满秩矩阵.参考网站:/s/blog_489f4bab01000aju.html。
02第二章Matlab语言基础-Matlab教程
MATLA于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩 阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列 例m=[1 2 3 4 ;5 6 7 8;9 10 11 12] p=[1 1 1 1 2222 3 3 3 3] 特殊矩阵的建立: a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零. b=zeros(m,n) 产生一个m行、n列的零矩阵 c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵 d=eye(m,n) 产生一个m行、n列的元素的单位矩阵 e=randn(m,n) 产生一个m行、n列正态分布随机矩阵
3、数组的方向 前面例子中的数组都是一行数列,是行方向分布的 称之为行向量 数组也可以是列向 行向量. 前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量 数组也可以是列向 量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示. 它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示 产生列向量有两种方法: 产生列向量有两种方法: 直接产生 例 转置产生 例 c=[1;2;3;4] ; ; ; b=[1 2 3 4]; c=b’
Matlab语言基础 Matlab语言基础
1)启动与退出
双击matlab图标,进入matlab命令窗口(command window) 双击matlab图标,进入matlab命令窗口(command window),即可 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。
matlab矩阵行列运算
matlab矩阵行列运算
在MATLAB中,矩阵的行列运算是非常常见的操作。
首先,我们
可以通过定义矩阵并使用内置函数进行基本的行列运算。
例如,我
们可以使用矩阵乘法运算符 "" 来进行矩阵相乘。
此外,MATLAB还
提供了一系列内置函数用于矩阵的加法、减法、转置和求逆等运算。
另外,MATLAB还支持逐元素的运算,这意味着对应位置的元素
进行操作。
例如,使用 "." 运算符进行逐元素的乘法运算,使用
"./" 运算符进行逐元素的除法运算。
除了基本的运算,MATLAB还提供了丰富的线性代数函数和工具箱,用于解决更复杂的矩阵运算问题,比如特征值分解、奇异值分解、矩阵的LU分解等。
这些函数和工具箱使得在MATLAB中进行矩
阵的行列运算变得更加方便和高效。
此外,MATLAB还支持并行计算和向量化操作,这意味着可以利
用多核处理器进行并行计算,以加快矩阵运算的速度。
总之,在MATLAB中进行矩阵的行列运算非常灵活和强大,通过
内置函数、工具箱以及并行计算的支持,可以高效地进行各种复杂的矩阵运算操作。
Matlab 教程第2章 MATLAB矩阵及其运算
H=invhilb(4)
(4) 托普利兹矩阵 托普利兹(Toeplitz)矩阵除第一行第一列外, 其他每个元素都与左上角的元素相同。生 成托普利兹矩阵的函数是toeplitz(x,y),它 生成一个以x为第一列,y为第一行的托普 利兹矩阵。这里x, y均为向量,两者不必等 长。toeplitz(x)用向量x生成一个对称的托普 利兹矩阵。例如
它专门建立一个M文件。下面通过一个简 单例子来说明如何利用M文件创建矩阵。
例2-2 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑 器,并输入待建矩阵:
(2) 把输入的内容以纯文本方式存盘(设文 件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix, 即运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
M=100+magic(5)
(2) 范得蒙矩阵 范得蒙(Vandermonde)矩阵最后一列全为1, 倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。可以用 一个指定向量生成一个范得蒙矩阵。在 MATLAB中,函数vander(V)生成以向量V 为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩 阵。
(2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义[]为空矩阵。给变
量X赋空矩阵的语句为X=[]。注意,X=[]与 clear X不同,clear是将X从工作空间中删
除,而空矩阵则存在于工作空间中,只是 维数为0。
2.2.3 特殊矩阵 1.通用的特殊矩阵 常用的产生通用特殊矩阵的函数有:
zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态 分布随机矩阵。
Matlab讲座二_矩阵及运算
其中, a=[1 2 3; 3 -5 4; 7 8 9] x=[x1;x2;x3] b=[2;0;2]
-18/17 2/17 16/17
MATLAB 基本语法
5. 矩阵的超越函数
在Matlab中解释 exp(A) 和 sqrt(A) 时曾涉及到级数运 算,此运算定义在A的单个元素上。 Matlab可以计算矩阵 的超越函数,如矩阵指数、矩阵对数等。 一个超越函数可以作为矩阵函数来解释,例如将“m” 加在函数名的后边而成 expm(A) 和 sqrtm(A),当Matlab运 行时,有下列三种函数定义: expm 矩阵指数 logm 矩阵对数 sqrtm 矩阵开方 所列各项可以加在多种m文件中或使用funm。详细用 法请利用 help 功能参见帮助文件。 例如,help expm
1.按顺序进行如下的操作: (1)产生一个5阶魔术方阵A(A=magic(5));并计 算 A' 与 A-1 (即 inv(A)); (2)求A的特征值; (3)计算A的各列的总和与平均值; (4)计算A的各行的总和与平均值; (5)若b=[1 2 3 4 5] ',求方程组 Ax=b的解; (6)验证你的结论的正确性。
MATLAB 基本语法
7. 关于矩阵的几个函数
(8)混合积
混合积由以上两函数实现: 例 计算向量a=(1, 2, 3)、b=(4, 5, 6)和c=(-3, 6, -3) 的混合积 a · b×c ) ( 解: >> a=[1 2 3]; b=[4 5 6]; c=[-3 6 -3]; >> x=dot(a, cross(b, c)) x= 54
MATLAB 基本语法
4. 矩阵除法
在Matlab中有两种矩阵除法符号: “\” 即 左除 和 “/” 即 右除。 如果A矩阵是非奇异方阵,则A\B 是A的逆矩阵乘B, 即 inv(A)*B; 而 B/A 是 B 乘A的逆矩阵,即 B*inv(A)。 具体计算时可不用逆矩阵而直接计算。 通常: x=A\B 就是 A*x=B 的解; x=B/A 就是 x*A=B 的解。
matlab矩阵和向量的相关计算
matlab矩阵和向量的相关计算实验目的:学习向量、矩阵、多项式以及图形打印等基本操作实验过程:1)、试分别生成5 阶的单位阵、8 阶均匀分布的随机矩阵及其下三角矩阵,要求矩阵元素为介于10~99之间整数>>A=eye(5)A =1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1>> B=round(rand(8)*89+10)B =49 76 22 12 64 74 72 3454 34 28 38 11 72 75 3329 49 64 11 11 17 53 8767 93 66 44 27 50 59 3138 71 43 71 62 49 21 8295 29 61 18 15 41 50 9175 85 50 13 43 24 74 3147 66 14 65 66 70 89 31>> tril(B)ans =49 0 0 0 0 0 0 054 34 0 0 0 0 0 029 49 64 0 0 0 0 067 93 66 44 0 0 0 038 71 43 71 62 0 0 095 29 61 18 15 41 0 075 85 50 13 43 24 74 047 66 14 65 66 70 89 312)、生产列向量x=[1, 3, 10, 15, 20, 25, 30, 35, 40] >> X=[1;3;10;15;20;25;30;35;40]X =13101520253035403)、生成以x 的元素为对角线的矩阵A,并输出A 的行数>> A=diag(X)A =1 0 0 0 0 0 0 0 00 3 0 0 0 0 0 0 00 0 10 0 0 0 0 0 00 0 0 15 0 0 0 0 00 0 0 0 20 0 0 0 00 0 0 0 0 25 0 0 00 0 0 0 0 0 30 0 00 0 0 0 0 0 0 35 00 0 0 0 0 0 0 0 40>> size(A)ans =994)、生成一个与 A 同阶的正态分布的随机矩阵B, 要求B矩阵元素为介于0~99之间整数>> B=abs(round(sin(rand(9))*99))B =40 69 61 35 67 76 33 77 660 47 35 52 41 49 62 68 974 18 14 26 59 66 5 70 2736 64 53 56 71 41 35 72 3941 82 73 5 8 81 47 61 4555 71 62 54 80 7 42 20 7853 64 83 64 79 52 53 27 5665 46 81 81 56 28 57 58 3248 11 6 68 25 75 11 51 465)、输出A 与B 的乘积矩阵C>> C=A*BC =Columns 1 through 640 69 61 35 67 76180 141 105 156 123 147740 180 140 260 590 660540 960 795 840 1065 615820 1640 1460 100 160 16201375 1775 1550 1350 2000 1751590 1920 2490 1920 2370 15602275 1610 2835 2835 1960 9801920 440 240 2720 1000 3000Columns 7 through 933 77 6186 204 2750 700 270525 1080 585940 1220 9001050 500 1950159****16801995 2030 1120440 2040 18406)、生成由A 与B 点乘得到的矩阵D >> D=A.*BD =Columns 1 through 640 0 0 0 0 00 141 0 0 0 00 0 140 0 0 00 0 0 840 0 00 0 0 0 160 00 0 0 0 0 1750 0 0 0 0 00 0 0 0 0 00 0 0 0 0Columns 7 through 90 0 00 0 00 0 00 0 00 0 00 0 01590 0 00 2030 00 0 18407)、生成一个由 D 的第8、4、2、5 行和第7、1、6、9、2 列组成的子矩阵E>> E=D([8 4 2 5],[7 1 6 9 2])E =0 0 0 0 00 0 0 0 00 0 0 0 1410 0 0 0 08)、求出矩阵E 的最大元素>> max(max(E))ans =14112)、产生一个5阶魔术方阵,并执行如下操作:a)将矩阵的第2行3列元素赋值给变量cb)将由矩阵第2,3,4行第3,5列构成的子矩阵赋>> A=magic(5)A =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9>> c=A(2,3)c =7>> d=A([2:4],[3 5])d =7 1613 2219 313)、给出区间[0,1]上的6个等分点数据>> a=0:1/5:1a =0 0.20000.4000 0.6000 0.8000 1.000014)、建立如下矩阵 c)[3.1400 3.14…0…0??00??… 3.14]6x6d)[010100…10…10??1010??…0]6x6 >> A=3.14*eye(6)A =3.14 0 0 0 0 00 3.14 0 0 0 00 0 3.14 0 0 00 0 0 3.14 0 00 0 0 0 3.14 00 0 0 0 0 3.14>> B=10*ones(6)B =10 10 10 10 10 1010 10 10 10 10 1010 10 10 10 10 1010 10 10 10 10 1010 10 10 10 10 1010 10 10 10 10 10>> for i=1:6B(i,i)=0;end>> BB =***********10 0 10 10 10 1010 10 0 10 10 1010 10 10 0 10 1010 10 10 10 0 1010 10 10 10 10 0生成一个4*4的随机矩阵,要求矩阵的元素为介于0~100的整数;>> A=round(rand(4)*100)A =94 6 14 2792 35 20 2041 81 20 289 1 60 75实验总结:用到的函数:单位矩阵eye ,全1矩阵ones ,随机矩阵rand ,正态分布randn ,正弦函数sin ,取整round ,魔方矩阵magic ,最大值maxThe last rose of summer夏日最后的玫瑰Left blooming alone;独自绽放着;All her lovely companions所有昔日动人的同伴Are faded and gone;都已凋落残逝;No flower of her kindred,身旁没有同类的花朵,No rose-bud is nigh,没有半个玫瑰苞,to reflect back her blushes,映衬她的红润,Or give sigh for sigh.分担她的忧愁。
探究Matlab中的向量化计算技巧
探究Matlab中的向量化计算技巧引言在数据科学领域,Matlab是一种广泛使用的编程语言和计算工具。
在处理大规模数据集时,向量化计算技巧可以大大提高代码的运行效率。
本文将探究在Matlab中实现向量化计算的方法和技巧。
一、向量化计算的概念在Matlab中,向量化计算是一种使用向量和矩阵运算来代替循环操作的技术。
它可以在一行代码中同时对整个向量或矩阵进行操作,从而提高计算速度。
向量化计算利用内建的矩阵运算函数,如加法、减法、乘法、除法等,实现了对大规模数据集的高效处理。
二、使用点运算符在Matlab中,点运算符是进行向量化计算的关键。
通过使用点运算符,可以直接对两个向量(或数组)逐元素进行运算,而无需使用循环来处理每个元素。
例如,假设我们有两个向量A和B,我们想要计算它们的点积。
通过使用点运算符,可以直接使用A .* B来完成计算,而不必使用循环逐个元素相乘,并将结果保存在一个新的向量中。
三、使用矩阵代替循环除了使用点运算符,还可以使用矩阵来代替循环操作。
在Matlab中,矩阵运算函数通常比循环更高效。
例如,假设我们有一个矩阵X,我们想要计算每行的和。
通过使用矩阵运算函数sum,我们可以直接计算每行的和,并将结果保存在一个新的向量中,而无需使用循环逐个元素相加。
四、逐步构建向量化计算代码当我们处理较复杂的问题时,很难一开始就完全实现向量化计算。
在这种情况下,我们可以逐步构建向量化计算代码。
首先,我们可以使用循环来实现初始版本的代码,以确保算法的正确性。
然后,我们可以逐步将循环转换为矩阵运算函数,从而实现向量化计算。
五、注意向量化计算的边界条件在进行向量化计算时,我们需要注意处理边界条件。
有时,边界条件可能无法同时满足矩阵运算函数的要求。
这时,我们需要特别处理这些边界条件,并使用适当的方法来处理它们。
六、衡量向量化计算效果的指标在衡量向量化计算效果时,我们可以使用不同的指标。
常见的指标包括运行时间、内存使用和代码长度。
Matlab 第二讲:向量与矩阵的运算
存储指定的变量
save
文件名
变量名列表
变量名列表中各变量之间用空格分隔
例:>> save mydata A x z
15
变量的读取
将数据文件中的变量载入当前工作空间
load mydata load mydata A x 读取数据文件中的所有变量 从数据文件中提取指定变量
清除当前工作空间中的变量
10
常用数学函数
linspace(a,b,n) % 生成 a 到 b,n 个数的等差数列 logspace(a,b,n) % 生成 10a 到 10b,n 个数的等比数列 max(x) min(x) mean(x) sum(x) sort(x) det(A) inv(A) eig(A) rank(A) % % % % % % % % % 求 向量 x 中的最大值 求最小值 求平均值 求和 排序 行列式 求逆 特征值 求矩阵的秩
数学实验
向量与矩阵运算
1
本讲主要内容
数组运算
函数的使用 变量的输入输出
2
矩阵的数组运算
数组运算:对应元素进行运算
数组运算包括:点乘、点除、点幂
相应的四个数组运算符为: .* ./ .\ .^
点与算术运算符之间不能有空格! 例: >> A = [1,2,3; 4,5,6]; B = [3,2,1; 6,5,4];
底为矩阵,指数为标量 底为标量,指数为矩阵
7
数与数组的点幂
例:x=[1 2 3]; y=[4 5 6];
x.^y =[1^4,2^5,3^6]=[1,32,729] x.^2 =[1^2,2^2,3^2]=[1,4,9] 2 .^x = ?
第二章matlab矩阵运算
③数组乘方(.^) — 元素对元素的幂 数组乘方
例: a=[1 2 3];b=[4 5 6]; z=a.^2 z= 1.00 4.00 z=a.^b z= 1.00 32.00
4 23 2 1 1 12 4 2
2. 矩阵的翻转与旋转
matlab提供对矩阵进行翻转与旋转的 函数,它们的调用格式:
rot90(A,k) fliplr(A) flipud(A)
3. 对角阵与三角阵
对角阵的定义: 对角阵的定义
只有对角线上有非0元素的矩阵称为对角矩阵, 只有对角线上有非 元素的矩阵称为对角矩阵, 元素的矩阵称为对角矩阵 对角线上的元素相等的对角矩阵称为数量矩阵, 对角线上的元素相等的对角矩阵称为数量矩阵, 对角线上的元素都为1的对角矩阵称为单位矩阵 的对角矩阵称为单位矩阵。 对角线上的元素都为 的对角矩阵称为x=[2 pi/2;sqrt(3) 3+5i]
3. 矩阵的修改
直接修改 可用↑键找到所要修改的矩阵,用←键移动 到要修改的矩阵元素上即可修改。 指令修改 可以用A(∗,∗)= ∗ 来修改(赋值,见MATLAB help Matrix)。
例如 a=[1 2 0;3 0 5;7 8 9] a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0
3.左除与右除运算
若AV=I 则V=A-1 =inv(A) 对于方程 D*X=B inv(D)*D*X=inv(D)*B X=inv(D)*B=D\B (左除,逆矩阵左乘) 对于方程 X*D=B X*D*inv(D)=B*inv(D) X= B*inv(D)=B/D (右除,逆矩阵右乘)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
reshape(A,m,n): 将矩阵元素按 列方向 进行重组 重组后得到的新矩阵的元素个数 必须与原矩阵元素个数相等!
>> reshape(A,2,6)
查看矩阵的大小:size
size(A) 列出矩阵 A 的行数和列数 size(A,1) 返回矩阵 A 的行数 size(A,2) 返回矩阵 A 的列数
例: >> A=[1 2 3; 4 5 6]
size(A) size(A,1), size(A,2)
[m,n]=size(A)
%双输出变量,“多元赋值语句”!!!
ones(size(A)) length(x) 返回向量 X 的长度 length(A) 等价于 max(size(A))
2.3 矩阵基本运算:+、-、*、/、^
试一试:A7=eye(5)*2004+diag(20:10:50, -1 )
A7=eye(5)*2004+diag(20:10:40, 2 )
教材P53 :Ex5
-- 如何建立下列矩阵
1 2 1 3 ( 6 ) 1 11
1 3 1 4
... ...
1 12
...
1 12 1 20 10 10
直接输入: a=[1, 2, 3, 4], c=[2;4;6;8]
% 很常用!
用冒号运算符 :
例: a=[1:4](方括号可以省略) ==> a=[1, 2, 3, 4] b=[0:pi/3:pi] ==> b=[0, 1.0472, 2.0944, 3.1416] 由取等分点函数linspace()生成: 一般格式: x=linspace(a,b,n) % n省略取100个等分点
解:A1=eye(10)*2004
0 10 ( 2 ) 10 10 0 10 ... ... ... 10 10 0 10 10
解:A3=ones(10)+eye(10)*2003
10 10 ( 4 ) 10 10 10 10 ... ... ... 10 10 10 10 10
例: >> A=[1 2;2i 3i]
B=A’ C=A.’
变维操作 :reshape
>> A=[1 2 3;4 5 6;7 8 9;10 11 12] A= 1 4 7 10 2 5 8 11 3 6 9 12 >> reshape(A,3,4) A= 1 4 7 10 2 5 8 11 3 6 9 12
解:A2=(ones(10)-eye(10))*10
解:A4=-10*ones(10)+eye(10)*20
教材P53 :Ex5
-- 如何建立下列矩阵
10 1 (5 ) 1 0 20 1 ... ... ... 0 0 100 10 10
rot90(A,k) 逆时针旋转 k×,5,6;7,8,9]
B=fliplr(A)
C=flipud(A)
D=rot90(A), E=rot90(A,-1)
矩阵的转置与共轭转置
’ 共轭转置 .’ 转置,矩阵元素不取共轭
点与单引号之间不能有空格!
3.3.1 矩阵加减:对应分量进行运算
% 要求参与加减运算的矩阵具有 相同的维数 例:>> A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4]
C=A+B, D=A-B
% 特别:标量可以与任意维数的矩阵相加减。标量与每个元素相加减。
3.3.2 矩阵乘法
矩阵的普通乘法
%要求参与运算的矩阵满足线性代数中矩阵相乘的原则:内阶数相同 例:>> A=[1 2 3; 4 5 6]; B=[2 1; 3 4]; C=A*B % 对于标量,可以与任意维数的矩阵相乘。标量与每个元素相乘。
1 11
解: 观察:此矩阵是Hilbert矩阵 的一部分,先观察hilb(5) %求所需矩阵 format rat h=hilb(11); h(1,:)=[]; h(:,end)=[] format
%设置有理数格式显示 %生成11阶的h矩阵 %删除第一行 %删除最后一列 %恢复系统默认显示
1 1 2 hilb ( 5 ) 1 3 1 4 1 5
例:试做一个名为data.m的命令文件,在其中输入:
A=[1, 2, 3; 4, 5, 6; 7, 8, 0] 并在matlab命令窗口中,执行 data 命令。
由函数生成的特殊矩阵
例:>> c=magic(3)
%魔方矩阵
常见矩阵生成函数
zeros(m,n)生成一个 m * n 的零矩阵; -- 全0矩阵 zeros(m,n) zeros(n) 生成一个 n * n 的零矩阵; zeros(size(A))生成一个 与A同样大小的零矩阵。 ones(m,n) eye(m,n) diag(X) diag(X,n) 生成一个 m 行 n 列的元素全为 1 的矩阵, -- 全1矩阵 m=n 时可写为 ones(n) 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵
线性方程组表为矩阵相乘:
例:求下列线性方程组的解 x1+2x2+3x3=1 4x1+5x2+6x3=3 7x1+8x2 =5 解:线性方程组可以用矩阵形式来表达:
1 A* X 4 7
2 5 8
3 x1 1 6 x2 3 b 0 x 3 5
解:A5=tril(eye(10))+diag(9:10:99)
2004 0 (7 ) 0 0 0 20 2004 0 0 0 0 30 2004 0 0 0 0 40 2004 0 0 0 50 2004 0
解:A7=eye(5)*2004+diag(20:10:50,1)
例: >> A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; >> C=kron(A,B) 则运行结果: C= 1 3 2 2 6 4 2 4 6 4 8 12 3 9 6 4 12 8 6 12 18 8 16 24
2.3.3 矩阵除法: \(左除)、/(右除) 矩阵除法:
左除:如 C=A\B 右除:如 C=B/A
自己动手
建立一个5阶的魔方矩阵,试一试上边的冒号运算。 A(:) 与 A(:,:) 的区别 ? 如何获得由 A 的第一、三行和第一、二列组成的子矩阵?
>> A=[1,2,3;4,5,6;7,8,9] A= 1 4 7 10 2 5 8 11 3 6 9 12
矩阵的旋转
fliplr(A) 左右旋转 flipud(A) 上下旋转 rot90(A) 逆时针旋转 90 度;
其它特殊矩阵生成函数:magic、hilb、pascal
教材P53 :Ex5
-- 如何建立下列矩阵
2004 0 (1) 0 0 2004 0 ... ... ... 0 2004 10 10 0 2004 1 (3) 1 1 2004 1 ... ... ... 1 2004 10 10 1
% 功能:在区间[a,b]上取n个等分点,包含端点a,b
从矩阵中抽取 例: a=A(2,:), b=A(:,1) % 考虑a和b的含义?
矩阵的产生(4种常用方法)
直接输入: A=[1, 2, 3; 4, 5, 6; 7, 8, 9] 大矩阵可以由向量或矩阵拼合而成 例:1)>> x=[1,2,3];y=[2,3,4]; A=[x,y], B=[x;y] % 考虑A和B的区别? 通过编写m文件生成: 通常是较大或元素较为繁琐的矩阵
2.2 矩阵操作: 矩阵的提取、旋转、转置和变维
提取矩阵的部分元素: 冒号运算符
A(:) A的所有元素
A(:,:) 二维矩阵A的所有元素 A(:,k) A的第 k 列, A(k,:) A的第 k 行
A(k:m) A的第 k 到第 m 个元素
A(:,k:m) A的第 k 到第 m 列组成的子矩阵
矩阵 Kronecker 乘积(张量积): kron(A,B)
设A是n×m矩阵,B是p×q矩阵,则A与B的kronecker乘积为np×mq矩阵:
a1 1 B a 21 B C A B an1 B a1 2 B a 22 B an2 B a1 m B a2m B a nm B
% 生成相应的函数值列向量y并显示在窗口中
y = 0 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0 0.0500 0.0998 0.1494 0.1987 0.2474 0.2955 0.3429 0.3894 0.4350 0.4794 0.5227 0.5646 0.6052 0.6442 0.6816 1.0000 0.9988 0.9950 0.9888 0.9801 0.9689 0.9553 0.9394 0.9211 0.9004 0.8776 0.8525 0.8253 0.7961 0.7648 0.7317 0 0.0500 0.1003 0.1511 0.2027 0.2553 0.3093 0.3650 0.4228 0.4831 0.5463 0.6131 0.6841 0.7602 0.8423 0.9316