MATLAB程序设计基础.ppt_第1页
MATLAB程序设计基础.ppt_第2页
MATLAB程序设计基础.ppt_第3页
MATLAB程序设计基础.ppt_第4页
MATLAB程序设计基础.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB程序设计基础,MATLAB的数值计算,Matlab的数据类型,变量变量不需要事先声明,也不需要指定变量类型,它会自动根据所赋予变量的值或对变量的操作来确定变量的类型;赋值过程中,如果变量已存在,则用新值代替旧值,以新的类型代替旧的类型。变量的命名规则:变量名区分大小写;变量名长度不超过31位,第31位之后的字符被忽略;变量名以字母开头,变量名中可以包含字母、数字、下划线,但不能使用标点。变量一般为局部变量,即仅在其调用的M文件内部有效;若要定义全局变量,须在变量前加关键字global。,常量matlab中预定义的一些特殊的量。i,j虚数单位Realmin最小的正浮点数,pi圆周率Realmax最大的浮点数,eps浮点运算的相对精度Inf无穷大NaNnotanumber,不定值例如:?pians=3.1416,?1/0Warning:Dividebyzero.ans=Inf?0/0Warning:Dividebyzero.ans=NaN,定义变量时应避免与常量名相同,如果改变了某个常量的值,可以用clear命令来恢复。,?pi=1pi=1?clearpi?pians=3.1416,数字变量数字变量的运算,?258*369ans=95202,?x=258*369x=95202,?1233ans=1860867,?sqrt(ans)ans=1.3641e+003,数字的输入输出格式缺省为实数保留小数点后4位浮点数表示。其输入格式与C语言一致:如:9-730.19991.475e6输出格式由format命令控制,只是影响屏幕显示效果,不影响内部存储和计算。,?formatlong;pians=3.14159265358979?formatlonge;pians=3.141592653589793e+000?formatlongg;pians=3.14159265358979,字符串1、字符串的约定字符串用单引号输入或赋值;字符串的每个字符都是都是字符数组的一个元素;字符串和字符数组基本上等价。,?s=symbolics=symbolic,?size(s)ans=18,?s(3)ans=m,字符串的转换double字符串转换为数值代码num2str数字转换为字符串int2str整数转换为字符串mat2str矩阵转换为字符串str2num转换字符串为数字,?double(s)ans=495051505152,字符串操作strcatstrcmpstrvcatstrncmpfindstrupperlowerblanksdeblank执行字符串,?t=1/(a*b-1);a=2;b=3;c=eval(t)c=0.2000,结构型变量由函数struct定义,以指针操作符“.”连接结构型变量名与属性名。结构型变量名struct(元素名1,元素值1,元素名2,元素值2,),?c=struct(c1,1,c2,1234,c3,abcd)c=c1:1c2:1234c3:abcd?c.c2ans=1234?c.c3ans=abcd,单元型变量单元型变量为任意类型的多维数组,其定义需用大括号,元素间用逗号隔开。,?a=1,2;3,4a=1234?b=1:4,a,abcdb=1x4double2x2doubleabcd?cellplot(b),单元型变量元素的引用采用大括号为下标标识,用小括号只显示该元素的压缩形式。,?b2ans=1234?b(2)ans=2x2double,向量向量元素用“”括起来,元素间用空格、逗号或分号分隔;注意:空格和逗号分隔成行向量,分号分割成列向量。冒号表达式生成向量基本格式:xx1:step:x2xx1:x2,?a=1:2:12a=1357911?a=12:-2:1a=12108642?a=1:6a=123456,线性等分向量生成y=linspace(x1,x2)生成100维行向量y=linspace(x1,x2,n)生成n维行向量,?a=linspace(1,100,6)a=1.000020.800040.600060.400080.2000100.0000,对数等分向量生成y=logspace(x1,x2)生成50维对数等分向量,y(1)=10x1y(50)=10x2y=logspace(x1,x2,n)生成n维对数等分向量y(1)=10x1y(n)=10x2,?a=logspace(0,5,6)a=110100100010000100000,向量的基本运算与数运算,a=1.000020.800040.600060.400080.2000100.0000?a-1ans=019.800039.600059.400079.200099.0000?a*2ans=2.000041.600081.2000120.8000160.4000200.0000,点积计算指两个向量在其中一个向量方向上的投影的乘积。dot(a,b)a,b必须同维。,?a=123;?b=3,4,5;?dot(a,b)ans=26?sum(a.*b)ans=26,叉积表示过两相交向量的交点的垂直于两向量所在平面的向量。cross(a,b)a,b必须为三维向量。混合积,?c=cross(a,b)c=-24-2?dot(a,cross(b,c)ans=24,矩阵大型矩阵通借助M文件来输入。,?A=1,2,3;4,5,6;7,8,9A=123456789,?a=123456789a=123456789,x=rand(1,5)%产生的均布随机数组x=0.95010.23110.60680.48600.8913x(3)%寻访数组x的第三个元素。ans=0.6068x(125)%寻访数组x的第一、二、五个元素组成的子数组。ans=0.95010.23110.8913x(1:3)%寻访前三个元素组成的子数组ans=0.95010.23110.6068x(3:end)%寻访除前2个元素外的全部其他元素。end是最后一个元素的下标。ans=0.60680.48600.8913,常用的特殊矩阵单位矩阵:eye(m,n);eye(m)零矩阵:zeros(m,n);zeros(m)一矩阵:ones(m,n);ones(m)对角矩阵:对角元素向量V=a1,a2,anA=diag(V)随机矩阵:rand(m,n)产生一个mn的均匀分别的随机矩阵,eye(2,3)ans=100010zeros(2,3)ans=000000ones(2,3)ans=111111V=572;A=diag(V)A=500070002,eye(2)ans=1001zeros(2)ans=0000ones(2)ans=1111,如果已知A为方阵,则V=diag(A)可以提取A的对角元素构成向量V。,其他特殊矩阵compan友矩阵函数magic魔方矩阵hankelHankel矩阵rosser对称特征值测试矩阵hilbHilbert矩阵pascalPascal矩阵invhilb反Hilbert矩阵vander范德蒙矩阵,矩阵的基本运算加减运算要求两矩阵必须同阶。,?a=123;234;345;?b=111;222;333;?c=a+bc=234456678,乘法要求a为ij阶,b为jk阶时,ab才能相乘。,?e=b,555e=111522253335?f=a*ef=141414302020204526262660,除法左除“”:相当于Ax=B的解,x=A-1B。右除“/”:相当于xA=B的解,x=BA-1A-1B=(BA-1)。通常,右除稍快一些,而左除可以避免奇异性。对于AxB,其中A为(nm)阶矩阵:n=m且非奇异时,方程为恰定方程;nm方程为超定方程;nm方程为欠定方程。,?A=123;456;780;135;?B=135;246;?A/Bans=00.5000-3.00003.5000-12.000010.25001.00000.0000,?(BA)ans=00.5000-3.00003.5000-12.000010.25001.00000.0000,矩阵与常数的运算常数与此矩阵的各元素之间进行运算。注意:进行数除时,常数通常只能做除数。矩阵的逆运算函数inv,?A=21-3-1;3107;-124-2;10-15;?inv(A)ans=-0.04710.5882-0.2706-0.94120.3882-0.35290.48240.7647-0.22350.2941-0.0353-0.4706-0.0353-0.05880.04710.2941,矩阵的行列式运算函数det,?A=21-3-1;3107;-124-2;10-15;?a1=det(A)a1=-85?a2=det(inv(A)a2=-0.0118?a1*a2ans=1,矩阵的幂运算与数字的幂运算形式相同,用“”算符。矩阵的指数运算常用函数expmexpm1expm2expm3矩阵的对数运算函数logm矩阵的开方运算函数sqrtm,?b=magic(3)b=816357492?sqrtm(b)ans=2.7065+0.0601i0.0185+0.5347i1.1480-0.5948i0.4703+0.0829i2.0288+0.7378i1.3739-0.8207i0.6962-0.1430i1.8257-1.2725i1.3511+1.4155i?b0.5ans=2.7065+0.0601i0.0185+0.5347i1.1480-0.5948i0.4703+0.0829i2.0288+0.7378i1.3739-0.8207i0.6962-0.1430i1.8257-1.2725i1.3511+1.4155i,矩阵的基本函数运算特征值函数函数x,y=eig(A)可以给出特征值和特征向量的值x为特征向量矩阵,y为特征值矩阵。,?A=73-2;34-1;-2-13;?x,y=eig(A)x=0.57740.0988-0.8105-0.5774-0.6525-0.49080.5774-0.75130.3197,y=2.00000002.39440009.6056,奇异值函数函数svdsvds矩阵翻转函数fliplrflipudrot90,a=73-234-1-2-13?fliplr(a)ans=-237-1433-1-2,?flipud(a)ans=-2-1334-173-2?rot90(a)ans=-2-1334-173-2,范数函数函数norm(X,P)P11范数P22范数Pinf无穷范数PfroF范数norm(X)norm(X,2)秩函数函数rank,e=111522223335,?rank(e)ans=2,迹函数矩阵所有对角线上元素的和称为矩阵的迹。函数trace正交空间函数函数orth用来求矩阵的一组正交基。条件数函数判断矩阵的“病态”程度。函数cond计算矩阵的条件数的值condest计算矩阵的1范数条件数的估计值rcond计算矩阵的条件数的倒数值伪逆函数函数pinv求解“病态”问题时,避免产生伪解。,?a=magic(4)a=16231351110897612414151?b=a*1111;,?inv(a)*bWarning:Matrixisclosetosingularorbadlyscaled.Resultsmaybeinaccurate.RCOND=1.567374e-017.ans=0800?pinv(a)*bans=1.00001.00001.00001.0000,通用函数形式通用函数调用格式funm(A,funname)funname包括sinsinhasinasinhcoscoshacosacoshtanexploglog2pow2sqrtabs,?funm(a,sqrt)ans=3.7584-0.2071i-0.2271+0.4886i0.3887+0.7700i1.9110-1.0514i0.2745-0.0130i2.3243+0.0306i2.0076+0.0483i1.2246-0.0659i1.3918-0.2331i1.5060+0.5498i1.4884+0.8666i1.4447-1.1833i0.4063+0.4533i2.2277-1.0691i1.9463-1.6848i1.2506+2.3006i?sqrtm(a)ans=3.7584-0.2071i-0.2271+0.4886i0.3887+0.7700i1.9110-1.0514i0.2745-0.0130i2.3243+0.0306i2.0076+0.0483i1.2246-0.0659i1.3918-0.2331i1.5060+0.5498i1.4884+0.8666i1.4447-1.1833i0.4063+0.4533i2.2277-1.0691i1.9463-1.6848i1.2506+2.3006i?sqrt(a)ans=4.00001.41421.73213.60562.23613.31663.16232.82843.00002.64582.44953.46412.00003.74173.87301.0000,矩阵分解函数特征值分解V,D=eig(X)矩阵的特征值分解:XVVDV,D=eig(X,nobalance)关闭平衡算法的求解方法(平衡算法对于某些问题可以得到更高的精度)。V,D=eig(A,B)广义特征值分解:AVBVD,?a=-149-50-154;537180546;-27-9-25;?v,d=eig(a)v=0.31620.40410.1391-0.9487-0.9091-0.97400.0000-0.10100.1789,d=1.00000002.00000003.0000,?b=2102;105-8;2-811;?v,d=eig(a,b)v=0.8211-0.3138-0.0191-0.34520.9495-0.9441-0.4546-0.00440.3290d=12.9030000-0.00450000.0706,奇异值分解U,S,V=svd(X)其中XUSV,?a=1;1;?U,S,V=svd(a)U=0.7071-0.70710.70710.7071S=1.41420V=1,LU分解L,U=lu(A)又称三角分解,目的是分解成一个下三角阵L和一个上三角阵U的乘积,即ALU,?a=123;241;467;?l,u=lu(a)l=0.25000.50001.00000.50001.000001.000000u=4.00006.00007.000001.0000-2.5000002.5000,注意:L实际上是一个“心理上”的下三角矩阵,它事实上是一个置换矩阵P的逆矩阵与一个真正下三角矩阵L1(其对角线元素为1)的乘积。,?l,u,p=lu(a)l=1.0000000.50001.000000.25000.50001.0000u=4.00006.00007.000001.0000-2.5000002.5000,p=001010100?inv(p)*l*uans=123241467,p为置换矩阵,此时满足AP-1LU,Chol分解如果A为n阶对称正定矩阵,则存在一个非奇异下三角实矩阵L,使得ALLT,当限定L的对角元素为正时,这种分解是唯一的。,?a=4-11;-14.252.75;12.753.5;?chol(a)ans=2.0000-0.50000.500002.00001.5000001.0000,正交分解AQR,?a=111;2-1-1;2-45;?q,r=qr(a)q=-0.3333-0.6667-0.6667-0.6667-0.33330.6667-0.66670.6667-0.3333r=-33-30-3300-3,将矩阵A做正交化分解,使得Q*R=A,其中Q为正交矩阵(其范数为1,指令norm(Q)=1),R为对角化的上三角矩阵。,矩阵的特殊操作,变维reshape(X,M,N)X变为MN维reshape(X,M,N,P,)X变为MNP或reshape(X,MNP)“:”操作符,?a=1:12;?b=reshape(a,2,6)b=135791124681012,?c=zeros(4,3);?c(:)=a(:)c=159261037114812,矩阵抽取对角元素抽取diag(X,k)抽取X的第k条对角线元素,k=0为主对角线,上对角线为正值,下对角线为负值。diag(X)抽取主对角线元素,?a=pascal(4)a=1111123413610141020,?v=diag(a)v=12620,?v=diag(a,2)v=14,三角阵的抽取tril(X)提取X的主下三角部分tril(X,k)提取X的第k条对角线下面的元素triu(X)提取X的主上三角部分triu(X,k)提取X的第k条对角线上面的元素,?al=tril(a,-1)al=00001000130014100,?au=triu(a,-1)au=1111123403610001020,稀疏矩阵用元素的行列号和元素值来存储一个元素。,?a=speye(100)a=(1,1)1(2,2)1(3,3)1(4,4)1(99,99)1(100,100)1,?b=eye(100);?whosabNameSizeBytesClassa100 x1001604sparsearrayb100 x10080000doublearrayGrandtotalis10100elementsusing81604bytes,常规矩阵转换为稀疏矩阵sparse(A),?a=123;456;780;?b=sparse(a)b=(1,1)1(2,1)4(3,1)7(1,2)2(2,2)5(3,2)8(1,3)3(2,3)6,?whosabNameSizeBytesClassa3x372doublearrayb3x3112sparsearrayGrandtotalis17elementsusing184bytes,sparse(i,j,s,n,m,nzmax)sparse(i,j,s,n,m)sparse(i,j,s,n)n,m为生成稀疏矩阵的行列数,i,j,s为子矩阵,nzmax最多的非零元素数稀疏矩阵转换为常规矩阵full(),数组及其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论