ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:26.24KB ,
资源ID:7094252      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7094252.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第二章 MATLAB 的基本数学功能.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第二章 MATLAB 的基本数学功能.docx

1、第二章 MATLAB 的基本数学功能第二章 MATLAB 的基本数学功能Chapter two: fundamental Math function of MATLAB.一 算术运算(Arithmetic Computation)MATLAB 提供的两种运算方式:(1) 普通的数组运算方式:(Array computation) 在数组中对应元素之间进行运算;(2) 矩阵运算方式:(matrix computations) 将标量当作11阶矩阵,一维数组当作一行或一列的矢量(即1n阶或 n1阶的矩阵),二维数组当作mn阶矩阵,然后按照矩阵的运算规则进行运算。 *二者输入形式和书写方法相同,差别

2、仅在于使用不同的运算符号,执行不同的计算过程,数组的运算是对应元素之间的运算,而矩阵运算是根据矩阵的运算规则进行。 1 加、减运算(addition and subtraction)矩阵与数组的加减运算没有区别,运算符均为“+”、“-”,运算方法相同,但两个运算对象必须是同阶矩阵,否则将给出错误信息。如下例:a=1 2 3;4 5 6;7 8 9;b=1 3 5;a+b运行结果给出错误信息:? Error using =Matrix dimensions must agree.但标量,即11阶矩阵可以和其他不同维数的矩阵进行加减运算,如:a+5ans = 6 7 89 10 1112 12 1

3、42 乘除运算(Multiplication and division)矩阵在进行乘除运算时与通常的运算符号相同(*, /, ),而数组在进行乘除运算时要在通常的符号前加“.”,如:“.* ” 和“./ ” (或 “. ”)(1) 矩阵乘法:(Matrix multiplication)条件:两矩阵中前一矩阵的列数与后一矩阵的行数相同, 如x=1 2 ; 3 4;y=5 6 ; 7 8;x*yans =19 2243 50也可以实现两个相同维数矢量的内积(点乘,dot product),如:a=-1 0 2 % (输入行矢量转置为列矢量,等同于a=-1;0;2)b=-2 -1 1a*bb*a

4、a = -1 0 2b = -2 -1 1ans = 4ans = 4MATLAB计算点乘(dot product)和叉乘(cross product)有专门的命令,用dot(a,b)计算矢量a和b的点乘,用cross(a,b) 计算叉乘。矩阵可以和标量相乘,标量可以是乘数也可以是被乘数,都是将矩阵中的每一个元素与标量相乘。如:x=-1 0 2;pi*xans = -3.1416 0 6.2832(2) 数组的乘法 (Array multiplication)条件:a,b两数组必须有相同的维数,则a.*b 表示a和b中对应元素之间相乘,即z(i,j)=x(i,j)*y(i,j).如:x=1 2

5、 3;y=4 5 6;z=x.*yz =4 10 18(3) 矩阵除法 (Matrix division)条件:a矩阵是非奇异方阵,则ab(左除)和b/a(右除)都可以实现。ab等效于a矩阵的逆左乘b矩阵,即ab=inv(a)*b, b/a等效于a矩阵的逆右乘b矩阵,即b/a=b*inv(a).通常x=ab 是a*x=b 的解,x=b/a 是x*a=b的解。一般a bb/a,右除与左除的关系为:(b/a)=(ab),如;a=rand(3)b=rand(3)c=abd=b/aw=(b/a)t=aba = 0.6038 0.0153 0.9318 0.2722 0.7468 0.4660 0.19

6、88 0.4451 0.4186b = 0.8462 0.6721 0.6813 0.5252 0.8381 0.3795 0.2026 0.0196 0.8318c = 4.3420 10.5808 -9.1715 0.3128 1.1052 -0.3169 -1.9105 -6.1529 6.6792d = 1.4864 5.5604 -7.8702 0.7162 4.5085 -5.7059 -0.0482 -3.6273 6.1317w = 1.4864 0.7162 -0.0482 5.5604 4.5085 -3.6273 -7.8702 -5.7059 6.1317t = 1.4

7、864 0.7162 -0.0482 5.5604 4.5085 -3.6273 -7.8702 -5.7059 6.1317(4) 数组的除法(Array division)条件:a与b必须具有相同的维数。符号“. ”或 “. / ”,运算结果相同,a.b 表示b中的元素分别除以a中的对应元素,即z(i,j)=x(i,j)y(i,j)=y(i,j)/x(i,j)。 如:x=1 2 3;y=4 5 6;z=x.yz = 4.0000 2.5000 2.00003. 乘方(Power)(1) 矩阵的乘方(Matrix power)条件:在ap 中a, p不可都是矩阵,必须一个是标量,一个是方阵。

8、ap 意思是a的p次方。a, p的类别不同,乘方的算法也有差别,有三种情况:1、a是一个方阵,p是一个标量,且p 是大于1 的整数,则a的p次幂即为a自乘p次。 2、如p是不为整数的标量时, ap=V*D.p/V 其中D为矩阵a的特征值矩阵,V为对应的特征矢量阵,可用eig函数求出D和V, V,D=eig(a). 3、当p 是方阵而a是标量时,ap=V*a.D/V, 其中V,D=eig(p).(2) 数组的乘方(Array power) 符号 “. ”条件:在底与指数均为数组的情况下,要求他们的维数必须相同。*当底和指数为同样大小的数组时,x.y 为对应的元素做乘方运算。如:x=1 2 3;y

9、=4 5 6;z=x.yz =1 32 729这时执行的实际运算为:z=x.y=1 2 3.4 5 6=14 25 36=1 32 729*若指数是标量,执行的运算是底的每一个元素执相同幂次的运算。既z(i,j)=x(i,j)2如:x=1 2 3;z=x.2得到结果为: z= 1 4 9这时执行的运算为:z=1 2 3.2=12 22 32=1 4 9*若底是一个标量,指数是一个数组,执行的运算是用指数数组的每个元素对底进行乘方运算,即: z(i,j)=2x(i,j),形成新的数组。 如:x=1 2 3;z=2.xz =2 4 8 这时执行的运算为:z=2.x=2.1 2 3=21 22 23

10、 4 转置:(Transpose) 行列转置,符号 “ ”如;计算矩阵a的转置:a=1 2 3; 4 5 6; 7 8 9 ; b=ab = 1 4 7 2 5 8 3 6 9也可直接对矢量或矩阵进行转置运算;-1 0 2ans = -1 0 2如z是复数矩阵,则z 是它的复数共轭.转置(Complex conjugate transpose ),若要进行非共轭转置运算,可使用z. 或conj(z) 求得。 例;z=1+2i 3+4i;zans = 1.0000 - 2.0000i 3.0000 - 4.0000iz.ans = 1.0000 + 2.0000i 3.0000 + 4.0000

11、iconj(z)ans = 1.0000 + 2.0000i 3.0000 + 4.0000iCONJ Complex conjugate. CONJ(X) is the complex conjugate of X. For a complex X, CONJ(X) = REAL(X) - i*IMAG(X).二 数学函数和矩阵函数( Mathematic function and matrix function) MATLAB提供的数学函数主要有基本函数和特殊函数两部分。1 数学函数(Math function)(a). 基本函数:(Elementary function)三角函数(Tri

12、gonometric Function)、指数函数(Exponent function)、复数函数(Complex Function)、取整和求余函数(round and remain function)。(常用基本函数见表2-1,要求课后阅读、记忆)例: a=1 2 3; 4 5 6b=fix(pi*a) %朝零方向取整c=cos(pi*b)pi*ba = 1 2 3 4 5 6b = 3 6 9 12 15 18c = -1 1 -1 1 -1 1说明:(1) 三角函数按弧度计算 (2)除后取模mod(x,y)与y符号相同,除后取余数rem(x,y) 与x符号相同,当x与y符号相同时 ,m

13、od(x,y)等于rem(x,y).例:x=11 25 31;y=4 5 6;M=mod(x,y)R=rem(x,y)M = 3 0 1R = 3 0 1x=-11 25 -31;y=4 5 6;M=mod(x,y)R=rem(x,y)M = 1 0 5R =-3 0 -1MOD Modulus after division.MOD(x,y) is x - n.*y where n = floor(x./y) if y = 0. If y is not aninteger and the quotient x./y is within round off error of an integer

14、, then n is that integer. By convention, MOD(x,0) is x. The input x and y must be real arrays of the same size, or real scalars.The statement x and y are congruent mod m means mod(x,m) = mod(y,m).REM Remainder after division.REM(x,y) is x - n.*y where n = fix(x./y) if y = 0. If y is not an integer a

15、nd the quotient x./y is within roundoff error of an integer,then n is that integer. By convention, REM(x,0) is NaN. The input x and y must be real arrays of the same size, or real scalars. REM(x,y) has the same sign as x while MOD(x,y) has the same sign as y.REM(x,y) and MOD(x,y) are equal if x and

16、y have the same sign, but differ by y if x and y have different signs.(b) 特殊函数:(Special function)特殊数学函数(special mathematics function)、数理函数(Mathematic analysis function)、坐标变换(Coordinates transformation function)(表2-2) 2. 矩阵函数:(Matrix function) 矩阵分析(Matrix Analysis)、线性方程组(linear system of equations)、特

17、征值和特征矢量(Eigenvalues and eigenvectors.)、矩阵函数(Matrix function)、因式分解(Factor analysis) 等矩阵函数(表2-3)。有些矩阵函数与数学函数名称相似,区别在于矩阵函数名称后有m字符。例:a=1 4; 9 16;r1=sqrt(a)r2=sqrtm(a)r1 = 1 2 3 4r2 = 0.4662 + 0.9359i 0.8860 - 0.2189i 1.9935 - 0.4924i 3.7888 + 0.1152iSQRT Square root. SQRT(X) is the square root of the el

18、ements of X. Complex results are produced if X is not positive.SQRTM Matrix square root. X = SQRTM(A) is the principal square root of the matrix A, i.e. X*X = A. X is the unique square root for which every eigenvalue has nonnegative real part. If A has any eigenvalues with negative real parts then a

19、 complex result is produced. If A is singular then A may not have a square root. A warning is printed if exact singularity is detected.三 关系运算与逻辑运算(Relational calculus and Logical operation)1关系运算:(Relational calculus)条件:对于两个矩阵的关系运算,两边的矩阵必须具有同样尺寸。关系运算符:(Relational operator) 小于(less than)、=小于等于(less th

20、an or equal to)、大于(greater than)、=大于等于(greater than or equal to)、= 等于(equal to)、=不等于(not equal to ,NE)。 例:标量2+2=4ans = 0矩阵:a=0 -1 2;b=-3 1 2;ab ans = 0 1 0ab ans = 1 0 0a=b ans = 1 0 1a=b ans = 0 0 1 a=b ans = 1 1 0 在程序的流程控制中,关系运算符通常if, while, for, switch 等控制命令使用。2 逻辑运算(Logical operation)逻辑运算符:(Logi

21、cal operator) & 与(AND), | 或(OR), 非(NOT)条件:对于两个矩阵的逻辑运算,两边的矩阵必须具有同样尺寸。“” 是一元算符,当a为零时,返回信息为1,为非零时,返回信息为 0。# p|(p) 返回值为 1, # p&(p) 返回值为0例:a=1 2 3; 4 5 6;b=-1 0 0; 0 0.5 0;a&bans = 1 0 0 0 1 0a|b ans = 1 1 1 1 1 1 b ans = 0 1 1 1 0 13关系函数和逻辑函数 (Relational function and Logical function) (表26)例: a=magic(6)

22、 建立6阶魔术矩阵,元素由1n2组成p=(rem(a,3)=0) 对a求余,有余数置0,无余数置1format +; p 以format +格式给出p的压缩格式format 将显示格式转换为缺省的短格式y=a;i=find(y10); 找出y矩阵中大于10的元素的位置iy(i)=10*ones(1) % 用10代替y中所有大于10 的元素a = 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11p = 0 0 1 0 0 1 1 0 0 1 0 0

23、0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0p = + + + + + + + + + + y = 10 1 6 10 10 10 3 10 7 10 10 10 10 9 2 10 10 10 8 10 10 10 10 10 10 5 10 10 10 10 4 10 10 10 10 10四 基本字符处理功能(Elementary Symbolic treatment function) 1. 字符数组的建立(Setting of Symbolic array) (1)字符串(string of character)就是ASCII值得数值

24、数组(Character arry),MATLAB 中每个字符都有相应的ASCII码数值进行存储,输入时所有字符串都用单引号界定后输入或赋值,yesinput除外。例如:s1=He llo s1 =Hello字符串中空格也是字符,上例为15阶矩阵: size(s1)ans = 1 5 (一行五列)(2)利用class 函数和 ischar函数可以判别变量是否为字符串,如: class(s1) ans =charischar(s1) ans = 1(3) 可以用方括号(square bracket)将字符串合并成更大的串,例如: s=s1,World得结果:s = Hello World(4)

25、可以从一个字符串中提取子串(sub string),例如:ss=s(7:11)ss = World(5) 可以将字符串中的字符倒序排列。例如: a=a b c d a =a b c db=a(end:-1:1)b= d c b a(6) 建立二维数组(two dimensional array)一样可以直接输入,只须加方括号,并用分号分行,每行字数必须一致,不足处可用空格补充。 例如:str=name;type;size str =nametypesize还可用str2mat函数把字符串转化为字符数组,这种方法允许用不同长度的字符串。例如:s2=str2mat(abc,abcde)s2 =ab

26、c abcde2 字符数组的运算(Operation of symbolic array) (1)字符以ASC码存储,用double 命令可以查出字符的ASC码值。如运行double(s1) 得s1码值为: ans =72 101 108 108 111 (2) 用char命令可以实现ASC码向字符的转换.如:执行char(65 66 67 68 得: ans =ABCD(3) ischar函数用来检测变量是否为字符变量,返回1 为肯定,返回0 为否定。(4). strcmp 函数具有比较字符串的功能,如执行strcmp(str1,str2), 返回1 表示str1=str2, 返回0 表示s

27、tr1str2.(5). 用eval 函数将字符串转换为宏功能。eval(t)就是运行包含在t中的内容。 例如: 用eval函数产生5阶的Hilbert矩阵。n=5;t=1/(i+j-1); %字符串ta=zeros(n);for i= 1:n for j=1:n a (i , j) = eval(t); 将字符串转变为宏功能,运行包含在t%中的内容 endendaa = 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

28、0.2000 0.1667 0.1429 0.12500.2000 0.1667 0.1429 0.1250 0.1111常用字符串函数(表27)五 建立特殊数组(矩阵)(setting a special array, matrix)1 标准数组(或矩阵)函数:(Standard array function) MATLAB提供了一些可以用于辅助编程或运算的一些基本数组或矩阵,主要有:全0数组:zeros,全1数组:ones,单位矩阵:eye, 均匀分布的随机数组:rand, 正态分布的随机数组:randn,对角矩阵:diag, 魔术矩阵magic, pascal矩阵:pascal.2. 由

29、小数组建立大数组:(generating a big array by using small array) 大数组可由方括号中的小数组建立,如有矩阵a=1 2 3; 4 5 6 ; 7 8 9 %可利用它建立一个大矩阵:c=a eye(size(a); ones(size(a) a2a = 1 2 3 4 5 6 7 8 9c = 1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 30 36 42 1 1 1 66 81 961 1 1 102 126 150也可以写成: d=a zeros(3,2); ones(2,3) eye(2,2)d = 1 2 3 0 0 4 5 6 0 0 7 8 9 0 0 1 1 1 1 0 1 1 1 0 1注意:在同一行的各个小数组要有相同的行数,在同一列上的小数组要有相同的列数。3. 冒号“:” 的使用(The using of colon)(1) 产生一维数组(Initialize a one dimensional array),

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1