MATLAB与科学计算

上传人:hy****d 文档编号:243336903 上传时间:2024-09-21 格式:PPT 页数:165 大小:164.50KB
返回 下载 相关 举报
MATLAB与科学计算_第1页
第1页 / 共165页
MATLAB与科学计算_第2页
第2页 / 共165页
MATLAB与科学计算_第3页
第3页 / 共165页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB与科学计算,1,一、前言,MATLAB:matrix laboratory的缩写,矩阵实验室的意思。一开始它是一种专门用于矩阵数值计算的软件。自MATLAB4.0版本问世以来,该软件成为最具有吸引力,应用最为广泛的科学计算语言。我们这个课就拿MATLAB6.1版本来讲。(6.x版本大同小异),2,学习该软件的必要性:目前,MATLAB软件不仅走入企业、公司和科研机构,而且在高等院校也是从大学生到博士生都必须掌握的一项基本技能,是必不可少的计算工具,。,MATLAB功能:数值计算、符号运算和图形处理。,3,学习它的意义:随着计算机科学和计算软件的发展,数学系学生必须掌握一门好的计算软件。这是我们就业、继续身造或做科研工作所要用到的。是当代大学生必备的一项技能。,4,其它计算软件:MATHEMATIC(数学分析问题的计算);IDL(航天、控制),FOETRAN、BASIC(科学计算)。可以说一个人掌握了一门计算软件,再学习其它计算软件很容易。,5,MATLAB桌面平台:,(1)主窗口:整个大的窗口(其它几个窗口都包括在其中),(2)命令窗口(command window):为运算提示符,表示MATLAB在准备状态。当在提示符后输入一段运算式并按回车键后,就给出计算结果,6,(3)历史窗口(command history):保留命令历史记录,这方便于使用者查询。双击历史窗口中的某一行命令,即可在命令窗口中执行该命令。,7,(4)当前目录窗口(current directory):在当前目录窗口中可显示或改变当前目录,也可以显示当前目录下的文件,并提供搜索功能。,8,(5)发行说明书窗口(launch pad):用来说明用户所拥有的Mathworks公司产品的工具包、演示以及帮助信息。,(6)工作间管理窗口(workspace):显示目前内存中所有的MATLAB变量的变量名、数学结构、字节数及其类型。,9,命令窗口查询帮助:help+函数名,当用户知道函数名字,而不知道其用法时,用help命令可以去了解此函数的用法。,如:help inv,10,MATLAB标点的含义:,(1)分号;区分行以及取消运行显示等。例:,A=1,2;3,4与A=1,2;3,4;的区别。,(2) 逗号,区分列及函数参数分隔符等。例:=1,2;3,4 ,B=1,4,3;3,2,1;4,5,6,11,(3)小括号():指定运算过程的先后次序等。例:,x=0.5;,y=sin(x)/(2+cos(x),z= sin(x)/2+cos(x),(4)方括号 :矩阵定义标志等。见上。,12,(5)续行号:例:,y=sin(x)/(2+cos(x),也可写为,y=sin(x),/(2+cos(x),13,(6)百分号%:注释标记,该行%以后的语句不执行。例,%线性规划程序,%a=0.5;,b=sin(x);%正弦函数,14,(6)等号=:赋值标记。见上。,(7)单引号 :字符串表示符,单引号里面的内容为字符串。单引号一定在英文状态下输入例:,a=xingtai college,(8)冒号:有多种应用功能,学习过程中注意。如:选取矩阵的所有行、列;矩阵定义,15,二、数值计算,变量:MATLAB语言不需要对所使用的变量进行事先声明,也不需要指定其类型,它会自动根据所赋予变量的值或所进行的操作来确定变量的类型。如果变量重新赋值将会用新值代替旧值。如:,a=1,b=0.5,c=a*b,c=3,16,变量命名的规则:,(1)变量名区分大小写;,(2)变量名长度不能超过31位;,(3)必须以字母开头,变量名中可包含字母、数字、下划线,但不能使用标点。,17,常量:MATLAB中有些预定义的变量,这些特殊的变量称为常量。常用到的有:,i,j: 虚数单位;,pi: ;,NaN: 表示不定值,比如0/0;,inf: 无穷大(infinit),比如1/0。,18,算术操作符:,+、-:加,减;可以通用。,*,, , / :分别为矩阵乘,乘方,左除,右除;,.*, . , . , ./ :分别为数组乘,乘方,左除,右除;此时向量的运算不会满足矩阵的运算法则。注意矩阵的加点运算结果。,19,如:,a1=2;,a2=1,2,3,4;,b2=4,3,2,1;,a1+a2,a1-a2,a2-a1,a1*a2,20,a1./a2 %a1/a2是错误的写法,a1.a2,a2-b2,a2+b2,a2.*b2 %a2*b2是错误的写法,a2./b2,b2./a2,a2.b2,21,例 已知水的黏度随温度的变化公式为 =,0,/(1+at+bt,2,)其中,0,=1.78510,-3,,,a=0.03368,b=0.000221,求水在0,20,40,80时的黏度。,程序如下:,22,miu0=1.785e-3;,a=0.03368;,b=0.000221;,t=0:20:80,miu=miu0./(1+a*t+b*t.2),运行后的结果为 :,miu =,0.0018 0.0010 0.0007 0.0005 0.0003,23,字符串:,字符串的约定(1)字符串用单引号括起来;(2)字符串的每个每个字符(包括空格)都是字符数组的一个元素.,例 s=xingtai college,f=sin(x),是字符串(char array),24,向量的生成:,(1)直接输入:如a=1,2,5,3,(2) 利用冒号表达式生成:如:b=2:2:10,此时 可省略,步长为1时,步长可省略。第一个数为首元素的值,第2个数为步长或差值,第三个数为尾元素的限值,不能超过这个值。如b=2;2:11等价于b=2:2:10,25,(3)线性等份向量生成:y=linspace(x1,x2,n),生成n维向量,使得y(1)=x1,y(n)=x2。如:y=linspace(1,100,6)。,向量的基本运算,(1)向量的加减:用+、-。同维向量才可以加、减。相应元素加减,26,(2)向量与数可以加、减。用+、-。数与向量的每个元素进行作用。,(3)向量与数可以相乘。用*。,(4)向量与数可以相除。向量/数,数./向量。,(5)两个向量点积。必须是同维向量。用dot(a,b)。,27,(6)两个向量叉积。cross(a,b),a,b必须有是3维且次序不能颠倒,。,(7)混合积。由以上两个函数实现。dot(a,cross(b,c),矩阵的生成:,(1)直接输入:如:a=1,3,4;4,3,2.,28,(2)创建M文件输入大矩阵:当矩阵很大时,直接输入显得很笨,出错不易修改.我们可以编写一个M文件,M文件的扩展名必须是m.,例 编写一个名为matrix.m(名字自己随便起)的M文件如下:,%matrix.m,29,mat=1,2,3,3;3,4,5,1;3,2,1,4;8,9,7,5,在命令窗口中输入matrix,就会运行该文件.查看矩阵的结构可用size(mat).,30,矩阵运算:,(1) +、-、*:加、减、乘运算。,(2)矩阵的除法有两种形式:左除“”和右除/.右除是先计算逆再做乘法;而左除不计算逆直接进行除法运算,这样可避免奇异矩阵无法求逆带来的麻烦.,31,如:A=1,2,3,2;3,2, 4,1;3,1,5,6;2,5,3,2, b=1;3;2;1,求方程组Ax=b的解.由于rank(A)=rank(B)=4(B为增广矩阵),所以有唯一解,x=Ab,或x=inv(A)*b.,32,又如: A=361,625,961,1444,1936;1,1,1,1,1, b=1;1,求方程组Ax=b的解.由于rank(A)=rank(B)=2(B为增广矩阵),所以有无穷多个解,MATLAB中用除法解方程组时所得到的解是所有解中范数最小的一个x=Ab。,33,(3)矩阵与常数间的运算:+、-、*运算是数与矩阵的每个元素进行运算,除法运算,只能常数做除数。,(4)矩阵求逆:inv(A)为A的逆(inverse).,34,(5)求转置矩阵:A.,(6)求矩阵的行列式:det(A) ,(determinant是行列式)。,(7)矩阵幂运算:用.如A3,表示A*A*A。,(8)矩阵指数运算:expm(A),A为方阵。,35,(9)矩阵对数运算:logm(A),A为方阵。,如:a=rand(3); %成生一个3阶随机矩阵,b=expm(a),c=logm(b),36,(10)矩阵开方:sqrtm(a).,(11)求矩阵呢的秩:rank(a).,特殊矩阵的生成:,(1)zeros(n):生成 nn阶0矩阵。,(2)zeros(m,n):生成 mn阶0矩阵。,(3)zeros(size(a):生成与a阶数相同的0矩阵。,37,(4) eye(n):生成 n阶单位矩阵。,(5) eye(m,n):生成 mn阶单位矩阵。,(6) eye(size(a):生成与a阶数相同的单位矩阵。,(7) ones(n):生成 n阶全1矩阵。,(8) ones(m,n):生成 mn阶全1矩阵。,38,(9) ones(size(a):生成与a阶数相同的全1矩阵。,(10)rand(n):生成 nn阶随机矩阵,其元素值在0和1之间。,(11)rand(m,n):生成 mn阶随机矩阵。,(12)rand:生成一个随机数。,39,(13)rand(size(a):生成与a阶数相同的随机矩阵。,矩阵的特殊操作:,(1)变维操作reshape(a,m,n):把矩阵a变成nn阶矩阵。如,a=1:12,reshape(a,2,6), reshape(a,3,4)。注意变维操作要保证元素个数一致。,40,例,s=1:12;,c=zeros(3,4);,c(:)=s(:); %符号“:”表示变维操作,这两个矩阵必须预先定义维数,结果c取的是s的元素。,41,(2)对角元素抽取diag(a,k)(注:diagonal为对角线的意思):抽取矩阵a的第k条对角线的元素作为向量,k=0 时为主对角线,k为正值时为上方第k条对角线, k为负值时为下方第k条对角线。,diag(a)相当于diag(a,0).例,a=rand(3); v=diag(a),42,说明:如果b是一个向量,则diag(b)为对角矩阵,其对角线元素为b的元素。如:b=1:3,diag(b).,(3)tril(a) (注:triangle low):提取矩a的主下三角。,(4)tril(a,k):提取矩a的第k条对角线下面部分。 k=0 时为主对角线,k为正值时为上方第k条对角线, k为负值时为下方第k条对角线。,43,(5)triu(a,k) (注:triangle up) :提取矩a的第k条对角线上面部分。,逻辑运算符:,(1)= =:等于。,(2)=:不等于。,(3):小于。,(4):大于。,44,(5)=:小于等于。,(6)=:大于等于。,(7)&:逻辑与。,(8)|:逻辑或。,(9):逻辑非。,45,说明:,在关系比较中,若双方为同维数组(矩阵),则比较的结果也是同维数组(矩阵)。它们的元素有0和1组成。对应位置上的元素满足比较关系时为1,否则为0。当常数与数组(矩阵)比较时,结果与数组(矩阵)同维,其值依次为常数与数组元素依次比较的结果。例:,46,a=1:3;4:6;7:9,x=5,y=x=a,运行结果,y =,0 0 0,0 1 1,1 1 1,47,逻辑运算的意义是:,与:当运算双方的对应元素值都为非0时,结果为1,否则为0;,或:当运算双方的对应元素值有一非0时,结果为1,否则为0;,非:当运算数组(矩阵)的对应位置上的元素值为0时,结果为1,否则为0。例,48,a=1,2;3,2;,b=0,1;3,0;,d=a&b,e=a|b,f= b,算术运算、比较运算、逻辑与或非运算的优先级:先比较运算、再算术运算、最后逻辑与或非运算。,49,常用的一些函数(直接调用):,sin(x):正弦函数,(sine);例:,x=-pi:0.1:pi;y=sin(x);plot(x,y),asin(x):反正弦函数,(anti-sine);,cos(x):余弦函数,(cosine);,acos(x):反,余弦函数,(anti-cosine);,tan(x):正切函数(tangent);,50,atan(x):反正切函数(anti-tangent);,cot(x):余切函数(cotangent);,acot(x):,反,余切函数(anti-cotangent);,sec(x):正割函数(secant);,asec(x):反正割函数(anti-secant);,csc (x):余割函数(cosecant);,acsc (x):反余割函数(anti-cosecant);,51,sinh(x):双曲正弦,(hyperbolic sine);,asinh(x):反双曲正弦,(anti-hyperbolic sine);,cosh(x):双曲余弦,(hyperbolic cosine);,acosh(x):反双曲余弦,(anti-hyperbolic cosine);,52,tanh(x):,双曲正切函数(,hyperbolic,tangent);,a,tanh(x):,反双曲正切函数(anti-,hyperbolic,tangent);,coth(x):,双曲余切函数(,hyperbolic,cotangent);,acoth(x):,反双曲余切函数(anti-,hyperbolic,cotangent);,exp(x):e指数函数(exponent);,53,log(x):自然对数函数(logarithm);,log10(x):以10为底的对数;,log2(x):以2为底的对数;,sqrt(x):平方根函数(square root);,abs(x):求模函数(absolute),Inline(f的表达式):自定义函数。函数的自变量为函数中,出现的变量。自变量顺序安字母表顺序。,Inline(f的表达式,变量1, 变量2, 变量3,):,与上面的区别是它安变量表的给出的顺序规定函数的变量,顺序。如:,g = inline(sin(2*x*y +z),,,表示:,g(x,y,z) = sin(2*x*y +z),g = inline(sin(2*x*y +z), x, z,y),表示:,g(x,z,y) = sin(2*x*y +z);,g1(1,2,3)与g2(1,2,3)的意义不同。,54,多项式表示方法:,在MATLAB中多项式p(x)=a,n,x,n,+a,n-1,x,n-1,+a,0,是以向量p=a,n,a,n-1,a,0,的形式储存的.,(1)系数向量直接输入:例输入多项式x3-5x2+6x-33.,p=1,-5,6,-33;,poly2sym(p) %polynomial多项式,将系数向量表示成符号多项式,55,(2)矩阵的特征多项式输入:例,a=1,2,3;2,3,4;3,4,5;,p=poly(a);%求a的特征多项式系数向量,p1=poly2sym(p); %即为a的特征多项式,56,(3)由根创建多项式:例,root=-5,-3+4i,-3-4i;%是某个多项式的根,p=poly(root) %求相应的多项式的系数向量,P1=poly2sym(p) %将多项式系数向量表示成符号多项式,57,多项式运算:,(1)求多项式的值:例,p=1,11,55,125;,a=1.2,b=1,2;2,3,polyval(p,a) %polynomial value 求多项式在1.2的值,polyvalm(p,b) %多项式在b的值,58,(2)求多项式的根:例求多项式,2x4-5x3+6x2-x+9=0的所有根.,p=2,-5,6,-1,9,roots(p) %得到多项式的根,(3)factor:因式分解。例,syms x,factor(x9-1),结果:ans =(x-1)*(x2+x+1)*(x6+x3+1),59,factor(sym(100)%把整数进行素数分解.结果:(2)2*(5)2,(4)expand(s):多项式展开,s可为多,项式、多项式向量和矩阵。例,expand(sym(x+1)3),结果:ans =x3+3*x2+3*x+1,expand(sym(sin(x+y),结果:ans = sin(x)*cos(y)+cos(x)*sin(y),60,(5)collect(s):对默认的变量合并同类项。,collect(s,v):对变量v合并同类项。,s可为符号多项式、多项式向量和矩阵,例,collect(sym(x2*y+y*x-x2-2*y*x),collect(sym(x2*y+y*x-x2-2*y*x),x),collect(sym(x2*y+y*x-x2-2*y*x),y),61,(6)simple(s):符号表达式简化, s可为符号多项式、多项式向量和矩阵。,例,f=simple(sym(sin(x)2+cos(x)2),结果:f =,g=simple(sym(x3+3*x2+3*x+1),结果:,g =(x+1)3,62,(7)多项式乘除运算分别用conv和deconv: (convolution,deconvolution),例,p1=2,-5,6,-1,9;,p2=3,-90,18;,p=conv(p1,p2) %为p1和p2所相应的多项式的乘积多项式的系数向量,63,p3=deconv(p,p1) %为p2,p4= deconv(p,p2) %为p1,poly2sym(p1);,poly2sym(p2);,poly2sym(p),poly2sym(p3),poly2sym(p4) %观看这几个多项式,64,polyfit(x,y,n) 其中x,y为拟合数据,n为拟合多项式的阶数。例,用最小二乘法拟合数据,x: 0.50 1.00 1.50 2.00 2.50 3.00,y: 1.75 2.45 3.81,4.80 8.00 8.60,x=0.5,1,1.5,2,2.5,3 y=1.75,2.45,3.81,4.80,8.00,8.60,a=polyfit(x,y,2) %用2次多项式拟合上组数据,a为拟合多项式的系数向量,65,x1=0.5:0.05:3,y1=a(1)*x1.2+a(2)*x1+a(3),plot(x1,y1) %画出拟合曲线的图形,hold on %保留上面的图形和坐标,可在该坐标系中继续作图,plot(x,y,*) %用*号的形式画出被拟合的数据图形,66,求矩阵的特征值(,eigenvalue,:),和特征向量,(,eigenvector),例,a=7,3,-2;3,4,-1;-2,-1,3;,x,y=,eig,(a) %,所得结果,x,为,a,的特征向量矩阵,,y,为特征值矩阵,说明:,a,必须是方阵,此时,a*x=y*x,,67,三、符号运算,MATLAB进行符号运算的主要功能:符号表达式和符号矩阵的基本操作、符号矩阵的基本运算、符号微积分运算、符号线性方程求解、符号微分方程求解、特殊数学符号函数、符号函数图形等。,68,符号表达式的生成,创建符号函数:如f=log(x),创建符号方程:如 g=a*x2+b*y2+c=0,创建微分方程:如q=Dy-y=x,或者:f=sym(log(x)、g=sym(a*x2+b*y2+c=0)、,q=sym(Dy-y=x),69,说明:符号函数也可以用另一方法创建(该方法不能创建方程):,syms x,%用syms可以定义多个变量,变量间用空格分开,f=log(x),w=sin(x)+cos(x),70,符号与数值之间的转换,(1) Vpa函数:如,digits(25) 设置有效数字的精度为25位有效数字,vpa(pi+1) 显示在上述digits函数设置下的精度的数值,或者vpa(pi+1,25),注vpa:variable precision arithmetic,71,(2)numeric函数:如,numeric(pi+2),(3)double函数:如,double(pi+2) %与上一个函数结果一样。,例 求函数f(x)=x-cos(x)在x=2的值。,解,72,syms x,f=x-cos(x);,f1=subs(f,2,x) %字符替代,在 符号函数f中用2代替x,f1=subs(f,x,1) %给出f在x=1处的值。,digits(20),vpa(f1),numeric(f1), double(f1),73,例求方程3x,2,-e,x,=0的精确解和各种精度的近似解。,解 s=solve(3*x2-exp(x)=0),vpa(s) %显示32位有效数字,vpa(s,6) 显示6位有效数字,syms x,ezplot(3*x2-exp(x),注:W = LAMBERTW(X) 是w*exp(w) = x的解,74,符号函数运算,复合函数运算:设z=g(y),y=f(x),compose(g,f) %即为g(f(x),自变量的符号取为f函数的自变量符号。,compose(g,f,t) %即为g(f(x),自变量的符号取t。,75,反函数运算:finverse,例,syms x;syms y;syms t;%,或者,syms x y t,g=sin(y);f=1/x,compose(g,f),compose(g,f,t),finverse(g),finverse(f),76,符号矩阵创立,使用sym函数直接创建符号矩阵:例 a=sym(1/sin(x),cos(x)2;2*x,1+x2),或,syms x,a=1/sin(x),cos(x)2;2*x,1+x2,用创建子矩阵的办法创建符号矩阵(该方法不推荐):例,a=,1/,sin(x),cos(x)2;2*x,1+x2 ,同列元素的位数必须一样,可用空可空格来补。 例b=a,;1 ,x2 ,77,将数值矩阵转化为符号矩阵,a=2/3,sqrt(2);0.222,log(3) %a为数值矩阵,b=sym(a) 把a转化为符号矩阵b。,符号矩阵索引和修改,b(2,2) %矩阵的索引,显示矩阵b的第2行第2列元素。,78,符号矩阵的修改,b(2,2)=log(9) %矩阵的修改,,b(2,2)修改为log(9) 。,符号矩阵的运算,(1)、*、/运算,(2)矩阵转置():a,(3) 行列式运算:det(a) %determinant的,简写计算符号矩阵的行列式。,79,(4)求逆inv(a):求矩阵a的逆。,(5)求矩阵的秩rank(a):求矩阵a的秩。,符号极限,limit(f,x,a):求表达式f在xa时的极限。,limit(f):求f在x0时的极限.,imit(f,x,a,left):求表达式f在xa时的左极限。,limit(f,x,a,right):求表达式f在xa时的右极限。例,80,syms x,limit(sin(x)/x,x,1),limit(sin(x)/x),limit(1+1/x)(1/x),x,inf),f=atan(1/(1-x),y=limit(f,x,1) %没极限,y1=limit(f,x,1,left),y2= limit(f,x,1,right),81,f=1/x,y1=limit(f,x,0,left),y2=limit(f,x,0,right),符号积分(积分:integral),(1)int(f,x):计算符号表达式f,自由变量为x的不定积分,(2)int(f,x,a,b):计算符号表达式f,自由变量为x,从a到b的定积分,82,说明:符号表达式可以是符号函数,也可是符号矩阵。,例,syms x,int(sin(x),x),int(sin(x),x,0,1),int(sin(x),x,0,1),说明:变量x省略时默认对x积分。,83,a=sym(1/sin(x),cos(x)2;,2*x,1+x2),int(a,x),符号函数求导(微分:differential ),(1) diff(f,x) %求表达式f,自由变量为x的导数。,(2)diff(f,x,n) %求表达式f,自由变量为x的n阶导数。,84,syms x,f=sin(x)2,diff(f,x),变量x省略时默认对x求导,diff(f,x,2),x省略时默认对x求导,线性方程组的符号解法(linsolve),例a=sym(10,-1,0;-1,10,-2;0,-2,10),b=sym(9;7;6),x=linsolve(a,b) %x为线性方程ax=b的解。注:这里a,b也可是double型,,但得到的x为sym型。,85,vpa(x) %转化为浮点近似解,32位有效数字。,非线性方程(组)的符号解法,(1),fsolve(f,x,0,):其中f为被求零点的函数,x,0,为初值。注:fsolve对sym型函数无效;可用于有函数文件、字符串、和inline定义的函数。,(2),slove(方程1,方程2,).,86,例、求解下面非线性方程组,x,1,-0.7sinx,1,-0.2cosx,2,=0,x,2,-0.7cosx,1,0.2sinx,2,=0,解首先编写函数文件f.m如下,function y=fc(x),y(1)=x(1)-0.7*sin(x(1)-0.2*cos(x(2);,y(2)=x(2)-0.7*cos(x(1)+0.2*sin(x(2);,y=y(1);y(2);,在命令窗口中输入,x0=0.502,0.51; x,0,为初始向量,fsolve(fc,x0),87,作业:分别用solve和fsolve函数求sinx+cosx+x=0的解,并进行验证。,作业:,分别用solve和fsolve函数求方程组,x2*y2 - 2*x - 1 = 0,x2 - y2 - 1 = 0,的解,并进行验证。,两个函数用法的区别是什么?,88,方法,1,x,y=solve(x2*y2 - 2*x - 1 = 0,x2 - y2 - 1 = 0),;,方法,2,function y=fc(x),y(1)=x(1)2*x(2)2-2*x(1)-1;,y(2)=x(1)2-x(2)2-1;,y=y(1),y(2),x0=1.6;1.2,x=fsolve(fc,x0),方法,3,f=x(1)2*x(2)2-2*x(1)-1;x(1)2-x(2)2-1,x0=0.6;0,x=fsolve(f,x0),方法,4,f=inline(x(1)2*x(2)2-2*x(1)-1;x(1)2-x(2)2-1),x0=1.6;1.2,x=fsolve(f,x0),89,(4)已知,x=x,1,x,2,x,n,f=(f1(x);f2(x);f,n,(x),试求导数,f(x),即f对x的jacobian矩阵。,提示:利用函数:jacobian(f,v),其中v为自变量向量。,利用该雅可比函数求下面函数的导数以及在(1,2,3)点的导数值。,90,F=3x-cos(xy)-0.5;,x,2,-80(y+0.1),2,+sinz+1.06;,e,-xy,+20z+1,syms x,syms y,syms z,f=3*x-cos(x*y)-0.5;x2-80*(y+0.1)2+sin(z)+1.06;exp(-x*y)+20*z+1,df=jacobian(f,x,y,z),b=subs(df,x,y,z,1,2,3);,b=1;2;3;,c=linsolve(a,b);,91,常微分方程的符号解(dsolve):,字符D代表对独立变量导数d/dt,Dn代表对独立变量的n阶导数,,例 求dy/dt=-ay的解,解 dsolve(Dy=-a*y) %得到通解。,dsolve(Dy=-a*y,y(0)=1) %给定了初始条件,求特解。方程和 初始条件用逗号分开,都用单引号引起来。,92,符号函数的二维图形,(1)ezplot(f):绘制f(x)的图形,x的范围为-2,2。如,ezplot(sin(x) 。,(2)ezplot(f,a,b):绘制f(x)的图形,x的范围为a,b。如,ezplot(sin(x),0,9)。,93,四、图形处理,图形可视化是数学计算人员所喜欢和追求的一项技术。把结果用图形描述出来,便于理解、分析。,94,二维绘图命令,(1)plot(y):若y是向量,就以向量的索引为横坐标,以向量的元素值为纵坐标;,(2)plot(x,y):一般来说是绘制向量y的图形,横坐标为x的值,纵坐标为y的值。,(3) plot(x,y,.):这里.表示用点线显示。,95,二维绘图命令,(1)plot(y):若y是向量,就以向量的索引,为横坐标,以向量的元素值为纵坐标;,(2)plot(x,y):一般来说是绘制向量y的图形,,横坐标为x的值,纵坐标为y的值。 x,y的维,数相同,(3) plot(x,y,.):这里.表示用离散点显示。,(4) plot(x1,y,x2,y2):x1,y1的维数相同,,x2,y2的维数相同。,96,例,x=-pi:0.1:pi,y=sin(x),plot(y),hold on %保留上一个图形,plot(x,y),plot(x,y+1,:r),97,说明:在plot(x,y,s)中图形设置选项s的规定,98,例,x=0:0.1*pi:2*pi;,y=sin(x);,z=cos(x);,plot(x,y,-k,x,z,-.r) %分别用虚黑线和点划红线显示两条曲线。,99,()polar(,r):画出极坐标函数r=r()的图形,例,cita=0:0.1*pi:4*pi;,r=cita+sin(cita/2),polar(cita,r),(6)refline(k,b):画平面参考线,k为斜率,b为在y轴的截距,100,三维图形命令,(1)plot3(x,y,z):x,y,z为同维向量时画空间曲线,例画出x=sin(t),y=cos(t), x=t,t0,10的图形。,解,101,t=0:pi/50:10*pi; z=t,x=sin(t),y=cos(t),plot3(x,y,z);plot3(x,y,z+1,-r),(2)plot3(x,y,z):当z=f(x,y),(x,y)为xoy平面上的网格节点时,它可以画出空间曲面z=f(x,y) 的图形。,(3)mesh(x,y,z):画出三维网格图。,102,(4)meshc(x,y,z):画出三维网格与等高线图,(5)meshz(x,y,z):增加边界面屏蔽。,(6) surf(x,y,z) :与mesh函数不同的是把图形着色,surfc与meshc类似。例,103,x,y=meshgrid(-2:0.1:2, -2:0.1:2); z=x.2+y.2;,plot3(x,y,z),hold on,meshc(x,y,z+8), meshc(x,y,z+16),,mesh(z)与mesh(x,y,z)的区别类似于plot(x)与plot(x,y)的区别。,104,(,3)坐标轴标注xlable(标注), ylable(标注),(4),标题标注,title(,标题,),x=-pi:0.1*pi:pi,,,y=sin(x),plot(x,y),,,v=-16,6,-1,2,,,axis(v),grid on,xlabel(x-axis), ylabel(y=sinx),title(正弦函数图像),105,(5)图形保持hold on/off: hold on是启动图形保持功能,在已存在的一张图中添加曲线,hold off 是关闭图形保持功能。,(6)图例标注legend(标注1,标注2,),106,例x=0:0.1*pi:2*pi;,y=sin(x); z=cos(x);,plot(x,y,-*),hold on,plot(x,z,-o),plot(x,y+z,-h),legend(y=sinx,z=cosx,y+z=sinx+cosx,hold off %关闭图形保持,107,(7)子图subplot(m,n,p):其功能是把一个图形分成mn个小图形窗口,通过参数p调用各子窗口进行操作。例,108,x=0:0.1*pi:2*pi;,y=sin(x);,z=cos(x);,subplot(2,2,1), plot(x,y,-*),subplot(2,2,2), plot(x,z,-o),subplot(2,2,3), plot(x,y+z,-h),subplot(2,2,4), plot(x,y-z,-x),109,图形处理技术,(1)坐标轴控制函数axis(v):对二维图形v=a,b,c,d,其中a,b和c,d分别为x轴和y轴的范围;对于三维图形v=a,b,c,d,e,f分别给出x,y和z轴的范围。例,(2),平面坐标网格函数,grid on/off:,作用是平面图形带有网格和取消网格。,110,五、程序设计,MATLAB作为一种高级计算语言,不仅可以做如上所讲的那些工作,还可以像basic ,fortran,c等其它高级计算机语言一样进行程序设计,即编制以m为扩展名的文本文件(简称M文件)。,111,M文件的形式,(1)命令式(script):命令式文件就是命令行的简单叠加,MATLAB就会自动按顺序执行文件中的命令,这样就可以避免在命令窗口运行许多命令的麻烦和重复行工作,也便于修改。其可在命令窗口直接输入文件名运行,112,例,%sinfig.m,x=-pi:0.1*pi:pi;,y=sin(x);,plot(x,y);,hold on;,plot(y,x),113,函数式(,function):,他主要解决参数传递和函数调用问题,它的第一句以,function,语句为引导。不能直接运行,只能调用。,例 ,f.m,文件名与函数名必须一致,function f(x),f=2*x2+4*x+6,在命令窗口中输入:,f(0),f(10),可以看,出结果。,114,例、建立一个名字为f的函数文件,该,函数为,f=cos,2,(x),试计算该函数在x=1:10的函数值,,并给出离散点(x,f(x))的图形。,(大家一起讨论),115,例、一个函数文件可以定义个函数,function y1,y2,y3 = f(x),y1=sin(x);,y2=cos(x);,y3=tan(x);,(3)数据文件:用save(文件名,变量1,变量2,)创建,用load(文件名)调入到工作间。,116,控制语句,(1)循环语句,(a)for循环:例,s=0;,for k=1:1:10 %初始值、步长和最大限值,s=s+k;,end 循环结束标志,117,(b)while循环:例,s=0;,k=0;,while k=9,k=k+1;,s=s+k;,end,s,118,(c)ifelseend选择语句:例,编写分段函数f(x)=x,(-1=x0);f(x)=x2,(0=x=-1 & x0,y=x;,else,y=x2;,end,119,(d) ifend语句:例,for i=1:10,if i=-1 elseif,x=0 else,f=0,end,在命令窗口中输入f(1),(3)可以得到结果。,121,(f)swith 变量,case 1,语句,case 2,语句,otherwise,语句,end,122,例、,for i=1:6,switch i,case 1,a=1,case 2,a=2,case 3,a=3,case 4,a=4,otherwise,b=0,end,end,123,例 已知n=自己的真实学号,在xoy平面有点,A,i,=(i,0),B,i,=(i,n),(i=0,1,2,n),现要画连接A,i,B,j,的线段(i,j=0,1,n),试给出其MAT LAB程序。,解 现就学号为6,给出其程序如下:,124,n=6;x=0:n;y=0:n;,for i=1:7,for j=1:7,if i=j,plot(x(i)*ones(size(y),y);,xlabel(x);ylabel(y);title(AiBj的连线),v=0,n,0,n;axis(v),hold on;,else,a=min(x(i),x(j); b=max(x(i),x(j);,X1=a:0.1*(b-a):b;,Y1=-n/(x(i)-x(j)*(X1-x(i);%连接AiBj的直线,plot(X1,Y1);,end,end,end,125,作业:在上题的基础上,再加上点,C,i,=(0,i),D,i,=(n,i),(i=0,1,2,n),现要画连接AiBj和CiBj的线段(i,j= 0,1,n),试给出其MAT LAB程序。把运行结果得到的图像,存放到WORD文件,文件名字取为:真实姓名_真实学号,然后发送到信箱:xtxysh,126,六、主要命令汇总,1、常用信息,help:,在线帮助(显示在命令窗)。,helpwin,:,在线帮助(独立窗口显示)。,ver,:MATLAB,及工具箱的版本信息。,2,、管理工作区命令,who:,显示当前变量。,whos,:,显示当前变量具体信息。,127,clear:从内存中清楚变量和函数。,quit:退出MATLAB。,3、管理命令和函数,what:显示当前目录下的MATLAB,文件。,edit:编辑M文件。edit(建立编辑新,文 件);edit文件名(编辑已有,的文件)。,128,which:找出函数和文件的位置。,type:显示M文件内容。Type+文件,名。,Inmem:显示内存中的函数。,4、操作系统命令,dir:显示目录。,pwd:显示当前工作目录。,delete:删除文件。Delete+文件名。,129,web:打开页面浏览器加载文件。,5、数据类型,double:双精度类型,sym:符号型,Inline:内联对象,char:字符数组或字符串。,uint8:无符号8位整数(,unsigned,integer,),6、数据基本操作,max:最大元素。向量为数,矩阵为向量,130,min:最小元素。类似max.,mean:求平均值。mean(a),a为向量,时得到向量平均值,结果为一,个数;a为矩阵时,进行每列,平均,得到一个向量。,sum:元素和。 sum(a),a为向量时得,到该向量各元素之和,结果为一,个数;a为矩阵时,进行每列,求和,得到一个向量。,131,prod:元素积。prod(a)当a为向量和,矩阵时的情况,类似于max(a)。,cumsum:元素累和。cumsum(a),a,可为向量,也可为矩阵。,cumprod:元素累积。a可为向量,,也可为矩阵。,7、基本矩阵函数,zeros:零矩阵函数。,132,ones:全1矩阵。,eye:单位矩阵。,rand:随机数、向量、矩阵.,linspace:线性等分向量。,8、基本数组操作,size:矩阵大小。,length:数组长度。,isempty:判断是不是空矩阵。,133,isequal: 判断数组是否相等。,isequal(a,b)。,isnumeric:判断是否为数值矩阵。,reshape:矩阵重置。,tril:抽取下三角部分。,triu:抽取上三角部分。,fliplr:左右方向翻转矩阵(flip:翻转)。,flipud:上下方向翻转矩阵。,134,rot90:逆时针把矩阵旋转90度。,9、专用变量和常量,ans:最新答案。,pi:圆周率。,i,j:复数单位。,inf:无穷大。,NaN:不定数。,isnan:判断不定数。,135,isinf:判断无穷大元素。,isfinite:判断有限大元素。,10、指数、对数函数,exp:e指数函数。,pow2:以2为底的幂函数。,sqrt:平方根函数。,11、舍入函数和剩余函数,fix:朝零方向舍入为整数。,136,floor:朝负方向舍入为整数。,ceil:朝正方向舍入为整数。,round:四舍五入为整数。,sign:符号函数。,mod:无符号求余函数。mod(3,2)=1,rem:带符号求余函数。,12、复数函数,abs:求模。,137,conj:求共轭函数(conjugate)。,angle:相角函数。,imag:复矩阵虚部。,real:复矩阵实部。,isreal:实矩阵判断函数。,12、矩阵函数,norm:矩阵或向量范数。,normest:向量、矩阵2范数。,138,rank:矩阵的秩。,det:矩阵行列式的值。,trace:矩阵的迹(主对角线元素之和)。,inv:矩阵逆。,13、特征多项式、特征值,poly:特征多项式。,poly2sym:多项式表示。,eig:特征值和特征向量。,139,eigs:特征值。,14、矩阵函数,expm:矩阵指数。,logm:矩阵对数。,sqrtm:矩阵平方根。,15、坐标转换,cart2sph:转换直角坐标为球坐标。,cart2pol:转换直角坐标为极坐标。,140,pol2cart:转换极坐标为直角坐标。,sph2cart:转换球坐标为直角坐标。,16、坐标轴控制,axis:控制坐标轴范围。,grid on/off:栅格线保持、取消。,hold on/off:图形保持/取消。,box on/off:图形四周都显示/常规坐标轴。,例1、,141,x,y=meshgrid(0:0.5:10);,z=y.*sin(x.2)+cos(y);,surf(x,y,z),v=-20,10,-20,10,-10,50;%,坐标轴范围控制,axis(v),注意该语句必须在图形显示语句的后面,说明:二维图形是类似的。,142,例2、axis(控制字符串):可以选择,不同的字符串完成对坐标轴的操作。,控制字符串有:,(1)auto:自动模式,使得图形的坐标范围满足图中一切图元素。,(2)axis:将当前坐标设置固定,使,用hold命令后,图形仍以此作为坐标,界限。,143,(3)manual:以当前的坐标限定绘,制。,(4)tight:将坐标限控制在指定的数,据范围内。,(5)equal:使坐标轴分度相等。,(6)off:取消对坐标轴的一切设置,,包括系统的自动设置。,(7)on:恢复对坐标轴的一切设置。,144,x,y=meshgrid(-1:0.1:1,-1:0.1:1);,z=x.2+y.2;,surf(x,y,z),box on,17、基本二维图形,plot:线性绘图。,145,loglog:双对数坐标图。,semilogx:半对数(x)坐标图。,semilogy:半对数(y)坐标图。,polar:极坐标图。,subplot:分割图窗,refline(slope,intercept):加参考线,18、图形注解,legend:图形标签.,xlable:x轴标签。,146,ylable:y轴标签。,title:图形题目。,text:文字注解。,19、特殊二维图形,bar:条形图。,barh:水平柱图。,ezplot:符号函数图。,fplot:绘制字符串指定的函数名的函数图。如fplot(sin(x),2,3)。,147,pie:饼图。,plotmatrix:绘矩阵点图。,stem:2维火柴杆图。,stem3:3维火柴杆图。,20、等高线图和向量图,contour:等高线图。,contour3:三维等高线图。,quiver:向量图。,例,148,x,y = meshgrid(-2:.2:2,-1:.15:1);,z = x .* exp(-x.2 - y.2);,px,py = gradient(z,2);,contour(x,y,z),hold on,quiver(x,y,px,py),hold off,149,21、特殊三维图形,comet3:,三维彗
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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