1、MATLAB学习笔记Matlab学习笔记第一章矩阵及基本运算1、rand相关 rand()随机矩阵,元素在(0,1)之间; randn()正态分布随机矩阵!元素大小是不限制的,方差为1 randperm(n) 生成1到n之间n个随机数,相当于对n个数进行一个排列;2、blkdiag(a,b,c.)产生以a,b,c 为对角元素的对角矩阵;3、numel(A)计算矩阵A中元素的个数;4、compan 计算友矩阵,对于计算特征值特征向量很有帮助,eig为计算特征值;5、linspace(a,b ,n)将a,b等分为n等分,如果不输入n将视为默认1006、几个特殊矩阵:全一矩阵ones;单位矩阵eye
2、;全零阵zeros7、logspace(a,b):产生在(10a,10b)之间的对数等分向量,同样可以在最后进行限制logspace(a,b,n),eg:logspace(1,2,6)结果为:ans =10.0000 15.8489 25.1189 39.8107 63.0957 100.0000,另外还有一个:y = logspace(a,pi),不太一样:logspace(1,pi,5) :ans =10.0000 7.4866 5.6050 4.1963 3.1416,这个主要应该是由于pi是Matlab内部定义的常数。8、哈达玛(Hadamard)矩阵是由+1和-1元素构成的正交方阵;
3、9、希尔伯特矩阵Hilbert:hilb(n),其元素为H(i,j)=1/(i+j-1)。10、Pascal矩阵,magic魔方矩阵,Hankel方阵,托普利兹矩阵toeplitz,Wilkinson特征值测试阵。由于自己数学功底不是很强,这些矩阵还不是很理解,以后用到的时候再慢慢了解吧。11、矩阵的乘法:A*B:两个矩阵相乘;A.*B:矩阵对应元素相乘;dot(A,B):矩阵的点成;cross(A,B):矩阵的叉乘;conv:矩阵的卷积;kron(A,B):矩阵的张量积,这个相当于用A中每个元素乘以矩阵B,所以这个矩阵还是蛮大的。12、关于集合的一些函数: 求两个函数的交集 c=inters
4、ect(a,b),则c= ab; 求两个函数的并集 c=union(a,b),则c= ab; 检测集合中的元素 d=ismember(a,S),当a属于集合S的时候返回值d=1; 两个集合的差 d=setdiff(a,b),表示d=a-b; 去集合的单值元素 unique(a)异或:两个矩阵交集的非 c = setxor(a,b)。13、矩阵的除法:Matlab提供了两种除法运算:左除()和右除(/)。一般情况下,X=AB是方程A*X =B的解,而X=B/A是方程X*A=B的解;14、方阵的行列式: d=det(A). determinant;15、矩阵的逆:Y=inv(X) %求方阵X的逆矩
5、阵。若X为奇异阵或近似奇异阵,将给出警告信息;当矩阵为奇异矩阵的时候,使用矩阵的伪逆命令:Y=pinv(X),可以在某种程度上代替矩阵的逆。则若X是非奇异矩阵,inv(X)=pinv(X);16、矩阵的迹:Y=trace(X) %方阵X的对角线元素之和;17、矩阵和向量的范数:norm ,n=norm(X).默认为二范数,n=norm(X).自己可以设定如: n=norm(X,1)表示一范数, n=norm(X,inf)表示无穷范数;18、矩阵的条件数:d=cond(X).表示X的2-范数的条件数,即X的最大奇异值和最小奇异值的商;19、矩阵的秩:d=rank(A);20、矩阵对角线元素的提取
6、:v=diag(A),同时,也可以进行设定v=diag(A,k):k=0,表示抽取主对角线元素; k0,表示抽取上方对角线元素; k0,表示抽取下方对角线元素;21、上下三角阵的提取:tril(A)提取矩阵A的下三角阵,triu(A)提取矩阵A的上三角阵。22、矩阵的变维:通常有两种方法实现:“:”和“reshape”命令。前者主要是针对已知两个矩阵的操作,后者主要是对一个矩阵的操作;矩阵的旋转:B=rot90(A):将矩阵A旋转900;矩阵的翻转:fliplr,矩阵的左右翻转;flipud,矩阵的上下翻转。23、复制和平铺矩阵:B=repmat(A,m,n),将矩阵A复制m*n块得到矩阵B;
7、24、矩阵的比较:矩阵的比较关系是针对于两个矩阵对应元素的,所以在使用关系运算时,首先应该保证两个矩阵的维数一致或其中一个矩阵为标量。关系运算是对两个矩阵的对应运算进行比较,若关系满足,则将结果矩阵中该位置元素置为1,否则置0;25、关于矩阵取整:floor(A),将A的元素负无穷取整;ceil(A),将A的元素按正无穷方向取整;fix(A),将A的元素按离0近的方向取整;round(A),将A的元素按四舍五入取整。26、矩阵元素的余数:rem(A,x);27、矩阵的逻辑运算:逻辑与A&B,逻辑或A|B,逻辑非A,异或xor;28、符号矩阵sym。将数值矩阵转化为符号矩阵B=sym(A);另外
8、可以对矩阵进行索引和修改操作,B(m,n)=(l,k);29、因式分解factor(a)。注:因式分解的定义,把一个多项式化为几个最简整式的积的形式。在MATLAB中建立M文件可以直接使用命令edit;30、符号矩阵(函数)的展开:expand命令Eg:syms x;y=(x+2)4;z=expand(y)则:z =x4 + 8*x3 + 24*x2 + 32*x + 16;collect:合并同类项;31、符号矩阵的简化:simple或simplify,pretty命令可以使的结果更好看一些;32、矩阵的分解:cholesky分解R,p=chol(A), 如果X为n阶对称正定矩阵,则存在一个
9、实的非奇异上三角阵R,满足R*R = X, 若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵;33、LU分解,又称矩阵的三角分解,L,U=lu(A):它的目的是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU;广义上也有L,U,P=lu(A),满足LU=PA;34、QR分解:Q,R=qr(A),将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积;函数qrdelete: Q,R=qrdelete(Q,R,j):返回将矩阵A的第j列移去后的新矩阵的qr分解; Q,R=qrinsert(Q,R,j,x):在矩阵A中第j列插入向量x后的新矩阵进行qr分
10、解。若j大于A的列数,表示在A的最后插入列x;35、schur分解: T = schur(A):产生schur矩阵T,即T的主对角线元素为特征值的三角阵;也可使用广义命令 U,T = schur(A):返回正交矩阵U和schur矩阵T,满足A = U*T*U; 函数rsf2csf:将实Schur分解转化成复Schur分解;36、矩阵的特征值分解:d=eig(A);或者V,D=eig(A) 计算A的特征值对角阵D和特征向量V,使AV=VD成立;37、矩阵的奇异值分解:U,S,V=svd(X), 返回一个与X同大小的对角矩阵S,两个酉矩阵U和V,且满足= U*S*V。若A为mn阵,则U为mm阵,V
11、为nn阵。奇异值在S的对角线上,非负且按降序排列; 广义奇异值分解:U,V,X,C,S = gsvd(A,B),返回酉矩阵U和V、一个普通方阵X、非负对角矩阵C和S,满足A = U*C*X,B = V*S*X,C*C + S*S = I (I为单位矩阵);A和B的列数必须相同,行数可以不同;38、特征值问题的qz分解。AA,BB,Q,Z,V = qz(A,B) ,A、B为方阵,产生上三角阵AA和BB,正交矩阵Q、Z或其列变换形式,V为特征向量阵。且满足:Q*A*Z= AA 和Q*B*Z = BB;39、海森伯格(Hessenberg)矩阵:矩阵H的第一子对角线下元素都是0 ,函数格式H=hes
12、s(A);40、线性方程组的解:直接法:AX=B的解为X=AB,XA=B的解为X=B/A;用函数rref进行求解C=A,B,C为系数矩阵A和常数构成的增广矩阵,当使用rref命令(求解最简行解)之后最后一列就是所求的解;41、矩阵的LU分解,又称为Gauss分解,将任意方阵分解为下三角阵和上三角阵的乘积。即A=L*U,L*U*X=B,这样可以提高运算速度,命令为L,U=lu(A);Cholesky分解:若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即:A=R*R,其中R为上三角阵,命令为R=chol(A);对于任何长方矩阵A,都可以进行QR分解,其中Q为正
13、交矩阵,R为上三角矩阵的初等变换形式,即:A=QR;42、null求解零空间,即满足AX=0,实际上是求解出解空间的一组基(基础解系),注:format rat指定有理式格式输出,B=null(A, r);43、让矩阵输出的结果更漂亮一些:pretty(X),在此举一个综合一点的例子,求A*X=0的通解A=1 2 2 1;2 1 -2 -2;1 -1 -4 -3;format rat%指定有理数格式输出;B=null(A,r);syms k1 k2%定义符号变量;X=k1*B(:,1)+k2*B(:,2);pretty(X);44、求解非齐次线性方程组的通解,首先需要先判断方程组是否有解,若有
14、解,再去求通解。因此,步骤为:第一步:判断AX=b是否有解,(注:判断系数矩阵A的秩是否和其增广矩阵的秩是否相等,若相等,方程有解R(A)=R(B)n,有无穷解,=n有唯一解,R(A)R(B)则无解。)若有解则进行第二步;第二步:求AX=b的一个特解;第三步:求AX=0的通解;第四步:AX=b的通解为 AX=0的通解加上AX=b的一个特解;45、平衡矩阵B,T,B=balance(A),满足B=T-1AT;46、复对角矩阵转化为实对角矩阵:cdf2rdf,将复对角阵d变为实对角阵D,在对角线上,用22实数块代替共轭复数对;47、正交基orth,B=orth(A):将矩阵A正交规范化;B*B=e
15、ye(rank(A);48、求行阶梯矩阵及向量组的基:R,jb=rref(A),R表示将矩阵A化成行最简形,jb是一个向量,其含义为:r=length(jb)为A的秩;A(:, jb)为A的列向量基;jb中元素表示基向量所在的列;49、稀疏矩阵的创建S=sparse(A);将矩阵A转化为稀疏矩阵形式,即由A的非零元素和下标构成稀疏矩阵S,sparse是用来产生稀疏矩阵的,详细一点的S = sparse(i,j,s,m,n),利用向量i,j,s来产生一个m*n的矩阵,产生方法为S(i(k),j(k) =s(k);full函数,将稀疏矩阵转换为满矩阵(相当于sparse函数的逆)A=full(S)
16、;另外,find命令用于查找稀疏矩阵中的非零元素,i,j,v = find(X):检索X中非零元素的行标i和列标j以及对应的元素值v;50、基本稀疏矩阵,带状(对角)稀疏矩阵:B,d = spdiags(A),从矩阵A中提取所有非零对角元素,这些元素保存在矩阵B中,向量d表示非零元素的对角线位置;单位稀疏矩阵:speye(m,n),生成m*n的单位对角矩阵;稀疏均匀分布随即矩阵R=sprand(S):生成与S具有相同稀疏结构的均匀分布随机矩阵;稀疏正态分布随机矩阵R=sprandn(S);稀疏对称随机矩阵sprandsym, R = sprandsym(S),生成稀疏对称随机矩阵,其下三角和对
17、角线与S具有相同的结构,其元素服从均值为0、方差为1的标准正态分布;51、稀疏矩阵的运算:稀疏矩阵非零元素的个数n=nnz(x);稀疏矩阵的非零元素s = nonzeros(A),返回矩阵A中非零元素按列顺序构成的列向量;稀疏矩阵非零元素的内存分配n = nzmax(S),返回非零元素分配的内存总数n;、稀疏矩阵的存贮空间:S=spalloc(m,n,nzmax),产生一个mn阶只有nzmax个非零元素的稀疏矩阵,这样可以有效减少存贮空间和提高运算速度;稀疏矩阵的非零元素应用:f = spfun(function,S),用S中非零元素对函数function求值,如果function不是对稀疏矩
18、阵定义的,同样可以求值;:把稀疏矩阵的非零元素全换为1,R=spones(S),将稀疏矩阵S中的非零元素全换为1;52、画稀疏矩阵非零元素的分布图形:spy函数,具体spy(S,LineSpec,markersize)其中LineSpec指定绘图标记和颜色,markersize为整数,指定点阵大小;53、矩阵变换:列近似最小度排序A=colamd(S)返回稀疏矩阵S的列的近似最小度排序向量A;稀疏对称最小度排列,p = symmmd(S),返回S的对称最小度排列向量p,S为对称正定矩阵;54、稀疏矩阵的近似欧几里得范数和条件数:c = condest(A),计算方阵A的1-范数中条件数的下界值
19、c;nrm = normest(S),返回矩阵S的2-范数的估计值,相对误差为10-6;稀疏矩阵的不完全LU分解: L,U = luinc(X,0);X为稀疏方阵;L为下三角矩阵的置换形式;U为上三角矩阵;0是一种分解标准。第二章数值计算与数据分析55、基本数学函数:正弦函数Y=sin(X),双曲正弦函数Y=sinh(X), 反正弦函数Y=asin(X),反双曲正弦函数Y=asinh(X);余弦函数Y=cos(X),双曲余弦函数Y=cosh(X),反余弦函数Y=cos(X),反双曲余弦函数Y=acosh(X);正切函数Y=tan(X),双曲正切函数Y=谈话(X),反正切函数Y=atan(X),
20、反双曲正切函数Y=atanh(X);余切函数Y=cot(X),双曲余切函数Y=coth(X),反余切函数Y=acot(X),反双曲余切函数Y=acoth(X),另外还有正割sec(1/cos)和余割csc(1/sin),PS:四象限的反正切函数P=atan2(Y,X),返回一与参量X和Y同型的、与X和Y元素的实数部分对应的、元素对元素的四象限的反正切函数阵列P,其中X和Y的虚数部分将忽略。阵列P中的元素分布在闭区间-pi,pi上。特定的象限将取决于sign(Y)与sign(X);56、取余rem或mod,p=rem(X,Y);exp:以e为底的指数函数y=exp(x),expm(x):求矩阵的
21、以e为底的指数函数,Y=expm(X);log以e为底的对数, y=log(x), log2(x)、long10(X)分别是以2和10为底的对数。57、sort命令:把输入参量中的元素按从小到大的方向重新排列;58、abs:数值的绝对值或复数的幅值;复数的共轭conj,复数的虚部imag,复数的实部real,复数的相角:P=angle(Z);59、用实数和虚数部分创建复数:c=complex(a,b);带符号的除法余数mod,M=mod(X,Y),若运算数x与y有相同的符号,则mod(X,Y)等于rem(X,Y)。总之,对于整数x,y,有:mod(-x,y) = rem(-x,y)+y;60、
22、二项式系数或所有的组合数,C=nchoosek(n,k) 参量n,k为非负整数,返回n! / ( (n-k)! k!),即一次从n个物体中取出k个的组合数,相当于=n! / ( (n-k)! k!)命令,另外阶乘的函数为factorial;61、yi = interp1(x,Y,xi,method) ,用指定的算法计算插值,主要包括nearest 最近邻点插值,linear线性插值,spline 三次样条函数插值,pchip 分段三次Hermite插值,cubic:双三次插值;62、rat与rats:有理分式近似。rat对于有连续出现的小数的数值,将会用有理式近似表示它们,函数rats调用函数
23、rat,且返回字符串。rats=format ratPs:inline函数,matlab中定义的一个内置函数,可以直接内嵌在命令行中;63、常微分方程数值解:ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb第三章符号运算64、 定义符号变量:syms a,b,c,d;65、基本运算:合并同类项collect,列空间的基colspace,B = colspace(A)返回矩阵B,其列向量形成由矩阵A的列向量形成的空间的坐标基,其中A可以是符号或数值矩阵。而size(colspace(A),2)等于rank(A)。即由A生成的空间维数等于A的秩;com
24、pose,复合函数的计算,compose(f,g):返回复合函数fg(y),其中f=f(x),g=g(y);66、符号复数的共轭conj(X),real(Z)返回符号复数的实数部分,real(Z)返回符号复数的虚部部分;Y=cosint(X),返回余弦函数的整函数,Ps:欧拉常数,可以通过vpa(eulergamma)获得;67、digits:设置变量的精度;R = double(S),将符号对象S转换为数值对象R;expand ,R=expand(S)对符号表达式S中每个因式的乘积进行展开计算。该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式;符号因式分解:fact
25、or(X),参量x可以是正整数、符号表达式阵列或符号整数阵列。若X为一正整数,则factor(X)返回X的质数分解式。若x为多项式或整数矩阵,则factor(X)分解矩阵的每一元素。若整数阵列中有一元素位数超过16位,用户必须用命令sym生成该元素。68、simple:搜索符号表达式的最简形式,r = simple(S),该命令试图找出符号表达式S的代数上的简单形式,显示任意的能使表达式S长度变短的表达式,且返回其中最短的一个。若S为一矩阵,则结果为整个矩阵的最短形式,而非是每一个元素的最简形式。若没有输出参量r,则该命令将显示所有可能使用的算法与表达式,同时返回最短的一个;69、符号矩阵的维
26、数:size,d = size(A)若A为m*n阶的符号矩阵,则输出结果d=m,n;代数方程的符号解析解solve,g = solve(eq);70、特征多项式:p=poly(A); poly2sym将多项式系数向量转化为带符号变量的多项式,记得pretty可以对结果进行简化得到我们熟知的形式;71、r=findsym(S):从一符号表达式中或矩阵中找出符号变量;g=finverse(f),返回函数f 的反函数。其中f为单值的一元数学函数,如f=f(x)。若f的反函数存在,设为g,则有gf(x) = x;72、horner:套嵌形式的多项式表达式;r=symsum(S,a,b),符号表达式求和
27、,首先定义符号函数,然后对从a项到b项求和操作;广义超几何函数函数 hypergeom;73、limit极限,limit(F):用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x0时;limit(F,x,a),计算符号表达式F=F(x)的极限值,当xa时;74、diff(S,v,n):对表达式S中指定的符号变量v计算S的n阶导数;75、R = int(S,v,a,b):对表达式s中指定的符号变量v计算从a到b的定积分;dslove,常微分方程的符号解,r=dsolve(eq1,eq2,cond1,cond2,v),ps:若没有指定变量v,则缺省变量为t;76、画符号
28、函数的等高线图,ezcontour(f),画出二元符号函数f=f(x,y)的等高线图,函数f将被显示于缺省的平面区域-2x2,-2y2内,也可以使用ezcontour(f,domain),在指定的定义域domain内画出二元函数f(x,y),参量domain可以是四维向量xmin,xmax,ymin,ymax或二维向量min,max(其中显示区域为:minxmax,minymax),或者ezcontour(,n),用指定n*n个栅格点(对定义域的一种划分),在缺省(若没有指定)的区域内画出函数f的图形。n的缺省值为60;用不同颜色填充的等高线图ezcontourf(f);77、在matlab中
29、特别在使用句柄函数的时候,记得在前面加上“.”,代表元素运算,当不加点的时候表示矩阵或者数组相乘,eg:A.*B代表矩阵A、B对应元素相乘而A*B则代表A和B矩阵的相乘;78、符号函数的三维网格图ezmesh(f),画二元数学符号函数f=f(x,y)的网格图,ezmeshc,同时画出曲面网格图与等高线图;79、 画符号函数的图形ezplot(f),对于显式函数f=f(x),在缺省的范围-x上画函数f(x);对于隐函数f=f(x,y),在缺省的平面区域-2x2,-2y2上画函数f(x,y)的图形;80、三维参量曲线图,ezplot3(x,y,z),在缺省的范围0t2内画空间参数形式的曲线x=x(
30、t)、y=y(t)与z=z(t)的图形;ezplot3(,animate),以动画形式画出空间三维曲线;81、画极坐标图形,格式 ezpolar(f),在缺省的范围0theta2内画极坐标函数rho=f(theta)的图形。且将函数关系式显示于图形下方。ezpolar(f,a,b) 在指定的范围athetab内画极坐标函数rho=f(theta)的图形。且将函数关系式显示于图形下方;82、三维带颜色的曲面图,ezsurf(f),画出二元数学符号函数z=f(x,y)的曲面图形,同样的使用ezsurfc命令可同时画出曲面图与等高线图;83、Fourier积分变换,格式 F = fourier(f),对符号单值函数f中的缺省变量x(由命令findsym确定)计算Fourier变换形式。缺省的输出结果F是变量w的函数;运行了一个例子:syms x w u vf = sin(x)*exp(-x2); F1 = fourier(f),结果却并不是期望得到的:transform:fourier(sin(x)/exp(x2), x, -w),这时候使用命令simplify(fourier(sin(x)/exp(x2), x, -w))才可以得到正确的结果。84、85、
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1