MATLAB的图形用户界面设计在非线性系统中的应用精品资料.doc
MATLAB的图形用户界面设计在非线性系统中的应用1 MATLAB简介 1. MATLAB的概况MATLAB是矩阵实验室(MatrixLaboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.当前流行的MATLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.2. MATLAB产生的历史背景在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FOETRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序.Cleve Moler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(labotatory)两个英文单词的前三个字母的组合.在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传.1983年春天,Cleve Moler到Standford大学讲学,MATLAB深深地吸引了工程师John Little.John Little敏锐地觉察到MATLAB在工程领域的广阔前景.同年,他和Cleve Moler,Steve Bangert一起,用C语言开发了第二代专业版.这一代的MATLAB语言同时具备了数值计算和数据图示化的功能.1984年,Cleve Moler和John Little成立了Math Works公司,正式把MATLAB推向市场,并继续进行MATLAB的研究和开发.在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类.一类是数值计算型软件,如MATLAB,Xmath,Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件MATLAB.经过多年的国际竞争,MATLAB以经占据了数值软件市场的主导地位.在MATLAB进入市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。MATLAB的出现,为各国科学家开发学科软件提供了新的基础。在MATLAB问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。MathWorks公司1993年推出了MATLAB 4。0版,1995年推出4。2C版(for win3。X)1997年推出5。0版。1999年推出5。3版。MATLAB 5。X较MATLAB 4。X无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,在Netscape 3。0或IE 4。0及以上版本,Acrobat Reader中可以方便地浏览。时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程界,MATLAB一定会盛行起来。可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。2MATLAB的语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。1)。语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。具有FORTRAN和C等高级语言知识的读者可能已经注意到,如果用FORTRAN或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试动不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用FORTRAN和C这样的高级语言编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下用MATLAB编写以上两个小程序的具体过程。MATLAB求解下列方程,并求解矩阵A的特征值。Ax=b,其中:A= 32 13 45 67 23 79 85 12 43 23 54 65 98 34 71 35b= 1 2 3 4解为:x=Ab;设A的特征值组成的向量e,e=eig(A)。可见,MATLAB的程序极其简短。更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。4)程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6)MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。8)功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control,toolbox,signl proceessing toolbox,commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。9)源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。第二章 非线性系统简介自动控制理论中研究非线性系统的运动规律和分析方法的一个分支。严格说,现实中的一切系统都是非线性系统,线性系统只是为了数学处理上的简化而导出的一种理想化的模型。非线性系统的一个最重要的特性是不能采用叠加原理来进行分析,这就决定了在研究上的复杂性。非线性系统理论远不如线性系统理论成熟和完整。由于数学处理上的困难,所以至今还没有一种通用的方法可用来处理所有类型的非线性系统。 非线性现象非线性系统理论的研究对象是非线性现象,它是反映非线性系统运动本质的一类现象,不能采用线性系统的理论来解释。主要的非线性现象有频率对振幅的依赖性、多值响应和跳跃谐振、分谐波振荡、自激振荡、频率捕捉、异步抑制、分岔和混沌等。 频率对振幅的依赖性 这种非线性现象只出现在一类非线性系统的自由振荡中。一个著名例子是由杜芬方程 m尦 + f凧 + kx + k'x30所描述的一类机械系统(图1)的自由振荡。式中m是重物的质量,x是重物的位移,凧和尦分别是x的一阶和二阶导数,f是阻尼器的粘性摩擦系数,kx+k'x3表示非线性弹簧力。参数 m、f 和k均为正的常数。参数k'为正时称为硬弹簧,k' 为负时称为软弹簧。使重物有一个初始位移后,系统即产生自由振荡。从实验中可观察到:在k'为正时,随着自由振荡振幅的减小,频率值增大;在k'为负时,随自由振荡的振幅减小,频率值减小。图2中:k'0时的波形有7个峰,且间距相等,表明频率不随振幅的减小而变,k'0时达到第7个峰的时间较k'0时的短;表明频率随振幅的减小而增加;k'0时在相同的时间内只有6个波表明频率随振幅的减小而减小。 非线性系统理论 非线性系统理论 非线性系统理论多值响应和跳跃谐振 这种非线性现象出现在一类非线性系统的强迫振荡中。一个典型例子是在如图1的系统的重物上加形式为 Pcost 的外力时所激发的强迫振荡。实验时,让外力作用函数的振幅P保持常值,缓慢地改变频率,观察重物作强迫振荡时的振幅X。反映多值响应和跳跃谐振的特性曲线如图3。当频率增大到某个极限值(如点2)或减小到某个极限值(如点5)时,强迫振荡的振幅X都会产生跳跃现象;而在这两个极限值所限定的频率范围内,对于同一频率的外作用函数,可能出现两个在幅值和相位上都不相同的强迫振荡。 分谐波振荡 这种非线性现象只出现在某些非线性系统的稳态振荡中。分谐波振荡被激发后,在一定的频率范围内,不管外作用函数的频率如何改变,稳态振荡的频率始终为/n,其中n为某个正整数称为分谐波振荡的阶数。分谐波振荡的产生取决于系统的参数,并且必须在某种冲击,如突然改变外作用函数的振幅或频率。 自激振荡 又称极限环,是非线性系统中一类很重要的和得到广泛研究的非线性现象(见相平面法)。 频率捕捉 这种非线性现象可能在出现极限环的一些非线性系统中观察到。对一个能出现频率为0的极限环的系统,加上一个频率为的周期性外作用,改变(增大或减小)的数值使两者的差值减小。从实验中发现,在差值达到某个极限值后,极限环的频率0和外作用频率取得同步,亦即0为所捕捉。发生捕捉现象的频带区称为捕捉区。表示频率捕捉现象的特性曲线如图4,横坐标上的区间为捕捉区。 异步抑制 又称信号稳定。其机制是,采用使系统处于频率为1的强迫振荡状态,来抑制和避免系统中可能出现的频率为 0的极限环振荡。这里两个频率1和0是互不相关的。 分岔 在很多实际系统中都能见到的,运动稳态点会随着系统参数变动到临界值而不断发生分岔的一种非线性现象(见分岔理论)。 混沌 1963年气象学家E.N.洛伦茨在研究天气预报问题的大气对流模型的数值实验中首先发现的一种非线性现象。其特点是某些非线性系统在一定参数范围内变得对初始条件非常敏感,会导致非周期的、看起来很混乱的输出。后来,在生态系统等研究中也发现混沌现象。80年代以来,关于混沌的研究已成为一个非常活跃的领域,得到了一些严格的数学结果,但更多的是计算机实验,真正的物理实验也在日益增多。 主要分析方法对于非线性系统尚未建立起象线性系统的分析那样成熟和系统的一套方法,在应用上比较有效的主要方法有四种。 等效线性化方法 主要用于分析非线性程度较低的非线性系统。其实质是把非线性问题近似地加以线性化,然后去解决已线性化的问题。描述函数法、分段线性化法、小参数法等都属于这种方法。 直接分析方法 建立在直接处理系统的实际的或简化后的非线性微分方程基础上的分析方法,不管非线性程度的高低都可适用。相平面法、李雅普诺夫第二方法(见李雅普诺夫稳定性理论)等都属于这种方法。 双线性系统理论 对于双线性系统这一特殊类型非线性系统建立的分析和综合方法。 流形上的控制理论 这一理论的发展始于70年代初期,它是以微分几何为主要数学工具的一种分析方法。流形上的控制理论为非线性系统的研究提供了一条新的途径,可用以研究非线性系统的某些全局和局部性质。 发展趋势60年代以来,非线性系统理论的发展进入了一个新阶段。对分岔现象和混沌现象的研究已成为非线性系统理论中很受重视的一个方向。突变理论、耗散结构理论和协同学这些也以非线性系统为研究对象的新兴学科相继出现,它们的方法和结果将对非线性系统理论乃至整个系统科学产生重要影响。此外,随着微分几何方法(特别是微分流形理论)引入于非线性系统的研究并得到了某些有意义的结果,非线性泛函分析、奇异摄动方法和大范围分析等现代数学分支也已开始用于非线性系统理论的研究。 第三章 非线性系统仿真举例1、状态反馈与极点配置状态反馈是指从状态变量到控制端的反馈,如图3所示。设原系统动态方程为: 引入状态反馈后,系统的动态方程为: 图1 状态反馈状态反馈极点配置问题就是:通过状态反馈矩阵K的选取,使闭环系统式(4.2)的极点,即的特征值恰好处于所希望的一组给定闭环极点的位置上。线性定常系统可以用状态反馈任意配置极点的充分必要条件是:该系统必须是完全能控的。所以,在实现极点的任意配置之前,必须判别受控系统的能控性。 例1 已知有以下系统希望将闭环系统的极点配置在S1,2,3,4=-1,-2,-1+j,-1-j解:参考程序:A=-5 8 0 0;-4 7 0 0;0 0 0 4;0 0 -2 6; B=4;-2;2; 1; P=-1,-2,-1+sqrt(-1),-1-sqrt(-1);K=place(A,B,P)运行结果:? Error using => placeCan't place eigenvalues there. 说明:对于不完全可控的系统,解决办法:将系统分解成可控部分和不可控部分,可控部分可以将极点配置到任意的位置。2、输出反馈与极点配置输出反馈指从输出端到状态变量导数的反馈,如图4所示。设原系统动态方程为:引入输出反馈后,系统的动态方程为: 图2 输出反馈极点配置算法:Ackerman算法 K=acker (A,B,P)鲁棒算法 K=place (A,B,P) 函数place( )不适用于含有多重期望极点的配置问题。例2 已知对象模型 如何将闭环系统的极点配置在s1,2,3,4= -1,-2,-1±j?-参考程序:>> A=0 1 0 0;0 0 -1 0;0 0 0 1;0 0 11 0; B=0;1;0;-1; eig(A)' %特征值P=-1, -2, -1+sqrt(-1), -1-sqrt(-1);K=place (A,B,P) %极点配置eig(A-B*K)'运行结果:ans = 0 0 3.3166 -3.3166K = -0.4000 -1.0000 -21.4000 -6.0000ans = -2.0000 -1.0000 - 1.0000i -1.0000 + 1.0000i -1.0000 -可以看出,受控系统的极点位置确定位于0,0,3.3166,-3.3166,即该受控系统是不稳定的。应用极点配置技术,我们可以将系统的闭环极点配置到某些期望的位置上,从而使得闭环系统得到稳定,并同时得到较好的动态特性。 例3 已知对象模型 利用MATLAB实现将其中的两个极点配置到。-本题程序参考:A=0,1,0,0;0,5,0,0;0,0,-7,0;0,0,0,-8; b=1;1;3;4;c=0,5,0,8; p=eig(A)' p1=p p1(1:2)=-1,-2 K1=place(A,b,p1)eig(A-b*K1)'运行结果:p = 0 5 -7 -8p1 = 0 5 -7 -8p1 = -1 -2 -7 -8K1 = -0.5000 8.5000 0.0000 0ans = -8.0000 -1.0000 -2.0000 -7.0000如果需要配置三个极点,则例如p2=p;p2(1:3)=-1,-2,-3; K2=place(A,b,p2),eig(A-b*K2)', -如果受控系统并不是完全能控的,那么我们只能将其中能控的极点配置到指定的位置,称为部分极点配置问题,而实现部分极点配置的前提条件是:受控系统没有重极点。 结论:对受控系统中不可控的模态而言,若其是不稳定的,则我们不可能通过状态反馈的方法将其变成稳定的模态。 例4 已知对象模型(1) 如果我们想将闭环系统的极点配置到-1,-2,-3,利用MATLAB设计控制器,并绘出闭环系统的阶跃响应曲线。(说明:用两种方法配置极点)参考程序一:>> A=-0.3 0.1 -0.05;1 0.1 0;-1.5 -8.9 -0.05 ; B=2;0;4; C=1 2 3;P=-1, -2, -3; K=place (A',C',P)'运行结果:K = -0.1731 -0.3681 2.2197参考程序二:A=-0.3 0.1 -0.05;1 0.1 0;-1.5 -8.9 -0.05 ; B=2;0;4; C=1 2 3;P=-1, -2, -3; K=acker (A',C',P)'运行结果:K = -0.1731 -0.3681 2.2197例5 以试验三磁悬浮模型为研究对象,如何通过状态反馈配置极点,改善系统的性能。num=1den=1 40 20.5 -157552a,b,c,d=tf2ss(num,den)G=ss(a,b,c,d)y,t,x=step(G)p=-2;-1+sqrt(-1);-1-sqrt(-1)k=place(a,b,p)eig(a-b*k)cn=b,a*b,a2*brank(cn)a1=a-b*kg1=ss(a1,b,c,d)y,t=step(g1)plot(t,y)本文主要讨论了MATLAB在非线性控制系统仿真的应用。MATLAB具有强大的作图和数据可视化功能。可以把数据以多种形式加以表现,非常简单直观方便,是科学和工程计算的有力工具。参考文献1吴麒.自动控制原理.北京:清华大学出版社.20042孙祥等.MATLAB7.0基础教程.北京:清华大学出版社.20053胡寿松.自动控制原理.北京:科学出版社.20014黄忠霖.MATLAB计算及仿真实训.北京:国防的工业出版社.20065魏克新.MATLAB语言与自动控系统设计.北京:机械工业出版社.1997附录资料:MATLAB的30个方法1 内部常数pi 圆周率 exp(1)自然对数的底数ei 或j 虚数单位Inf或 inf 无穷大 2 数学运算符a+b 加法a-b减法a*b矩阵乘法a.*b数组乘法a/b矩阵右除ab矩阵左除a./b数组右除a.b数组左除ab 矩阵乘方a.b数组乘方-a负号' 共轭转置.'一般转置3 关系运算符=等于<小于>大于<=小于或等于>=大于或等于=不等于4 常用内部数学函数 指数函数exp(x)以e为底数对数函数log(x)自然对数,即以e为底数的对数log10(x)常用对数,即以10为底数的对数log2(x)以2为底数的x的对数开方函数sqrt(x)表示x的算术平方根绝对值函数abs(x)表示实数的绝对值以及复数的模三角函数(自变量的单位为弧度)sin(x)正弦函数cos(x)余弦函数tan(x)正切函数cot(x)余切函数sec(x)正割函数csc(x)余割函数反三角函数 asin(x)反正弦函数acos(x)反余弦函数atan(x)反正切函数acot(x)反余切函数asec(x)反正割函数acsc(x)反余割函数双曲函数 sinh(x)双曲正弦函数cosh(x)双曲余弦函数tanh(x)双曲正切函数coth(x)双曲余切函数sech(x)双曲正割函数csch(x)双曲余割函数反双曲函数 asinh(x)反双曲正弦函数acosh(x)反双曲余弦函数atanh(x)反双曲正切函数acoth(x)反双曲余切函数asech(x)反双曲正割函数acsch(x)反双曲余割函数求角度函数atan2(y,x)以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为( , 数论函数gcd(a,b)两个整数的最大公约数lcm(a,b)两个整数的最小公倍数排列组合函数factorial(n)阶乘函数,表示n的阶乘 复数函数 real(z)实部函数imag(z)虚部函数abs(z)求复数z的模angle(z)求复数z的辐角,其范围是( , conj(z)求复数z的共轭复数求整函数与截尾函数ceil(x)表示大于或等于实数x的最小整数floor(x)表示小于或等于实数x的最大整数round(x)最接近x的整数最大、最小函数max(a,b,c,)求最大数min(a,b,c,)求最小数符号函数 sign(x)5 自定义函数-调用时:“返回值列=M文件名(参数列)”function 返回变量=函数名(输入变量) 注释说明语句段(此部分可有可无)函数体语句 6进行函数的复合运算compose(f,g) 返回值为f(g(y)compose(f,g,z) 返回值为f(g(z)compose(f,g,x,.z) 返回值为f(g(z)compose(f,g,x,y,z) 返回值为f(g(z)7 因式分解syms 表达式中包含的变量 factor(表达式) 8 代数式展开syms 表达式中包含的变量 expand(表达式)9 合并同类项syms 表达式中包含的变量 collect(表达式,指定的变量)10 进行数学式化简syms 表达式中包含的变量 simplify(表达式)11 进行变量替换syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式)12 进行数学式的转换调用Maple中数学式的转换命令,调用格式如下:maple(Maple的数学式转换命令) 即:maple(convert(表达式,form)将表达式转换成form的表示方式 maple(convert(表达式,form, x) 指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 13 解方程solve(方程,变元) 注:方程的等号用普通的等号: = 14 解不等式调用maple中解不等式的命令即可,调用形式如下: maple('maple中解不等式的命令')具体说,包括以下五种:maple(' solve(不等式)') maple(' solve(不等式,变元)' ) maple(' solve(不等式,变元)' ) maple(' solve(不等式,变元)' ) maple(' solve(不等式,变元)' )15 解不等式组调用maple中解不等式组的命令即可,调用形式如下: maple('maple中解不等式组的命令') 即:maple(' solve(不等式组,变元组)' )16 画图方法:先产生横坐标的取值和相应的纵坐标的取值,然后执行命令: plot(x,y) 方法2:fplot('f(x)',xmin,xmax) fplot('f(x)',xmin,xmax,ymin,ymax) 方法3:ezplot('f(x)') ezplot('f(x)' ,xmin,xmax) ezplot('f(x)' ,xmin,xmax,ymin,ymax) 17 求极限(1) 极限:syms x limit(f(x), x, a) (2)单侧极限:左极限:syms x limit(f(x), x, a,left) 右极限:syms x limit(f(x), x, a,right) 18 求导数diff('f(x)') diff('f(x)','x') 或者:syms x diff(f(x) syms x diff(f(x), x) 19 求高阶导数 diff('f(x)',n) diff('f(x)','x',n) 或者:syms x diff(f(x),n)syms x diff(f(x), x,n) 20 在MATLAB中没有直接求隐函数导数的命令,但是我们可以根据数学中求隐函数导数的方法,在中一步一步地进行推导;也可以自己编一个求隐函数导数的小程序;不过,最简便的方法是调用Maple中求隐函数导数的命令,调用格式如下: maple('implicitdiff(f(x,y)=0,y,x)') 在MATLAB中,没有直接求参数方程确定的函数的导数的命令,只能根据参数方程确定的函数的求导公式 一步一步地进行推导;或者,干脆自己编一个小程序,应用起来会更加方便。21 求不定积分 int('f(x)') int ('f(x)','x') 或者:syms x int(f(x) syms x int(f(x), x) 22 求定积分、广义积分 int('f(x)',a,b) int ('f(x)','x',a,b) 或者:syms x int(f(x),a,b) syms x int(f(x), x,a,b) 23 进行换元积分的计算自身没有提供这一功能,但是可以调用Maple函数库中的changevar命令,调用方法如下:maple(' with(student)' ) 加载student函数库后,才能使用changevar命令maple(' changevar( m(x)=p(u), Int(f(x),x) ) ' ) 把积分表达式中的m(x)代换成p(u)24 进行分部积分的计算自身没有提供这一功能,但是可以调用Maple函数库中的intparts命令,调用方法如下: maple(' with(student)' ) 加载student函数库后,才能使用intparts命令maple('intparts(Int(f(x),x),u)' ) 指定u,用分部积分公式 进行计算 25 对数列和级数进行求和 syms n symsum(f(n), n a ,b ) 26 进行连乘 maple('product(f(n),n=a.b)')27 展开级数syms x taylor(f(x), x, n, a )28 进行积分变换syms s t laplace( f(t), t, s ) 拉普拉斯变换 ilaplace( F(s), s, t ) 拉普拉斯变换的逆变换 syms t fourier( f(t), t, ) 傅立叶变换 ifourier( F(), , t ) 傅立叶变换的逆变换 syms n z ztrans( f(n), n, z) Z变换 iztrans( F(z), z, n ) Z变换的逆变换 在matlab中,矩形法、梯形法和辛普森法求近似积分可以用自身的命令,也可调用Maple的相应命令。调用方法如下: maple('with(student) ') maple('Maple中求定积分近似值的命令')29 解微分方程dsolve('微分方程','自变量') dsolve('微分方程','初始条件或边界条件','自变量')30 解微分方程组dsolve('微分方程组','自变量') dsolve('微分方程组','初始条件或边界条件','自变量')