资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,*,数学建模,Matlab,数值运算,和符号运算,Matlab,数值运算,数与算术表达式,Matlab,数值运算,Matlab,中的数默认是,双精度实数,,表示方法,同,C,语言,3,-9,0.4,1.603e-12,3.23e+20,复数的输入,z=3+4i,(4,与,i,之间不能有空格),z=3+4*i,复数作为矩阵元素输入时,加号两边不能有空格,!,向量与矩阵的生成,向量与矩阵运算,向量的生成,直接输入:,a=1,2,3,4,冒号,运,算符,a=1:4,=,a=1,2,3,4,b=0:pi/3:pi,=,b=0,1.0472,2.0944,3.1416,c=6:-2:0,=,c=6,4,2,0,例,:,从矩阵中抽取行或列,数学运算符,+,加法,Matlab,数值运算,-,减法,*,乘法,和/除法左除和右除,幂运算,向量与矩阵的生成续,向量与矩阵运算,矩阵的生成,直接输入:,A,=1,2,3;4,5,6;7,8,9,由向量生成,由函数生成,通过编写,m,文件生成,例,:,x=1,2,3;y=2,3,4;,A=x,y,B=x;y,常见矩阵生成函数,zeros(m,n),生成一个,m,行,n,列的零矩阵,,m=n,时可简写为,zeros(,n,),ones(m,n),生成一个,m,行,n,列的元素全为 1 的矩阵,m,=,n,时可写为,ones(,n,),eye(m,n),生成一个主对角线全为 1 的,m,行,n,列矩阵,m=n,时可简写为,eye(,n,),,即为,n,维单位矩阵,diag(X),若,X,是矩阵,则,diag(X),为,X,的主对角线向量,若,X,是向量,,diag(X),产生以,X,为主对角线的对角矩阵,tril(A),提取一个矩阵的下三角部分,triu(A),提取一个矩阵的上三角部分,rand(m,n),产生 01 间均匀分布的随机矩阵,m,=,n,时简写为,rand(,n,),randn(m,n),产生均值为0,方差为1的标准正态分布随机矩阵,m,=,n,时简写为,randn(,n,),矩阵操作,提取矩阵的部分元素:冒号运算符,A(:),A,的所有元素,A(:,:),二维矩阵,A,的所有元素,A(:,k),A,的第,k,列,,A(k,:),A,的第,k,行,A(k:m),A,的第,k,到第,m,个元素,A(:,k:m),A,的第,k,到第,m,列组成的子矩阵,A(:),与,A(:,:),的区别,?,如何获得由,A,的第一、三行和第一、二列组成的子矩阵?,自己动手,矩阵操作,矩阵的转置与共轭转置,共轭转置,.,转置,矩阵元素不取共轭,例,:,A=1 2;2i 3i,B=A,C=A.,点与单引号之间不能有空格,!,矩阵根本运算,矩阵的加减:对应重量进展运算,要求参与加减运算的矩阵具有 一样的维数,例,:,A=1 2 3;4 5 6;B=3 2 1;6 5 4,C=A+B;D=A-B;,矩阵的一般乘法,要求参与运算的矩阵满足线性代数中矩阵相乘的原则,例,:,A=1 2 3;4 5 6;B=2 1;3 4;,C=A*B,矩阵根本运算,矩阵的,除法,:,/,、,右除和左除,假设 A 可逆方阵,则,AB,A,的逆左乘,B,inv(A)*B,B/A,A,的逆右乘,B,B*inv(A),X=AB,A*X=B,X=B/A,X*A=B,通常,矩阵除法可以理解为,当 A 和 B 行数相等时即可进展左除,当 A 和 B 列数相等时即可进展右除,矩阵的数组运算,数组运算:对应元素进展运算,点与算术运算符之间不能有空格!,数组运算包括:,点乘,、,点除,、,点幂,相应的数组运算符为:,“.*”,,,“./”,,,“.”,和,“,.”,参与运算的对象必需具有一样的外形!,例,:,A=1 2 3;4 5 6;B=3 2 1;6 5 4;,C=A.*B;D=A./B;E=A.B;F=A.B;,函数取值,设,x,是变量,,f,是一个函数,当,x=a,是标量时,,f,(x)=f(a),也是一个标量,当,x=a,b,c,是向量时,,f,(x)=f(a),f(b),f(c),函数作用在矩阵上的取值,假设 A 是矩阵,则 f(A)是一个与 A 同外形的矩阵,f 作用在 x 的每个重量上,数与数组的点幂,x.y,=14,25,36=1,32,729,x.2,=12,22,32=1,4,9,例,:,x=1 2 3;y=4 5 6;,Matlab中的全部,标点符号必需在,英文状态下输入,Matlab,符号运算,Matlab,符号运算介绍,Matlab 符号运算是通过符号数学工具箱Symbolic Math Toolbox来实现的。Matlab 符号数学工具箱是建立在功能强大的 Maple 软件的根底上的,当 Matlab 进展符号运算时,它就恳求 Maple 软件去计算并将结果返回给 Matlab。,Matlab 的符号数学工具箱可以完成几乎全部的符号运算功能。主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号作图,符号代数方程求解,符号微分方程求解等。此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。,Matlab,符号运算特点,计算以推理方式进展,因此不受计算误差累积所带来的困扰。,符号计算指令的调用比较简洁,与数学教科书上的公式相近。,符号计算可以给出完全正确的封闭解,或任意精度的数值解封闭解不存在时。,符号计算所需的运行时间相对较长。,Matlab,符号运算举例,求一元二次方程,ax,2,+,bx,+,c,=0,的根,solve(”a*x2+b*x+c”),求的根,f,(,x,)=(,cos,x,),2,的一次导数,x=sym(”x”);,diff(cos(x)2),计算,f,(,x,)=,x,2,在区间,a,b,上的定积分,syms,a b x;,int,(x2,a,b),在进展符号运算时,必需先定义根本的符号对象,可以是符号常量、符号变量、符号表达式等。符号对象是一种数据构造。,符号对象与符号表达式,含有符号对象的表达式称为符号表达式,Matlab 在内部把符号表达式表示成字符串,以与数字变量或运算相区分。,符号矩阵,/,数组:元素为符号表达式的矩阵,/,数组。,sym,函数用来建立,单个,符号量,一般调用格式为:,符号对象的建立:,sym,和,syms,符号对象,的建立,例:,a=sym,(a),符号变量,=,sym,(A,),参数,A,可以是一个数或数值矩阵,也可以是字符串,a,是符号变量,b,是符号常量,b=sym,(1/3),c,是符号矩阵,c=sym(”1 ab;c d”),符号对象的建立:,sym,和,syms,符号对象,的建立,syms,命令用来建立,多个,符号量,一般调用格式为:,syms,符号变量,1,符号变量,2.,符号变量,n,例:,syms,a b c,a=sym(”a”);,b=sym(”b”);,c=sym(”c”);,符号表达式的建立:,例:,建立符号表达式通常有以下2种方法:,(1),用,sym,函数直接建立符号表达式。,(2),使用已经定义的符号变量组成符号表达式。,y=sym(”sin(x)+cos(x)”),x=sym(”x”);,y=sin(x)+cos(x),符号,表达式,的建立,Matlab 符号运算承受的运算符和根本函数,在外形、名称和使用上,都与数值计算中的运算符和根本函数完全一样,符号对象的根本运算,基本运算符,普通运算:,+,、,-,、,*,、,、,/,、,数组运算:,.*,、,.,、,./,、,.,矩阵转置:,、,.,例:,X=,sym(x11,x12;x21,x22;x31,x32);,Y=,sym(y11,y12,y13;y21,y22,y23);,Z1=X*Y,;,Z2=X,.*Y;,符号对象的根本运算,sin、cos、tan、cot、sec、csc、,asin、acos、atan、acot、asec、acsc、,exp、,log,、log2、log10、sqrt,abs、conj、real、imag,rank、det、inv、eig、lu、qr、svd,diag,、,triu,、,tril,、,expm,三角函数与反三角函数、,指数函数、对数函数等,根本函数,用,Matlab,函数解初值问题,用,Maltab,函数,解初值问题,求解析解:,dsolve,求数值解:,ode45、ode23、ode113、ode23t,ode15s、ode23s、ode23tb,dsolve,使用格式,y=dsolve(”eq1”,”eq2”,.,”cond1”,”cond2”,.,”v”),求微分方程的,解析解,,其中,y,为输出,,eq1,、,eq2,、,.,为微分方程,,cond1,、,cond2,、,.,为初值条件,,v,为自变量。,例1:求微分方程 的通解,并加以验证。,y=dsolve(”Dy+2*x*y=x*exp(-x2)”,”x”),dsolve,的使用,几点说明,y=dsolve(”eq1”,”eq2”,.,”cond1”,”cond2”,.,”v”),例1:y=dsolve(”Dy+2*x*y=x*exp(-x2)”,”x”),1、,微分方程中用,D,表示对,自变量,的导数,如:,Dy y,;,D2y y,;,D3y y,2、假设省略初值条件,则表示求通解;,3、假设省略自变量,则默认自变量为 t;,dsolve(”Dy=2*x”,”x”);dy/dx=2x,dsolve(”Dy=2*x”);dy/dt=2x,4、假设找不到解析解,则返回其积分形式。,dsolve,举例,例:求微分方程 在初值条件 下的特解,并画出解函数的图形。,y=dsolve(”x*Dy+y-exp(x)=0”,”y(1)=2*exp(1)”,”x”),ezplot(y);,dsolve 举例例3,例3:,求微分方程组,在初值条件,下的特解,并画出解函数的图形。,x,y=dsolve(”Dx+5*x+y=exp(t)”,”Dy-x-3*y=0”,.,”x(0)=1”,”y(0)=0”,”t”),ezplot(x,y,0,1.3);,注:解微分方程组时,假设所给的输出个数与方程个数一样,则方程组的解按词典挨次输出;假设只给一个输出,则输出的是一个包含解的构造structure类型的数据。,
展开阅读全文