MATLAB知识点.doc

上传人:jian****018 文档编号:8802404 上传时间:2020-04-01 格式:DOC 页数:20 大小:199KB
返回 下载 相关 举报
MATLAB知识点.doc_第1页
第1页 / 共20页
MATLAB知识点.doc_第2页
第2页 / 共20页
MATLAB知识点.doc_第3页
第3页 / 共20页
点击查看更多>>
资源描述
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.5000D = -1.4142 0 0 0 -0.0000 0 0 0 1.41422,求线性方程的解这是一个非齐次方程方程,对于线性代数来讲,很难求解,但是利用MATLAB来求A=1 2 3;3 -5 4;7 8 9; 1B=14 5 50; 2 x=AB 3 B=14;5;50; 4这4个语句的区别,特别是2.3两句的区别,2语句中B表示的是1行3列,但是4语句中的表示的3行1列。同时,X=AB很X=A/B也是很有能区别的,具体的区别如下:X=AB表示的是A*X=B的解X=A/B表示的是X*A=B的解,在这里,具体解释如下;A*X=B,在线性代数中,X=A(-1)B ,所以X=AB。X*A=B的解为X=BA(-1),就是X=B/A。3,一元方程求根这个在计算中是个难题,一元多次方程式很难求解的,对于纯粹的手工计算来说,所以有MATLAB比较方便,具体语句如下: P=0.69552 0.436 0.668 1.35; X=roots(P)X = 0.2817 + 1.2456i 0.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(x2) (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 4 6 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 42 66 81 96 102 126 150 a.*cans = 1 4 9 16 25 3649 64 817,超定系统首先要了解什么是超定系统,超定系统是对于解决多元方程而言的,同时方程的个数要多于自变量的个数,这个就是超定方程x1+2x2=1 2x1+3x2=2 3x1+4x2=3如何去解这个方程,具体的语句如下: a=1 2;2 3;3 4;b=1;2;3; abans = 1.0000 0.0000有超定方程,那么必然就有欠定方程,欠定方程的定义是,方程的个数小于自变量的个数。如下;x1+2x2+3x3=1 2x1+3x2+4x3=2a=1 2 3;2 3 4; b=1;2;abans = 1 0 08,矩阵的幂运算a=1 2 3;2 3 4;C=a1.5;和普通计算的区别不是很大9,矩阵的转置分为共轭转置和非共轭转置两种情况,共轭转置用语句“a”,非共轭转置用“a.”.有个在前面用过的逗号运算符. a=1+2i 2+4i; a(共轭转置,不仅进行了转置,还进行了共轭的处理)ans = 1.0000 - 2.0000i 2.0000 - 4.0000i a.ans =1.0000 + 2.0000i 2.0000 + 4.0000i10,矩阵的关系和逻辑运算 a=0 -1 2; b=-3 1 2; a a abans = 1 0 0 a=bans = 1 0 1 a=bans =0 0 1 a=bans = 1 1 0也就是比较两个矩阵的关系,当矩阵的关系是真的时候,则输出为1。当矩阵的关系是假的时候,就会输出为0。当然,还存在或与非3种逻辑运算。11,矩阵的函数运算具体的使用函数如下:inv矩阵求逆det行列式的值eig矩阵的特征值和特征矢量diag对角矩阵trace矩阵的迹rank矩阵的秩pinv矩阵的伪逆norm矩阵或矢量的范数求解方程的解法,主要是利用rank函数,rank函数是求解这个矩阵的秩的。来判断这个方程是不是有一个解,当系数矩阵和增广矩阵有相同的秩的时候,只有一个解,但是当他们的秩是不同的时候,要根据法则来判断,具体的事例如下:c = 5 2 -9 -18 -9 -2 2 -7 6 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的对角元素为正时,这种分解时唯一的,称为Cholesky分解。使用chol(a)就可以了。E,QR分解(也称为正交分解)实矩阵A可以写成 的形式,其中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:12a = 1 2 3 4 5 6 7 8 9 10 11 12reshape(a,3,4)ans = 1 4 7 10 2 5 8 11 3 6 9 1215,矩阵的翻转对矩阵进行左右、上下翻转、旋转等操作。 fliplr:左右翻转 flpdim:第n维翻转 flipud:上下翻转 rot90:逆时针旋转9016,矩阵的抽取 函数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进行求导数。具体的语句如下:Syms x n %定义两个自变量字符f=xn %定义函数f的定义式Diff(f,x) %对f中x求导数ans =n*x(n - 1)diff(f,n) %定义对f中的n 求导数ans = xn*log(x)20,关于多项式的乘法和除法具体的语句如下:a=1 -5 3 -4 2; b=1 2 -5 3; conv(a,b) %乘法语句conv()ans = 1 -3 -12 30 -36 33 -22 6 deconv(ans,b) %除法语句deconv()ans = 1 -5 3 -4 221,因式分解函数是factor(F),F表示的是函数。具体的例子如下:sym x; f=x9-1; factor(f) ans = x - 1, x2 + x + 1, x6 + x3 + 122,算式展开利用expand函数,具体的例子如下: syms x y f=(x+1)5; expand(f)ans =x5 + 5*x4 + 10*x3 + 10*x2 + 5*x + 1 f=sin(x+y); expand(f)ans =cos(x)*sin(y) + cos(y)*sin(x) 但是在这里要注意的关于sym和syms 函数的区别,sym适合定义一个符号,但是syms适合定义多个运算符号。23,合并同类项Collect 函数,具体的语句如下: syms x t f=x*x*(x-6)+12*t; expand(f)ans =t*x3 - 6*t*x2 + 12*t*x collect(f) ans =t*x3 - 6*t*x2 + 12*t*x factor(f)ans = t, x, x2 - 6*x + 1224,分式的通分syms x y f=x/y+y/x; numden(f)ans =x2 + y2 n,d=numden(f) n = x2 + y2 d =x*y25,讲多项式写成嵌套的形式sym x ans =x f=x3+6x2+11x-6; f=x3+6x2+11x-6; 错误: 不应为 MATLAB 表达式。是不是想输入: f = x3 + 6*x2 + 11*x - 6; horner(f)ans =x*(x*(x + 6) + 11) - 6 26,替换函数subs(函数式,要替换的字符,带入的字符)具体的语句如下:Syms a bSubs(a+4*b,a,3)Ans=3+4*b还有另外一种写法:就是不用syms 函数来定义字符Subs(a+4*b,a,3)Ans=3+4*b我们在没有使用syms函数式,所以a,b 就必须要用这个符号要定义。27,精度的控制可控精度运算:函数vpa vpa(S),显示符号表达式S在当前精度D下的值。D是使用digits函数设置的数值精度。 vpa(S,D),显示符号表达式S在精度D下的值,D不是当前的精度值,而是临时使用digits函数设置为D位精度。 设定所用数值的精度:函数digits digits(D),设置数值的精度为D位。 digits,在命令窗口显示当前设定的数值精度。具体的语句如下:a=1/4,exp(1);log(3),7/3a = 0.2500 2.7183 1.0986 2.3333 vpa(a,10) ans = 0.25, 2.718281828 1.098612289, 2.333333333 a=sym(1/4,exp(1);log(3),7/3)警告: Support of strings that are not valid variable names or define a number will be removed in a future release. To create symbolicexpressions, first create symbolic variables and then use operations on them. In symconvertExpression (line 1536) In symconvertChar (line 1441) In symtomupad (line 1198) In sym (line 177) a = 1/4, exp(1) log(3), 7/3 vpa(a,10) ans = 0.25, 2.718281828 1.098612289, 2.333333333 在这里,有两种写法,sym和没有sym,一个是有精度的,一个是没有精度的。可以从上面的例子可以看出来的。没有sym,系统会自动把按照精度来写。下面来谈谈vpa 和digits的区别;首先,这两个函数的表达形式,Vpa(a,10)或者vpa(a),这是临时定义的。我们会定义一个数据的精度digits(10),这个digits所定义的数据精度是对所有的函数有用的,但是,当出现vpa(10)时,精度会临时的变化,会遵循这个临时的vpa()所带的精度。但是在经过vpa 语句过后,再用vpa(a),这个a 表示的是算式,这个精度是前面digits()定义的精度。28,符号微积分
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!