您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 综合/其它 > 用matlab计算微积分
Matlab符号运算特点符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。在进行符号运算时,必须先定义基本的符号对象,可以是符号常量、符号变量、符号表达式等。符号对象是一种数据结构。符号对象与符号表达式含有符号对象的表达式称为符号表达式,Matlab在内部把符号表达式表示成字符串,以与数字变量或运算相区别。1.符号对象和表达式Sym和Syms函数基本格式:Sym(数字);sym(‘变量或者表达式’)实验1:(1)a=sqrt(5)(2)a=sym(5)b=sqrt(a)实验2:(1)x=sym(‘x’)(2)a=sym(‘x*2+1’)注意:对于多个符号变量的建立,可使用’sym’,’syms’命令建立。实验3:定义方程x+y+z=1中的变量为符号变量(1)x=sym(‘x’)y=sym(‘y’)z=sym(‘z’)(2)symsxyz查找符号表达式中的符号变量查找符号变量findsym(expr)按字母顺序列出符号表达式expr中的所有符号变量findsym(expr,N)列出expr中离x最近的N个符号变量常量pi,i,j不作为符号变量例:f=sym('2*w-3*y+z^2+5*a')findsym(f)f=sym(f,2)findsym举例符号表达式的替换subs(f,x,a)用a替换字符函数f中的字符变量xa是可以是数/数值变量/表达式或字符变量/表达式若x是一个由多个字符变量组成的数组或矩阵,则a应该具有与x相同的形状的数组或矩阵。用给定的数据替换符号表达式中的指定的符号变量subs举例f=sym('2*u');subs(f,'u',2)f2=subs(f,'u','u+2')ans=4f2=2*(u+2)例:指出下面各条语句的输出结果f=2*u六类常见符号运算因式分解、展开、合并、简化及通分等计算极限计算导数计算积分符号求和代数方程和微分方程求解因式分解因式分解factor(f)symsx;f=x^6+1;factor(f)factor也可用于正整数的分解s=factor(100)factor(sym('12345678901234567890'))大整数的分解要转化成符号常量函数展开函数展开expand(f)symsx;f=(x+1)^6;expand(f)多项式展开三角函数展开symsxy;f=sin(x+y);expand(f)合并同类项合并同类项collect(f,v):按指定变量v进行合并collect(f):按默认变量进行合并symsxy;f=x^2*y+y*x-x^2+2*x;collect(f)collect(f,y)函数简化函数简化y=simple(f):对f尝试多种不同的算法进行简化,返回其中最简短的形式函数简化函数简化y=simplify(f):对f进行简化symsx;f=sin(x)^2+cos(x)^2;simplify(f)函数简化举例symsx;f=(1/x^3+6/x^2+12/x+8)^(1/3);y1=simplify(f)g1=simple(f)g2=simple(g1)多次使用simple可以达到最简表达。32381261)(xxxxf例:简化分式通分函数简化[N,D]=numden(f):N为通分后的分子,D为通分后的分母symsxy;f=x/y+y/x;[N,D]=numden(f)2.极限问题2.1单变量函数的极限调用格式为:limit(f,x,a)limit函数的另一种功能是求单边极限,其调用格式为:limit(f,x,a,‘right’)或limit(f,x,a,'left'))0(sin)1(lim1axbxaxxx求极限例解:bxbxbaxaaxx).sin.(]))(11[(lim原式abexbxaxxxsin)1(lim1求极限例symsxab;f=x*(1+a/x)^x*sin(b/x);L=limit(f,x,inf)xxexxsincos11lim230求极限例symsx;f=(exp(x^3)-1)/(1-cos(sqrt(x-sin(x))));L=limit(f,x,0,'right')2.2多变量函数的极限),(lim00yxfLyyxx调用格式为:L=limit(limit(f,x,x0),y,y0)或L=limit(limit(f,y,y0),x,x0)2222)11(sinlim32221/1yaxyxyyxyxxe求极限例symsxya;f=exp(-1/(y^2+x^2))*sin(x)^2/x^2*(1+1/y^2)^(x+a^2*y^2);L=limit(limit(f,x,1/sqrt(y)),y,inf)3.不定积分在MATLAB中,求不定积分的函数是int,其调用格式为:int(f,x)int函数求函数f对变量x的不定积分。例4求不定积分dxxx42解:dxxx21原式)1(12122xdx232)1.(32.21xcx232)1(31例4求不定积分dxxx42symsxf=sqrt(x^2+x^4);int(f,x)例5求不定积分dzzxy)sin(symsxyzint(sin(x*y+z),z)在MATLAB中,求定积分的函数是int,其调用格式为:int(f,x,a,b)int函数求函数f对变量x的定分,a,b积分区间。4.定积分symsx;int(1/(3+2*x+x^2),x,0,1)int(1/(3+2*x+x^2),x,-inf,inf)例6求积分dx,x2x31dx,x2x312102dxxxxtet2cos222)132(127求定积分例symsxt;f=(-2*x^2-3*x+1)/(2*x^2-3*x+1)^2;int(f,x,cos(t),exp(-2*t))5.导数MATLAB中的一元函数求导:diff(f,x,n)diff函数求函数f对变量x的n阶导数。)4(2,34sin8yxxxy试求出函数例symsx;y=sin(x)/(x^2+4*x+3);y1=diff(y,x,4)pretty(y1)例9在曲线y=x3+3x-2上哪一点的切线与直线y=4x-1平行。symsx;y=x^3+3*x-2;%定义曲线函数f=diff(y);%对曲线求导数g=f-4;solve(g)%求方程f-4=0的根,即求曲线何处的导数为4MATLAB中的二元函数求导:diff(diff(f,x,m),y,n)diff(diff(f,y,n),y,m)yxzxzexxzxyyx22,,)2(1022计算函数例symsxy;z=(x^2-2*x)*exp(-x^2-y^2-x*y);diff(z,x)diff(diff(z,x),y)zyxzyxfeyxzyxfzyx242),,(,)sin(),,(1122计算例symsxyz;f=sin(x^2*y)*exp(-x^2*y-z^2);diff(diff(diff(f,x,2),y),z)6.Taylor级数展开单变量函数的Taylor级数展开注1k为需要展开的项数,默认值为6项。。进行泰勒幂级数的展开项,并关于前的泰勒幂级数展开的求函数例2934sin)(122xxxxxfsymsx;f=sin(x)/(x^2+4*x+3);y1=taylor(f,x,9)y2=taylor(f,x,9,2)符号方程求解器s=solve(f,v):求方程关于指定自变量的解;s=solve(f):求方程关于默认自变量的解。f可以是用字符串表示的方程,或符号表达式;若f中不含等号,则表示解方程f=0。solve例:解方程x^3-3*x+1=0symsx;f=x^3-3*x+1;s=solve(f,x)solve也可以用来解方程组solve(f1,f2,...,fN,v1,v2,...,vN)求解由f1,f2,...,fN确定的方程组关于v1,v2,...,vN的解例:解方程组[x,y,z]=solve('x+2*y-z=27','x+z=3',...'x^2+3*y^2=28','x','y','z')222273328xyzxzxy输出变量的顺序要书写正确!solve在得不到解析解时,会给出数值解。例:解方程组[x,y,z]=solve('x+2*y-z=27','x+z=3',...'x^5+3*y^2=28','x','y','z')522273328xyzxzxy
本文标题:用matlab计算微积分
链接地址:https://www.777doc.com/doc-4052426 .html