MATLAB函数使用.doc_第1页
MATLAB函数使用.doc_第2页
MATLAB函数使用.doc_第3页
MATLAB函数使用.doc_第4页
MATLAB函数使用.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

syms z f=0.632*z2/(z3-1.736*z2+1.104*z-0.368)f =79/125*z2/(z3-217/125*z2+138/125*z-46/125) r=taylor(f)r =-79/46*z2-237/46*z3-15563/2116*z4-5135/2116*z5 r=vpa(r,3)r =-1.72*z2-5.15*z3-7.35*z4-2.43*z5如果你是想展开成负指数形式: 复制内容到剪贴板 代码:clear;clc;syms zf=0.632*z2/(z3-1.736*z2+1.104*z-0.368);r1=subs(f,z,1/z);r1=taylor(r1);r1=subs(r1,z,1/z)disp(或者)syms zf=0.632*z2/(z3-1.736*z2+1.104*z-0.368);r2=subs(taylor(subs(f,z,1/z),z,1/z)结果: 复制内容到剪贴板 代码:r1 =79/125/z+17143/15625/z2+2357281/1953125/z3+272594477/244140625/z4+30811435509/30517578125/z5或者r2 =79/125/z+17143/15625/z2+2357281/1953125/z3+272594477/244140625/z4+30811435509/30517578125/z5化简: 复制内容到剪贴板 代码:r1=vpa(r1,3)r2=vpa(r2,3)r1 =.632/z+1.10/z2+1.21/z3+1.12/z4+1.01/z5r2 =.632/z+1.10/z2+1.21/z3+1.12/z4+1.01/z5小整理:适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting) length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度 sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 如何在matlab中调用maple(不用安装maple软件就可调用)方法1:maple(maplestatement)其中maplestatement是完整的maple语句,由一条或几条命令组成,必须符合maple的语法方法2:maple(function,arg1, arg2,)其中function为maple中的函数名称,arg1, arg2,是函数function所用的参数。注:如果方法1行不通,可尝试方法2(个人经验)。基本代数部分如何用matlab求阶乘factorial(n)求n的阶乘如何用matlab配方没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下:首先加载maple中的student函数库,加载方法为:maple(with(student)然后运行maple中的配方命令,格式为:maple(completesquare(f)把f配方,其中f为代数表达式或代数方程maple(completesquare(f,x))把f按指定的变量x配方,其中f同上maple(completesquare(f,x,y,))把f按指定的变量x,y,配方maple(completesquare(f,x,y,))把f按指定的变量x,y,配方,如何用matlab进行多项式运算(1)合并同类项syms 表达式中包含的变量collect(表达式,指定的变量)(2)因式分解syms 表达式中包含的变量factor(表达式)(3)展开syms 表达式中包含的变量expand(表达式)我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(maple中多项式的运算命令)如何用matlab进行分式运算发现matlab只有一条处理分式问题的命令,其使用格式如下:n,d=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式不过我们可以调用maple的命令,调用方法如下:maple(denom(f)提取分式f的分母maple(numer(f))提取分式f的分子maple(normal(f) )把分式f的分子与分母约分成最简形式maple(expand(f))把分式f的分子展开,分母不变且被看成单项。maple(factor(f))把分式f的分母和分子因式分解,并进行约分。如何用Matlab进行因式分解syms表达式中包含的变量factor(表达式)如何用Matlab展开syms表达式中包含的变量expand(表达式)如何用Matlab进行化简syms表达式中包含的变量simplify(表达式)如何用Matlab合并同类项syms表达式中包含的变量collect(表达式,指定的变量)如何用Matlab进行数学式的转换调用Maple中数学式的转换命令,调用格式如下:maple(Maple的数学式转换命令)即:maple(convert(表达式,form)将表达式转换成form的表示方式maple(convert(表达式,form, x)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用)如何用Matlab进行变量替换syms表达式和代换式中包含的所有变量subs(表达式,要替换的变量或式子,代换式)如何用matlab进行复数运算a+b*i或 a +b*j表示复数a+bi或 a+bjreal(z)求复数z的实部imag(z)求复数z的虚部abs(z)求复数z的模angle(z)求复数z的辐角,conj(z)求复数z的共轭复数exp(z)复数的指数函数,表示ez如何在matlab中表示集合a, b, c,表示由a, b, c,组成的集合(注意:元素之间也可用空格隔开)unique(A)表示集合A的最小等效集合(每个元素只出现一次)也可调用maple的命令,格式如下:maple(a, b, c,)表示由a, b, c,组成的集合下列命令可以生成特殊的集合:maple(seq(f(i),i=n.m)生成集合f(n), f(n+1), f(n+2), f(m)如何用Matlab求集合的交集、并集、差集和补集union(A,B)求集合A和B的并集intersect(A,B)求集合A和B的交集setdiff(A,B)求集合A和B的差集A-Bsetdiff(U,A)求集合A关于全集U的补集我们也可以调用Maple的相应功能,调用方法如下:maple(用Maple求集合的交集、并集、差集和补集的命令)具体地说,共有下列几个调用命令:maple( A union B )求集合A和B的并集maple( A intersect B )求集合A和B的交集maple(A minus B ) 求差集A-Bmaple( 全集I minus A )求集合A关于全集I的补集如何用matlab排序sort(v)将向量v的元素从小到大排列(升序排列)MATLAB做拉式变换2009-08-14 12:09Poly(vector1)Conv(vector1,vector2)Roots(vector1)Residue(num,den)Syms: symbolic objectsLaplace()Interp1(y,t,0.1)s=tf(s)G=1/s2G_z=c2d(G,0.1,zoh)num,den=tfdata(G_z,v)Tf2ss(num,den) 利用Matlab实现多项式互质分解的Euclid算法摘要:利用多项式工具箱实现Euclid算法,完成了基于Matlab语言的系统特征多项式互质分解。目前的Matlab鲁棒控制工具箱主要是针对状态空间矩阵描述方法而设计的,而对于单输入单输出(SISO)系统,在经典控制理论和工程中都更习惯采用传递函数形式来分析与综合系统。因此,开发针对多项式的鲁棒控制工具,可更好地将鲁棒控制思想应用于工程实践。在SISO系统鲁棒控制器设计过程中,首先一步就是对系统的特征多项式进行互质分解,利用Euclid算法1可实现。在计算过程中需要进行多项式的四则运算及求解余数多项式,计算量较大,手算时易出错。而利用其他语言实现多项式的四则运算,首先要自己编写多项式的运算规则,前期准备工作多。本文利用2处所提供的多项式运算工具箱中给出的多项式四则运算函数,在Matlab中通过Euclid算法实现了多项式互质分解,提高了控制器设计的效率,值得推广。1 互质分解对于如图1所示的单位反馈系统,这里的P是严格正则的(传函分母阶次大于分子阶次),C是正则的(传函分母阶次大于等于分子阶次)。图1:单位反馈系统现在假定P是不稳定的,我们想要找到一个可镇定的C。现作如下尝试,将P写成互质多项式比的形式,有P=N/M根据Euclid算法可得其他两个多项式X、Y,满足方程NX+MY=1Euclid算法计算两个给定的多项式n(),m()的最大公约数。当n和m是互质的,该算法可以计算x()和y()满足nx+my=1步骤A:Euclid算法输入:多项式n,m初始化:如果阶次n阶次m不成立,交换n和m。第1步 用m除n得商q1和余式r1:n=mq1+r1,阶次r1阶次m。第2步 用r1除m得商q2和余式r2:m=r1q2+r2,阶次r2阶次r1。第3步 用r2除r1:r1=r2q3+r3,阶次r3阶次r2。继续。当rk为非零常数,在第k步结束。下面的例子说明如何求得x和y 。这里k=3。方程如下:n=mq1+r1,m=r1q2+r2,r1=r2q3+r3,即解出r3(如用高斯消去法):r3=(1+q2q3)n+-q3-q1(1+q2q3)m取x=(1+q2q3)/r3, y=-q3-q1(1+q2q3)/r3例题 对于n()= 2,m()=625+1,算法如下:q1()=1/6, r1()=5/6-1/6, q2()=36/5-114/25, r2()=6/25由于r2是一非零常数,故在第2步结束,方程为n=mq1+r1m=r1q2+r2解得r2=(1+q1q2)mq2n因此取x=-q2/r2, y=(1+q1q2)/r2即x()=30+19, y()=5+1下面是做G的互质分解的步骤,主要思路是做变量代换,即s,以使的多项式对应于稳定的、正则的、实有理的函数。步骤B输入:G第1步 如果G是稳定的,取N=G,M=1,X=0,Y=1,停止。否则继续。第2步 利用映射s=(1)/ 将G(s)变换成()。将写成互质多项式的比:G()=n()/m()第3步 利用Euclid算法,求得多项式x(),y()使得nx+my=1第4步 利用映射=1/(s+1),将n(),m(),x(),y()变换成N(s),M(s),X(s),Y(s)。此步骤中利用的映射并不唯一。但必须保证n,m,x,y映射到N,M,X,Y后,它们属于稳定的、正则的、实有理的函数。2 利用Matlab实现互质分解利用2提供的多项式运算工具箱,可进行加、减、乘、除等多项式运算。通过在matlab中编程实现了上述步骤A中的多项式互质分解的Euclid算法。其中polyadd为多项式加;polysub为多项式减;polymul为多项式乘;polydiv为多项式除。对于上面的例题用如下程序可解n=-1 1 0;m=18 -29 10;q1,r1=deconv(n,m);r1=polysub(n,polymul(q1,m); q2,r2=deconv(m,r1);r2=polysub(m,polymul(q2,r1);x,r3=deconv(q2,r2);y,r4=deconv(polyadd(1,polymul(q1,q2),r2);-xy现在再来看一个k=3的例子。设p(s)=s/(s-1)(10s+1)代入映射s=(1)/ 后n()=2+,m()=18229+10利用如下程序n=-1 1 0;m=18 -29 10;q1=polydiv(n,m)r1=polysub(n,polymul(q1,m) q2=polydiv(m,r1)r2=polysub(m,polymul(q2,r1)x=-polydiv(q2,r2)y=polydiv(polyadd(1,polymul(q1,q2),r2)解得x()=19.8+13.9,y()=1.1+0.1再代入映射=1/(s+1),得X (s)=(13.9-5.9)/(s+1), Y(s)=(0.1s-1)/(s+1)再通过如下程序得到可镇定系统的控制器C。X=tf(13.9 -5.9,1 1);Y=tf(0.1 -1,1 1);C=minreal(X/Y)C(s)=(139s-59)/(s-10)第3讲 MATLAB的符号计算2008-12-03 08:57MATLAB是一种强大的数学计算软件,它能进行数值计算和符号计算。符号计算是对还没有赋值的符号,如常数、变量、表达式等,进行运算处理。它的优点是:运算准确,能得到封闭解。符号运算可以实现微积分运算、表达式的化简、积分变换、求解代数方程和微分方程等多种功能。3.1 符号表达式的建立数值计算中的变量必须被赋值,符号计算中的变量必须被说明。(1)说明符号常量的方法:定义符号常量的命令是:sym(w1),例如:sym(tan(pi/3)把符号转成对应的数字的命令是:sym(w1),例如:sym(tan(pi/3),sym(tan(pi/3),d)(2)创建符号变量和表达式的方法定义符号变量和符号表达式的命令是:sym(x)和syms x y z例如:x=sym(x),%定义单个符号是符号变量y=sin(x)*cos(x)+cos(x)*sin(x),%计算符号表达式有多个符号变量的时候:syms a b c t;%定义多个符号变量r1=solve(a*t2+b*t+c=0),%解单引号中的一元二次方程的根还可以用下面的方法求解方程的根:syms x a b c;y=a*x2+b*x+c;r=solve(y)(3)创建符号矩阵的方法:用命令sym或syms可以创建符号矩阵,A=sym(a,b;c,d),syms x y z;B=x+3*x,5*z+6*z;y-y,z/z,3.2 符号表达式的代数运算例题1. 已知二元一次方程组请求出它的解。解:(1)先写出它的数学模型,用矩阵的形式表示为或者 (2)然后用MATLAB语言写出它的程序表达式,A=sym(a11,a12;a21,a22),B=sym(b1;b2),X=AB(3)程序的运行结果是X = (a22*b1-b2*a12)/(-a21*a12+a11*a22)-(a21*b1-a11*b2)/(-a21*a12+a11*a22)3.3 符号表达式的操作和表达式的转换表达式的操作是指确定表达式中的自变量,展开、因式分解或化简表达式。例题2. 请用MATLAB将表达式化简成通俗的形式。解 程序如下:syms a b ty=sin(a+b)*t)+sin(a-b)*t)pretty(y)expand(y)例题3. 请用MATLAB因式分解表达式解 程序如下:syms x;f=x3-6*x2+11*x-6,y=factor(f)例题4. 拟合是指用一个多项式来表示一组数据的变化规律,其准则是什么?有一组温室温度的变化数据,当时间t=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10小时时,温室的温度f=14, 15, 16, 15, 15, 17, 19, 20, 22, 24, 25。请用一个合适的多项式来表示它的变化规律。解:先写出MATLAB的程序t=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;%设置时间变量f=14, 15, 16, 15, 15, 17, 19, 20, 22, 24, 25;%设置温度变量plot(t,f);grid;hold on;%画出温度随时间变化的曲线并保持它n=1;%设置用来模拟温度变化的多项式的阶数order=n,阶%用元胞数组写出多项式的阶数p=polyfit(t,f,n)%计算模拟温度变化的多项式的系数矩阵y=polyval(p,t);%计算这个多项式的函数值plot(t,y,r);%画出模拟多项式的红色曲线y=poly2sym(p)%将多项式的按降幂排列的行向量转换成符号表达式pretty(y)%把多项是写成常见的格式3.4 符号极限、微积分和级数求和(1)求极限时,用函数limit。采用help limit来查看符号极限的基本函数和使用方法,syms x a t h; limit(sin(x)/x) returns 1 limit(x-2)/(x2-4),2) returns 1/4 limit(1+2*t/x)(3*x),x,inf) returns exp(6*t) limit(1/x,x,0,right) returns inf limit(1/x,x,0,left) returns -inf limit(sin(x+h)-sin(x)/h,h,0) returns cos(x) v = (1 + a/x)x, exp(-x); limit(v,x,inf,left) returns exp(a), 0(2)求微分时,用函数diff。可以参考书上的例题3.15:f=sym(a*x2+b*x+c)diff(f)diff(f,a)diff(f,x,2)diff(f,3)(3)求积分时,用函数int。可以参考书上的例题3.16续:syms t x;int(g)g=2*x t2;t*sin(x) exp(x)int(g,a,b)3.5 符号方程的求解代数方程的求解用函数solve。例题5. 已知二元一次方程组请求出它的解。解:该题和例题1.是相同的内容,其MATLAB程序如下,eq1=sym(a11*x1+a12*x2=b1);eq2=sym(a21*x1+a22*x2=b2);x1,x2=solve(eq1,eq2)结果是一样的。3.6 符号函数的可视化1. 绘制符号函数的曲线的命令在一般画图命令的前面加上前缀“ez”即可,“ez”表示容易使用“easy”的含义。例题5. 已知一元二次方程请画出它在-1,1的曲线。解:该题的MATLAB程序是ezplot(sym(2*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论