版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1节Matlab基本知识1、 Matlab的主要功能Matlab是一种功能非常强大的工程语言,诞生于20世纪70年代,1984年正式推向市场。2002年8月,Matlab6.5开始发布。是进行科学研究和产品开发必不可少的工具。数值和符号计算矩阵(数组)的四则运算(MatrixLaboratory)、数值差分、导数、积分、求解微分方程、微分方程的优化等数字图像、数字信号处理工程和科学绘图控制系统设计财务工程建模、仿真功能2、 Matlab的界面1. 命令窗口(CommandWindow):Matlab各种操作命令都是由命令窗口开始,用户可以在命令窗口中输入Matlab命令,实现其相应的功能。此
2、命令窗口主要包括文本的编辑区域和菜单栏(如:四则运算;“;”禁止显示变量的值;遍历以前的命令)。在命令窗口空白区域单击鼠标右键,打开快捷菜单,各项命令功能如下:EvaluateSelection:打开所选文本对应的表达式的值。OpenSelection:打开文本所对应的MatLab文件。Cut:剪切编辑命令。Paste:粘贴编辑命令。2. M-文件编辑/调试(Editor/Debugger)窗口MatlabEditor/Debugger窗口是一个集编辑与调试两种功能于一体的工具环境。M-文件(函数文件)什么是M-文件:它是一种和Dos环境中的批处理文件相似的脚本文件,对于简单问题,直接输入命令
3、即可,但对于复杂的问题和需要反复使用的则需做成M文件(ScriptFile)。创建M-文件的方法:Matlab命令窗的File/New/M-file。在Matlab命令窗口运行edit。M文件的扩展名:*.m执行M-文件:F5M文件的调试选择Debug菜单,其各项命令功能如下:Step:逐步执行程序。Stepin:进入子程序中逐步执行调试程序。Stepout:跳出子程序中逐步执行调试程序。run:执行M-文件。GoUntilCursor:执行到光标所在处。ExitDebugMode:跳出调试状态。函数文件的创建要求:文件名与函数名必须相同,如sin(x)必有sin.m函数文件存在。要求实参和形
4、参位置一一对应。形参在工作空间中不会存在。可以编写递归函数,可以嵌套其他函数。可以用return命令返回,也可以执行到终点返回3. 工作空间(Workspace)窗口:显示目前保存在内存中的Matlab的数学结构、字节数、变量名以及类型窗口。保存变量:File菜单SaveWorkspaceas命令行:save文件名装入变量:File菜单ImportData命令行:Load文件名4. 现在目录窗口(CurrentDirectory)5. 命令历史窗口(CommandHistory):提供先前使用过的函数,可以复制或者再次执行这些命令。Matlab帮助系统Matlab在命令窗口提供了可以获得帮助的
5、命令,用户可以很方便的获得帮助信息。例如:在窗口中输入“helpfft”就可以获得函数“fft”的信息。常用的帮助信息有help,demo,doc,who,whos,what,which,lookfor,helpbrowser,helpdesk,exit,web等。三、关于变量变量命名规则:变量名是不包含空格的单个词变量名区分大小写变量名必须以字母开头的字母、数字、下划线的组合,最多19个字符。Matlab提供的标准函数名均以小写字母开头特殊变量名:ans缺省变量名pi圆周率i,j虚数单位eps无穷小inf,Inf无穷大realmax最大正实数realmin最小正实数清除变量的值clearcl
6、ear变量名1变量名2显示驻留内存的变量名whowhos第2节Matlab编程一、矩阵(数组)的输入1、直接输入直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号()内;多维矩阵用多重方括弧。可建立复数矩阵如:Null_M=%生成一个空矩阵可建立复数矩阵R=1,2,3;4,5,6I=7,8,9;10,11,12Z=R+I*j2.由M文件方式建立,今后使用键入M文件名即可建立相应矩阵2、利用函数输入":"表达式,产生等差行向量start:step:end或start:end(step=1)如:
7、t=1:20产生等距输入:linspace(a,b,n)将a,b区间分成n1个等距小区间产生随机排列:randperm(n)产生1n之间整数的随机排列3、特殊矩阵输入zeros(n)生成nXn全零阵,zeros(a,b)元素全为0的axb维矩阵,7以下各函数同理具有该类型。zeros(size(A)生成与矩阵A相同大小的全零阵,Jones(a,b)元素全为1的axb维矩阵eye(a,b)对角线上的元素为1的axb维矩阵rand(a,b)产生axb维均匀分布的随机矩阵,其元素在(0,1)内rand无变量输入时只产生一个随机数randn(a,b)产生axb维正态分布的随机矩阵4.矩阵的转置和逆矩阵
8、X的转置:X'(图像顺时针旋转90。,并水平镜像)如:a=imread('D:2-1.bmp');b=a'subplot(1,2,1),subimage(a),subplot(1,2,2),subimage(b)X的逆矩阵inv(X)访问第n个元素: 访问多个元素: 确定元素的个数: 确定矩阵的大小:、矩阵元素的访问及其大小的确定X(n)(n>=1)X(n1,n2,n3)或X(1:10)numel(X)m,n,l=size(X)三、矩阵的算数运算数与矩阵的运算:m等价于m.mA:m与A中各元素相加mA:m与A中各元素相减mxA:m与A中各元素相乘m./A:
9、m除以A中各元素(没有m/A)mA:A中各元素除以m矩阵与矩阵的运算AB:A、B对应元素相加AB:A、B对应元素相减AXB:A、B矩阵按线性代数中矩阵乘法运算进行相乘(注意维数匹配)A.*B:A、B对应元素相乘(注意维数相同)A/B:A除以B矩阵(AXB1)(注意维数匹配)A./B:A除以B中各元素AB:B除以A矩阵(A-1XB)(注意维数匹配)A.B:B除以A中各元素AAm:相当于矩阵AX矩阵AX矩阵A.(m为小数即是矩阵的开方运算)(注意维数匹配)A.Am:矩阵A中各元素的m次方A.AB:矩阵A中各元素的进行B中对应元素次方(注意维数相同)四、关系运算<、<=、>、>
10、;=、=、=六种关系运算符。关系成立结果为1,否则为0。五、逻辑运算设矩阵A和B都是mxn矩阵或其中之一为标量,在MATLAB中定义了如下的逻辑运算:&、|、xor(真为1,假为0)(1)矩阵的与运算格式A&B或and(A,B)说明A与B对应元素进行与运算,若两个数均非0,则结果元素的值为1,否则为0。(2)或运算格式A|B或or(A,B)说明A与B对应元素进行或运算,若两个数均为0,则结果元素的值为0,否则为1。(3)非运算格式A或not(A)说明若A的元素为0,则结果元素为1,否则为0。(4)异或运算格式xor(A,B)说明A与B对应元素进行异或运算,若相应的两个数中一个为
11、0,一个非0,则结果为0,否则为1。六、集合运算1 两个集合的交集intersect2 检测集合中的元素ismember3 两集合的差setdiff4 两个集合交集的非(异或)函数setxor5 两集合的并集union6 取集合的单值元素unique七、MatLab的控制流由各种语句构成语句后面加“;”号,不显示运算结果开头表示是注释语句赋值语句变量=表达式表达式(相当于将值付给ans变量)演示(三)for循环结构【例】一个简单的for循环示例。fo门=1:10;%i依次取1,2,10,.x(i)=i;%对每个i值,重复执行由该指令构成的循环体,end;x%要求显示运行后数组x的值。x=1 2
12、345678910while循环结构) ;且【例】Fibonacci数组的元素满足Fibonacci规则:ak2akak1,(k1,2,a1a21。现要求计算出该数组中第一个大于10000的元素。a(1)=1;a(2)=1;i=2;whilea(i)<=10000a(i+1)=a(i-1)+a(i);%当现有的元素仍小于10000时,求解下一个元素。i=i+1;end;i,a(i),i=21ans=10946if-else-end分支结构【例1】一个简单的分支结构。cost=10;number=12;ifnumber>8sums=number*0.95*cost;end,sumss
13、ums=114.0000【例2】用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。n=100;a=ones(1,n);fori=3:na(i)=a(i-1)+a(i-2);ifa(i)>=10000a(i),break;%跳出所在的一级循环。end;end,ians=10946i=21switch-case结构【例】学生的成绩管理,演示switch结构的应用。clear;%划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)fori=1:10;ai=89+i;bi=79+i;ci=69+i;di=59+i;en
14、d;c=d,c;Name='Jack','Marry','Peter','Rose','Tom'%元胞数组Mark=72,83,56,94,100;Rank=cell(1,5);%创建一个含5个元素的构架数组S,它有三个域。S=struct('Name',Name,'Marks',Mark,'Rank',Rank);%根据学生的分数,求出相应的等级。fori=1:5switchS(i).Markscase100%得分为100时S(i).Rank='满分'
15、;%列为'满分'等级casea%得分在90和99之间S(i).Rank='优秀'%列为'优秀'等级caseb%得分在80和89之间S(i).Rank='良好'%列为'良好'等级casec%得分在60和79之间S(i).Rank='及格'%列为'及格'等级otherwise%得分低于60S(i).Rank='不及格'%列为'不及格'等级endend%将学生姓名,得分,登记等信息打印出来。登记等信息打印出来。disp('学生姓名','
16、;得分','等级');disp('')fori=1:5;disp(S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank);end;学生姓名得分等级Jack72及格Marry83良好Peter56不及格Rose94优秀Tom100满分try-catch结构结构应用实例。【例】try-catchclear,N=4;A=magic(3); try%设置 3 行 3 列矩阵 A。A_N=A(N,:), catch%取 A 的第 N 行元素A_end=A(end,:), end%如果取A(N,:)
17、出错,则改取A 的最后一行。lasterr%显示出错原因A_end =ans =Index exceeds matrix dimensions.第二章符号数学工具(SymbolicMathToolbox)第1节符号表达式符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符串数组。不要求变量有预先确定的值,符号方程式是含有等号的符号表达式。如表2.1所列。表2.1符号表达式在MATLAB的表示1'1/(2*xAn)'*1y='1/sqrt(2*x)'y2x2'cos(xA2)-sin(2*x)'cos(x)sin(2x)M=sym(&
18、#39;a,b;c,d')f=int('xA3/sqrt(1-x)','a','b)注意:加单引号表示是一个符号表达式而不是数字表达式。符号函数:让用户操作上述符号表达式的方法和函数,比如:>>diff('cos(x)')%differentiatecos(x)withrespecttoxans=-sin(x)>>M=sym('a,b;c,d')%createasymbolicmatrixMM=a,bc,d注意:1.建立符号数组时,最好用上函数sym2.许多符号函数可以自动将字符转变为符号表
19、达式。例如diffcos(x)也可以,>>diffxA2+3*x+5%theargumentisequivalentto'xA2+3*x+5'符号变量是符号表达式中的变量,如:x+3*y+z'中的x,y,z。独立变量是当符号表达式中含有多于一个的变量时,只有一个变量是独立变量。缺省的独立变量是x,如果没有x,则选择最靠近x的作为独立变量。如表达式1/(5+cos(x)'中是x'在'3*y+z中是y'在'a+sin(t)'是't',而表达式sin(pi/4)-cos(3/5)'是一个符号常
20、数无符号变量。可利用函数symvar询问MATLAB在符号表达式中哪一个变量它认为是独立变量(系统找不到一个独立变量,便假定无独立变量并返回x)。> >symvar('a*x+y*)%findthedefaultsymbolicvariableans=x> >symvar('a*t+s/(u+3)')%uistheclosestto'x'ans=u> >symvar('sin(omega)')%'omega'isnotasingleecharacter。ans=x> >sym
21、var('3*i+4*j')%iandjareequeltosqrt(-1)ans=x指定独立变量:> >diff('xAn')%differentiatewithrespecttothedefaultvariable'x'ans=xAn*n/x> >diff('xAn','n')%differentiatexAnwithrespectto'n'ans=xAn*10g(x)> >diff('sin(omega)')%differentiateusi
22、ngthedefaultvariables(x)ans=0> >diff('sin(omega)','omega')%specifytheindependentvariableans=cos(omega)第2节符号表达式运算(目的:更方便的构造符号表达式)标准代数运算:symadd、symsub、symlnul、symdiv:分别为加、减、乘、除两个表达式sympow:将一个表达式上升为另一个表达式的哥次例如:给定两个函数f2x23x5gx2x7>> f= ' 2*xA2+3*x-5 '%definethesymbolic
23、expressionf=2*xA2+3*x-5>>g='xA2-x+7g=xA2-x+7> >symadd(f,g)%findanexpressionforf+gans=3*x+2*x+2> >symsub(f,g)%findanexpressionforf-gans=xA2+4*x-12> >symmul(f,g)%findanexpressionforf*gans=(2*xA2+3*x-5)*(xA2-x+7)> >symdiv(f,g)%findanexpressionforf/gans=(2*xA2+3*x-5)/(x
24、A2-x+7)3*> >sympow(f,'3*x')%findanexpressionforfans=(2*xA2+3*x-5)A(3*x)联接运算:symop:取由逗号隔开的、多至16个参量。各个参量可为符号表达式、数值或算子('+'、'-'、*'、'/'、A、('或)'),然后symop可将参量联接起来,返回最后所得的表达式.> >f='cos(x)'%createanexpressionf=cos(x)> >g='sin(2*x)'
25、%createanotherexpressiong=sin(2*x)> >symop(f,7z,g,'+',3)%combinethemans=cos(x)/sin(2*x)+3高级运算:lcompose:把f(x)和g(x)复合成f(g(x);tfinverse:求函数的逆函数;symsum:求表达式的序列和。compose给定表达式g sin(x)1 u2k = sin(v)>>symsxyuvf=1/(1+xA2);g=sin(y);h=1/(1+uA2);k=sin(v);%createthefourexpression>> comp
26、ose(f , g) %findanexpressionforf(g(x)ans=1/(1+sin(y)A2)find an expression for g(f(x)'v')% given h(u) , k(v) , find(k(v)%结果一样>>compose(g,f)%ans=sin(1/(1+xA2)用于含有不同独立变量的函数表达式>>compose(h,k,'u'compose(h,k)ans=1/(1+sin(v)A2)finverse表达式譬如f(x)的函数逆g(x),满足g(f(x)=x。例如,ex的函数逆是ln(x),
27、因为ln(ex)=x。11sin(x)的函数逆是arcsin(x),函数的函数逆是arcsin(一)。函数finverse返回表达式的tan(x)x函数逆。如果解不是唯一就给出警告。> >symsxabcdz> >finverse(1/x)%theinverseof1/xis1/xsince'1/(1/x)=x'ans=1/x> >finverse(xA2)%g(xA2)=xhasmorethanonesolutionWarning:finverse(xA2)isnotuniqueans=xA(1/2)> >finverse(a*
28、x+b)%findthesolutionto'g(f(x)=x'ans=% find the solution to ' g(f(a)=a '-(b-x)/a> >finverse(a*b+c*d-a*z,'a')ans=-(c*d-a)/(b-z)symsum求表达式的序列和有四种形式:x1ssymsum返回f(x);os1symsum(f,'s')返回f(s),obsymsun(f,a,b)返回f(x);bf (s)。aaIsymsun(f,'s',a,b)返回x11. x2,它应返回:>&g
29、t;symsnx%一定要定义符号变量,即使是>>symsum(xA2)ans=n2.(2n11/3*xA3-1/2*xA2+1/6*x1)2,它应返回丛2n1)(2n1)Q3>>symsum(2*n-1)A2,1,n)ans=11/3*n+8/3-4*(n+1)A2+4/3*(n+1)A31 一口23.1,返回应是。1 (2n1)8> >symsn> >symsum(1/(2*n-1)A2,1,inf)ans=1/8*piA2变量替换:subs将某个符号变量用另一个符号变量来表示。格式:subs(f,old,new)如:% create a fu
30、nction f(x)> >f='a*x2+b*x+cf=a*xA2+b*x+c>> subs(f,'x','s') expression f% substitute 's' for ' x ' intheans=a*sA2+b*s+c% substitute ' alpha ' for ' a ' in f>>subs(f,'a','alpha')ans=alpha*xA2+b*x+c求符号表达式的函数值为了得到数字,需要
31、使用函数eval来转换字符串。> >symsx> >f=symsum(xA2)> >x=2> >eval(f)第3节微积分(Calculus)函数微分和积分广泛地用在许多工程学科,这部分的主要函数有:ddiff():Differentiate.(微分)Int():Integrate(积分)Jacobian():Jacobianmatrix(雅可比行歹U式)Limit():Limitofanexpression.(极限)Symsum():Summationofseries(序歹U和)Taylor():Taylorseriesexpansion(泰勒
32、级数)微分和差分:diff> >f='a*xA3+xA2-b*x-c'%defineasymbolicexpressionf=a*xA3+xA2-b*x-c> >diff(f)%differentiatewithrespecttothedefaultvariablexans=3*a*xA2+2*x-b> >diff(f,'a')%differentiatewithrespecttoaans=xA3> >diff(f,2)%differentiatetwicewithrespecttoxans=6*a*x+2>
33、 >diff(f,'a',2)%differentiatetwicewithrespecttoaans=0> >m=(1:8).A2)%createavectorM=1491625364964> >diff(M)%findthedifferencesbetweenelementsans=3579111315如果diff的表达式或可变参量是数值,MATLAB就非常巧妙地计算其数值差分;如果参量是符号字符串或变量,MATLAB就对其表达式进行微分。积分int:格式:int(f),其中f是一符号表达式,它力图求出另一符号表达式F使diff(F尸f。注意:
34、积分或逆求导不一定是以封闭形式存在,或存在但软件也许找不到,或者软件可明显地求解,但超过内存或时间限制。当MATLAB不能找到逆导数时,它将返回未经计算的命令。> >int('log(x)/exp(xA2)')%attempttointegrateans=log(x)/exp(xA2)积分函数的多种形式:lint:相对于缺省的独立变量x求逆导数Iint(f,飞'):相对于符号变量阚分int(f,a,b)和int(f,'s',a,b):a,b是数值,求解符号表达式从a到b的定积分Lint(f,'m','n')和形
35、式int(f,飞,m','n'):其中m,n是符号变量,求解符号表达式从m到n的定积分。> >f='sin(s+2*x)'%crateasymbolicfunctionf=sin(s+2*x)> >int(f)%integratewithrespecttoxans=-1/2*cos(s+2*x)>>int(f,'s')%integratewithrespecttosans=-cos(s+2*x)> >int(f,pi/2,pi)%integratewithrespecttoxfrom/2to
36、ans=-cos(s)> >int(f,'s',pi/2,pi)%integratewithrespecttosfrom/2toans=2*cos(x)A2-1-2*sin(x)*cos(x)> >int(f,'m','n')%integratewithrespecttoxfrommtonans=-1/2*cos(s+2*n)+1/2*cos(s+2*m)diff和int均可以对符号数组的每一个元素进行运算。>>F=sym('a*x,b*xA2;c*xA3,d*s')%createasymbol
37、icarrayF=a*x,b*xA2c*xA3,d*s>>int(F)%ubtegratethearrayelementswithrespecttoxans=1/2*a*xA2,1/3*b*xA31/4*c*xA4,d*s*x第4节数字信号处理常用Matlab函数简介一、典型离散信号表示方法1 .单位冲击序列8(n)8(n)可以用zero函数来实现:x=zeros(1,N);x(1)=1;2 .单位阶跃序列u(n)可以用ones函数来实现X=ones(1,N);3 .正弦序列n=0:N-1;x=A*sin(2*pi*f*n*Ts);4 .指数序列N=1:N;X=a.*An;5 .复
38、指数序列n=0:N-1;x=exp(j*w*n);6 .随机序列Rand(1,N):产生0,1上的均匀分布的随机序列;Rand(1,N):产生均值为0,方差为1的高斯随机序列,即白噪声序列。二、滤波器分析与实现滤波器分析与实现常用函数abs求绝对值angle求相角conv求卷积conv2求二维卷积deconv翻卷积f1filt重叠相加法fft滤波器实现filter直接滤波器实现filter2二位数字滤波器filtfilt零相位数字滤波器filticFilter初始条件选择freqs模拟滤波器频率响应freqspace画出频率响应曲线freqz数字滤波器频率响应freqzplot画出频率响应曲线
39、gGrpdelay平均滤波延迟latcfilt格型滤波实现impz数字滤波器中的单位冲击响应medfilt1一维中值滤波sosfilt二次分式滤波器实现zplane离散系统零、极点图upfirdn上抽样unwrap1. absy=abs(x)计算x的绝对值,当x为复数时,其算其模值。当x为字符串时,计算各个字符的ASCII码。2. angle。=angle(h)计算复矢量或者复矩阵的相角(以弧度为单位),相角介于-刀刀之间。3. .convc=conv(a,b)对序列a,b进行卷积运算。4. .filtery=filter(b,a,x)计算输入信号x的滤波器输出,向量a,b分别是所采用的滤波器
40、的分子系数向量和滤波器的分母向量。y,zf=filter(b,a,x,zi)参数zi指定滤波器的初始条件,其大小为zi=max(length(a),length(b)-1y=filter(b,a,x,zi,dim)dim指定滤波器的维数。7zi7=1或。表示空集。5. impzh,t=impz(b,a)返回参数h是冲击相应的数值;返回t是冲击相应的抽样时间间隔。h,t=impz(b,a,N)N用来制定冲激信号长度。如果N是一个整数向量,只返回N元素所对应时刻的抽样数值的冲击结果。N为口,表示不制定冲激信号的长度,其长度与滤波器结构保持一致。h,t=impz(b,a,N,fs)Fs用来指定冲击信
41、号的抽样频率,默认值是1。三、信号变换常用变换函数cztChirpz变换dct离散余弦变换dftmtx离散傅里叶变换fft一维快速傅里叶变换fft2二维快速傅里叶变换fftshift一重新排列fft输出HilbertHilbert变换idct离散余弦反变换ifft一维快速傅里叶反变换ifft2二维快速傅里叶反变换1.fftY=fft(X)若X是向量,则采用傅里叶变换求解X离散傅里叶变换;若X是矩阵,则计算该矩阵每一列的离散傅里叶变换。Y=fft(X,N)N是进行离散傅里叶变换的X的数据长度,可以通过对X进行补或截取来实现。Y=fft(X,口,dim)在参数dim指定的维上进行傅里叶变换。X是矩
42、阵时,dim用来指变换的实施方向:dim=1,表明变换按列进行;dim=2,表明变换按行进行。第5节方程求解一、求解单个变量的代数方程:利用solve函数1 .没有=号的表达式,用soke将其置成等于0。>>solve('a*xA2+b*x+c')%solvefortherootsofthequadraticequtionans=1/2/a*(-b+(bA2-4*a*c)A1/2)1/2/a*(-b-(bA2-4*a*c)A1/2)注:方程有2个解。2.对其他非缺省变量求解,在solve中指定出该变量。>>solve('a*xA2+b*x+c
43、39;,'b')%solveforbans=-(a*xA2+c)/x3.对带有等号的方程求解。>>f=solve('cos(x)=sin(x)')%solveforxf=1/4*pi>>t=solve('tan(2*x)=sin(x)')t=0piatan(1/2*(-2*3A(1/2)A(1/2),1/2+1/2*3A(1/2)atan(-1/2*(-2*3,(1/2)A(1/2),1/2+1/2*3A(1/2)atan(1/2*2A(1/2)*3A(1/4)/(1/2-1/2*3A(1/2)+pi-atan(1/2*2
44、A(1/2)*3A(1/4)/(1/2-1/2*3A(1/2)-pi二、单个常微分方程求解:利用dsovle函数dsovle函数的句法:用字母D来表示求微分,D2,D3等等表示二阶、三阶微分,并以此来设定方程。任彳SJD后所跟的字母为因变量。方程d2y/dx2=0用符号表达式D2y=0来表示。独立变量可以指定或由symvar规则选定为缺省。例1,求一阶方程dy/dx=1+y2的解,其通解为:> >dsolve('Dy=1+yA2')%findthegeneralsolutionans=tan(t+C1)%C1是积分常数给定初值y(0)=1的方程的解:> >
45、;dsolve('Dy=1+yA2','y(0)=1')%addaninitialconditiony=tan(t+1/4*pi)指定独立变量:> >dsolve('Dy=1+yA2','y(0)=1','v')%findsolutiontody/dvans=tan(v+1/4*pi)例2:求二阶微分方程的解,方程有两个初始条件:,2.dydy-=cos(2x)-y(0)=0y(0)=1>>y=dsolve('D2y=cos(2*x)-y','Dy(0)=0'
46、,'y(0)=1','x')y=(1/6*cos(3*x)-1/2*cos(x)*cos(x)+(1/2*sin(x)+1/6*sin(3*x)*sin(x)+4/3*cos(x)> >y=simple(y)%ylookslikeitcanbesimplifiedy=-1/3*cos(2*x)+4/3*cos(x)例3:求解下列形式的微分方程,2,-y=0dydydx2dx通解为:>>y=dsolve('D2y-2*Dy-3*y=0','x')y=C1*exp(-x)+C2*exp(3*x)加上初始条件:y
47、(0)=0和y(1)=1可得到:> >y=dsolve('D2y-2*Dy-3*y=0','y(0)=0','y(1)=1','x')y=1/(exp(-1)-exp(3)*exp(-x)-1/(exp(-1)-exp(3)*exp(3*x)> >y=simple(y)%thislookslikeacandidateforsimplificationy=(exp(-x)-exp(3*x)/(exp(-1)-exp(3)> >pretty(y)%prettyitupexp(-x)-exp(3x)e
48、xp(3)-exp(-1)小结卜列各表综合了符号数学工具箱的特性:符号表达式的运算eval符号到数值的转换Pretty显示悦目的符号输出Subs替代子表达式Sym建立符号矩阵或表达式Symadd符号加法Symdiv符号除法Symmul符号乘法Symop符号运算Sympow符号表达式的嘉运算Symrat有理近似Symsub符号减法Symvar求符号变量符号表达式的简化Collect合并同类项ExpandWFactor因式Simple求解最简形式Simplify简化symsum和级数符号多项式CharpolyHornerNumdenpoly2symsym2poly特征多项式秋套多项式表小分子或分母
49、的提取多项4向量到符号的转换符号到多项4向量的转换符号微积分Diff微分Int积分Jordan约当标准形Taylor泰勒级数展开符号可变精度算术Digits设置可变精度Vpa可变精度计算求解符号方程Compose函数的复合Dsolve微分方程的求解Finverse函数逆Linsolve齐次线性方程组的求解Solve代数方程的求解符号线性代数Charploy特征多项式Determ矩阵行列式的值Eigensys特征值和特征向量Inverse矩阵逆Jordan约当标准形Linsolve齐次线性方程组的解Transpose矩阵的转置离散信号的表示法第三章函数绘图数据图形能使视觉感官直接感受到数据的许多
50、内在本质,发现数据的内在联系。MATLAB可以表达出数据的二维,三维,甚至四维的图形。第1节二维图形、基本平面图形绘制命令:plot功能线性二维图。格式plot(X,'s')X为实向量的时候,以该向量元素的下标为横坐标,元素值为纵坐标,绘出一条连续曲线。plot(X,Y)X,Y为同维向量时,绘制以X、Y元素为横、纵坐标的曲线。X为向量,Y为一维或多维矩阵时,绘出多条不同颜色的曲线。X为这些曲线共同的横坐标。plot(Y):Y的维数为m,则plot(Y)等价于plot(x,Y),其中x=1:mplot(X1,Y1,X2,Y2,”其中Xi与Yi成对出现plot(X1,Y1,Line
51、Spec1,X2,Y2,LineSpec2)将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符号,和画线用的颜色。可混合使用三参数和二参数的形式:plot(X1,Y1,LineSpec1,X2,Y2,X3,Y3,LineSpec3)plot(,'PropertyName',PropertyValue,)对图形对象中指定的属性进行设置。h=plot()返回line图形对象句柄的一列向量,一线条对应一句柄值。允许用户对线条定义的属性1 .线型定义符-:-.线型实线(缺省值)划线点线点划线2 .线条宽度'Lin
52、eWidth'指定线条的宽度,取值为整数(单位为像素点)3 .颜色定义符R(red)G(green)b(blue)c(cyan)颜色红色绿色色定义符M(magenta)y(yellow)k(black)w(white)颜色品红原;色黑色白色4 .标记类型定义符+O(字母)*.x标记类型加号小圆圈星号实占八、交叉号定义符dAv><标记类型棱形向上三角形问卜二角形向右二角形向左二角形定义符shP标记类型止方形正六角星正五角星5 .标记大小:'MarkerSize'指定标记符号的大小尺寸,取值为整数(单位为像素)6 .标记面填充颜色'MarkerFaceC
53、olor'指定用于填充标记符面的颜色。取值见上表。7 .标记周边颜色MarkerEdgeColor'指定标记符颜色或者是标记符(小圆圈、正方形、棱形、正五角星、正六角星和四个方向的三角形)周边线条的颜色。取值见上表。坐标轴的设置创建图形时,用户可以制定坐标的范围、数据间隔及坐标名称。用命令axis可以控制坐标轴的刻度及形式。axisXmin,Xmax,Ymin,Ymax直角坐标图形的纵横比在默认的情况下与窗口纵横比相同,用axis可以控制图形纵横比的格式如下:axisaquare:将两个轴的长度设置为相等;axisequal:将坐标轴的标记检举设置为相等;axisequalti
54、ght:将图形以紧缩的方式显示。例:t=(pi*(0:1000)/1000);y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);plot(t,y1);axis(0,pi,-1,-1)图形标志图形标志包括图名、坐标轴名、图形注释和图例,常用格式如下:Title(s):书写图名;Xlable(s):横坐标轴名;Ylable(s):纵坐标轴名;Legend(s1,s2,):绘制曲线所用线型、色彩或数据点形图例;Text(xt,yt,s):在图面(xt,yt)坐标处书写字符注释。多子图Matlab允许用户在同一图形框内布置几幅独立的子图。subplot(m,n,
55、k)%使m*n幅子图中的第k幅成为当前图。图形中有m*n幅图,k是子图的编号。子图的序号原则是:左上方为第一幅,向右、下依次排号。subplot产生的子图相互独立,所有绘图指令均可以在子图中应用。参数LineSpec的说明:参数LineSepc可以定义线条的三个属性:线型、标记符号和颜色。对线条的上述属性的定义用字符串来定义,如:plot(x,y,'-.or'),表示画点划线(-.),在数据点(x,y)处画出小圆圈(o),线和标记都用红色画出。注:字符串中的字母、符号可任意组合。若仅仅指定了标记符,而没有指定非线型,则plot只在数据点画出标记符,如:plot(x,y,'
56、;d)例1>>t=0:pi/20:2*pi;plot(t,t.*cos(t),'-.r*')holdonplot(exp(t/100).*sin(t-pi/2),'-mo')plot(sin(t-pi),':bs')>>holdoff例2>>t=1:0.1:10plot(t,sin(2*t),'-mo','LineWidth',2,.'MarkerEdgeColor','k',.'MarkerFaceColor',0.49,1,0.
57、63,.'MarkerSize',5)元函数y=f(x)的绘图命令fplotfplot采用自适应步长控制来画出函数function的示意图,在函数的变化激烈的区间,采用小的步长,否则采用大的步长。总之,使计算量与时间最小,图形尽可能精确。注意:必须是函数,可以是一个m-文件函数或者是一个包含符号变量的函数,如:'sin(x)*exp(2*x),”sin(x),cos(x)。'格式:fplot('function',limits)在指定白范围limits内画出一元函数图形。其中limits是一个指定x-轴范围的向量xminxmax或者是x轴和y轴的
58、范围的向量xminxmaxyminymax。fplot('function',limits,LineSpec)用指定的线型LineSpec画出函数function。fplot('function',limits,tol)用相对误差值为tol画出函数function。相对误差的缺省值为2e-3ofplot('function',limits,tol,LineSpec)用指定的相对误差值tol和指定的线型LineSpec画出函数function的图形。fplot('function',limits,n)当n>=1,则至少画出n+1个点(即至少把范围limits分成n个小区间),最大步长不超过(xmax-xmin)/n。fplot('function',lims,许可选参数tol,n和LineSpec以任意组合方式输入。X,Y=fplot('function',limits,)返回横坐标与纵坐标的值给变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年玻璃制品采购合同
- 2024年物业服务与社区文化活动策划委托合同3篇
- 《背影》课时教案模板
- 拟定财务的个人工作计划大全
- 2024山东基础软件服务市场前景及投资研究报告
- 产科工作计划
- 初中教师年终教学计划五篇
- 幼儿园实习自我总结十篇
- 内勤个人工作计划10篇
- 关于教师一级述职报告3篇
- 2025年国家图书馆招聘笔试参考题库含答案解析
- 机器人课程课程设计
- 南充市市级事业单位2024年公招人员拟聘人员历年管理单位遴选500模拟题附带答案详解
- 安全知识考试题库500题(含答案)
- 员工投诉表格样板
- 基础工程施工月进度计划表
- 危险性较大的分部分项工程专家论证表
- 2021-2022学年上海市闵行区五年级上学期期末语文试卷
- 人教版五年级上册数学组合图形的面积同步练习
- 2018级成考专升本汉语言文学专业12月份考试资料文献学复习资料
- 最新中考英语单词表2200个
评论
0/150
提交评论