当前位置:文档之家› MATLAB学习知识重点

MATLAB学习知识重点

1,计算矩阵的特征值和特征向量【V,D 】=eig (A ) 其中A 指的是矩阵 V 指的是特征向量组成的矩阵 D 指的是特征值所组成的矩阵 A=[0 1 0;1 0 1;0 1 0]; >> [V,D]=eig(A) V =0.5000 -0.7071 0.5000 -0.7071 0.0000 0.7071 0.5000 0.7071 0.5000 D =-1.4142 0 0 0 -0.0000 0 0 0 1.41422,求线性方程的解1231231232314354578950x x x x x x x x x ++=-+=++=这是一个非齐次方程方程,对于线性代数来讲,很难求解,但是利用MATLAB 来求A=[1 2 3;3 -5 4;7 8 9]; 1 B=[14 5 50]; 2 x=A\B 3 B=[14;5;50]; 4这4个语句的区别,特别是2.3两句的区别,2语句中B 表示的是1行3列,但是4语句中的表示的3行1列。

同时,X=A\B 很X=A/B 也是很有能区别的,具体的区别如下: X=A\B 表示的是A*X=B 的解X=A/B 表示的是X*A=B 的解,在这里,具体解释如下;A*X=B ,在线性代数中,X=A^(-1)B ,所以X=A\B。

X*A=B的解为X=BA^(-1),就是X=B/A。

3,一元方程求根这个在计算中是个难题,一元多次方程式很难求解的,对于纯粹的手工计算来说,所以有MATLAB比较方便,具体语句如下:()231.350.6680.4360.69552=+++f x x x xP=[0.69552 0.436 0.668 1.35];>> X=roots(P)X =0.2817 + 1.2456i0.2817 - 1.2456i-1.1902 + 0.0000i对于这个方程来说,要注意的是,在构成向量时,一定要从告辞往低次排列,中间缺少次数的,用0代替,求解语句是roots(P)。

4,图形处理功能A, 可以绘制函数图像,具体的语句如下:>> x=linspace(0,6); 这个表示X轴,在0到6内取100个点,这是默认的数值100。

当然还有可以设定数值的方法linspace(0,6,100)表示的是在0到6内取等间隔取100个点。

>> y1=sin(2.*x);>> plot(x,y1)这是绘制函数sin(2X)的图像,在这里要注意的,这个乘号的作用,其中还有一个“点号”。

这是和普通的数学中的乘法不同的地方。

y1=sin(2.*x);y2=sin(x.^2);y3=(sin(x)).^2这是其他的图像,分别是sin2x sin(x^2) (sinx)^2,但是在这3个式中,用MATLAB表达时,总会用到“点号”这个符号,这是要注意的地方。

绘图用plot函数就可以吧。

B,在同一个窗口绘制多个函数的图像,但是并不是在同一个坐标系中绘制。

具体语句如下:例题:用四种方法描述cos(x)*sin(y)图形,分别采用以下的集中函数,分别是surf,mesh ,meshc,waterfall进行函数图像的绘制具体语句如下:x=linspace(-10,10,100);y=linspace(-10,10,100);[x1,y1]=meshgrid(x,y);x是n为向量,y是m维向量,如x1=[1 ;2 ;3];y1=[4; 5]则[x1,y1]就产生一系列坐标点,(1,4),(1,5)(2,4),(2,5)(3,4),(3,5)一般在作3D图像的时候遇到,这是为了把XY变成矩阵,如果不这样做,就会产生报错。

但是在前面做2D图像时就不会用到meshgrid函数,这是在做3D 图像时要注意到的地方。

z=cos(x1).*sin(y1);subplot(2,2,1);surf(x1,y1,z);subplot(2,2,2);mesh(x1,y1,z);subplot(2,2,3);meshc(x1,y1,z);subplot(2,2,4);waterfall(x1,y1,z)当没有用surf,mesh ,meshc, waterfall时,图像时画不出来的。

当我们确实waterfall(x1,y1,z)语句时,绘制的图像具体如下,第四幅图缺失了图像。

5,矩阵的加法具体的语句如下,只要注意不要把矩阵的表示方法搞错了就可以了a=[1,2,3;4,5,6;7,8,9];>> b=[1,1,1;2,2,2;3,3,3];>> a+bans =2 3 46 7 810 11 126,矩阵的乘法在这之前,首先要注意的是A*B和A.*B是不同的计算,所以不能够乱用。

A*B表示的是我们学习的数学中的算法。

但是A.*B 表示的是两个矩阵中相同的位置相乘,是不同的用法,要注意。

具体的算法如下;a=[1,2,3;4,5,6;7,8,9];> c=[1 2 3;4 5 6;7 8 9];a*cans =30 36 4266 81 96102 126 150ans =1 4 916 25 3649 64 817,超定系统首先要了解什么是超定系统,超定系统是对于解决多元方程而言的,同时方程的个数要多于自变量的个数,这个就是超定方程x1+2x2=12x1+3x2=23x1+4x2=3如何去解这个方程,具体的语句如下:a=[1 2;2 3;3 4];b=[1;2;3];>> a\bans =1.00000.0000有超定方程,那么必然就有欠定方程,欠定方程的定义是,方程的个数小于自变量的个数。

如下;x1+2x2+3x3=12x1+3x2+4x3=2a=[1 2 3;2 3 4]; b=[1;2];a\b18,矩阵的幂运算a=[1 2 3;2 3 4];C=a^1.5;和普通计算的区别不是很大9,矩阵的转置分为共轭转置和非共轭转置两种情况,共轭转置用语句“a’”,非共轭转置用“a.’”.有个在前面用过的逗号运算符‘.’.a=[1+2i 2+4i];>> a'(共轭转置,不仅进行了转置,还进行了共轭的处理)ans =1.0000 -2.0000i2.0000 - 4.0000i>> a.'ans =1.0000 + 2.0000i2.0000 + 4.0000i10,矩阵的关系和逻辑运算> a=[0 -1 2];>> b=[-3 1 2];ans =0 1 0>> a<=bans =0 1 1> a>bans = 1 0 0>> a>=bans = 1 0 1>> a==bans =0 0 1>> a~=bans = 1 1 0也就是比较两个矩阵的关系,当矩阵的关系是真的时候,则输出为1。

当矩阵的关系是假的时候,就会输出为0。

当然,还存在或与非3种逻辑运算。

11,矩阵的函数运算具体的使用函数如下:求解方程的解法,主要是利用rank函数,rank函数是求解这个矩阵的秩的。

来判断这个方程是不是有一个解,当系数矩阵和增广矩阵有相同的秩的时候,只有一个解,但是当他们的秩是不同的时候,要根据法则来判断,具体的事例如下:c =5 2 -9 -18-9 -2 2 -76 7 3 29>> rank(c) ans =312,矩阵的分解 A ,特征值得分解利用eig 函数,事例[c,d]=eig(A),这个在前面已经解释过了,参看前面的解释。

B.奇异值分解利用svd 函数,[u,s,v]=svd(A) C,三角分解[l,u]=lu(A),其中l 代表下三角,u 代表上三角 D ,Cholesky (乔里斯基)分解如果A 为n 阶对称正定矩阵,则存在一个非奇异的上三角实矩阵L ,使:L L A T=。

当限定L 的对角元素为正时,这种分解时唯一的,称为Cholesky 分解。

使用chol (a )就可以了。

E ,QR 分解(也称为正交分解) 实矩阵A 可以写成A QR = 的形式,其中Q 为正交阵,R 为上三角阵。

规定若R 的对角元为正数,则分解唯一。

[q,r]=qr(A) 13,矩阵的特殊操作 特殊矩阵:空阵:[ ]——创建空阵。

全0阵:各个元素都为零的矩阵,函数zeros。

a=zeros(M,N),生成M行N列的矩阵。

a=zeros(size(B)),生成与矩阵B维数相同的矩阵。

单位阵:对角线元素为1,其他元素为0的矩阵,函数eye(m,n)。

全1阵:各个元素都为1的矩阵,函数ones。

随机阵:矩阵元素由随机数构成的矩阵。

函数rand、randn。

rand(M,N),生成M行N列随机矩阵,矩阵元素值在区间(0,1)之间。

randn(M,N),生成M行N列随机矩阵,矩阵元素值服从正态分布N(0,1)。

14,变维操作一般先排列,在排行。

a=[1:12]a =1 2 3 4 5 6 7 8 910 11 12reshape(a,3,4)ans =1 4 7 102 5 8 113 6 9 1215,矩阵的翻转对矩阵进行左右、上下翻转、旋转等操作。

fliplr:左右翻转flpdim:第n维翻转flipud:上下翻转rot90:逆时针旋转90°16,矩阵的抽取函数diag实现矩阵对角元素的抽取:c=diag(a,n),c为抽取矩阵a的第n条对角线所创建的元素矢量。

a=diag(c,n),创建对角矩阵a,使矢量c成为a的第n条对角线矢量。

n=0或不指定n时,为主对角线。

函数tril实现下三角矩阵抽取:c=tril(a,n),抽取矩阵a的第n条对角线下面的部分,包括第n条对角线。

函数triu实现上三角矩阵抽取:c=triu(a,n),抽取矩阵a的第n条对角线上面的部分,包括第n条对角线。

17,如何取出矩阵A中的数组b=A(3:5,1:2)表示的是把A矩阵的3到5行,1到2列取出来。

18,如何取出数组A中的某个元素x=rand(1,5)x =0.7577 0.7431 0.3922 0.6555 0.1712>> x(3)ans =0.3922x(1:3)取出数组的元素的前3个ans =0.7577 0.7431 0.3922>> x([1 3 5])取出数组的元素的第1,3,5个ans =0.7577 0.3922 0.171符号运算功能18,创建符号矩阵利用sym(‘[]’),方括号中是符号。

查找函数findsym(A,N),在矩阵A中找到N个与X相近的数字。

19,求导数Diff(f,x)这句话表示的是F函数中,对X进行求导数。

相关主题