
《MATLAB符号运算》PPT课件.ppt
29页1第第第第5 5 章章章章 MatlabMatlab符号运算符号运算符号运算符号运算 符号运算基础符号运算基础符号运算基础符号运算基础 微分运算微分运算微分运算微分运算 积分运算积分运算积分运算积分运算 积分变换积分变换积分变换积分变换 求解方程求解方程求解方程求解方程—— matlab 不仅具有不仅具有数值运算数值运算功能,还开发了在功能,还开发了在matlab环境下实现环境下实现符号运算符号运算的工具包的工具包Symbolic Math Toolbox 2要求理解要求理解matlab数值运算与符号运算的不同;学会建立符号数值运算与符号运算的不同;学会建立符号对象并应用相应对象进行各种符号运算以求得解析结果;对象并应用相应对象进行各种符号运算以求得解析结果;重点:符号表达式的运算,符号方程求解重点:符号表达式的运算,符号方程求解难点:符号微积分和积分变换。
难点:符号微积分和积分变换本本本本 章章章章 要要要要 求求求求35.1 5.1 符号运算基础符号运算基础符号运算基础符号运算基础• •符号对象的创建符号对象的创建符号对象的创建符号对象的创建• •基本的符号运算基本的符号运算基本的符号运算基本的符号运算符号运算的基本操作符号运算的基本操作符号运算的基本操作符号运算的基本操作什么是什么是什么是什么是符号运算符号运算符号运算符号运算? ?l l与数值运算的区别与数值运算的区别与数值运算的区别与数值运算的区别 ※ ※ 数值运算数值运算数值运算数值运算中必须先对变量赋值中必须先对变量赋值中必须先对变量赋值中必须先对变量赋值,然后才能参与运算然后才能参与运算然后才能参与运算然后才能参与运算 ※ ※ 符号运算符号运算符号运算符号运算无须事先对独立变量赋值无须事先对独立变量赋值无须事先对独立变量赋值无须事先对独立变量赋值,运算结果以标准,运算结果以标准,运算结果以标准,运算结果以标准的符号形式表达的符号形式表达的符号形式表达的符号形式表达4•特点:特点: 运算对象可以是没赋值的符号变量运算对象可以是没赋值的符号变量 可以获得任意精度的解可以获得任意精度的解•Symbolic Math Toolbox——符号运算工具包通过调用符号运算工具包通过调用Maple软件实现符号计算的。
软件实现符号计算的•maple软件软件——主要功能是符号运算,主要功能是符号运算, 它占据符号软件的主导地位它占据符号软件的主导地位 5一一一一. . 符号对象符号对象符号对象符号对象1. 1. 建立符号变量和符号常数建立符号变量和符号常数建立符号变量和符号常数建立符号变量和符号常数(1)(1)symsym函数函数函数函数 symsym函数用来建立单个符号量,例如,函数用来建立单个符号量,例如,函数用来建立单个符号量,例如,函数用来建立单个符号量,例如,a=sym(a=sym('a''a') )建立建立建立建立符号变量符号变量符号变量符号变量a a,,,,此后,用户可以在表达式中使用变量此后,用户可以在表达式中使用变量此后,用户可以在表达式中使用变量此后,用户可以在表达式中使用变量a a进进进进行各种运算。
行各种运算行各种运算行各种运算6考察符号变量和数值变量的差别考察符号变量和数值变量的差别考察符号变量和数值变量的差别考察符号变量和数值变量的差别 在在在在 MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:命令窗口,输入命令:命令窗口,输入命令:a=a=sym(‘a’);bsym(‘a’);b=sym(‘b’);c=sym(‘c');d=sym('d'); %=sym(‘b’);c=sym(‘c');d=sym('d'); %定义定义定义定义 4 4个符号变个符号变个符号变个符号变量量量量w=10;x=5;y=-8;z=11; %w=10;x=5;y=-8;z=11; %定义定义定义定义4 4个数值变量个数值变量个数值变量个数值变量A=[a,b;c,d] %A=[a,b;c,d] %建立符号矩阵建立符号矩阵建立符号矩阵建立符号矩阵A AB=[w,x;y,z] %B=[w,x;y,z] %建立数值矩阵建立数值矩阵建立数值矩阵建立数值矩阵B Bdet(Adet(A) %) %计算符号矩阵计算符号矩阵计算符号矩阵计算符号矩阵A A的行列式的行列式的行列式的行列式det(Bdet(B) %) %计算数值矩阵计算数值矩阵计算数值矩阵计算数值矩阵B B的行列式的行列式的行列式的行列式7比较符号常数与数值在代数运算时的差别。
比较符号常数与数值在代数运算时的差别比较符号常数与数值在代数运算时的差别比较符号常数与数值在代数运算时的差别在在在在 MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:命令窗口,输入命令:命令窗口,输入命令:pi1=sym('pi');k1=sym('8');k2=sym('2');k3=sym('3'); % pi1=sym('pi');k1=sym('8');k2=sym('2');k3=sym('3'); % 定义定义定义定义符号变量符号变量符号变量符号变量pi2=pi;r1=8;r2=2;r3=3; % pi2=pi;r1=8;r2=2;r3=3; % 定义数值变量定义数值变量定义数值变量定义数值变量A1=sin(pi1/3) % A1=sin(pi1/3) % 计算符号表达式值计算符号表达式值计算符号表达式值计算符号表达式值 A2=sin(pi2/3) % A2=sin(pi2/3) % 计算数值表达式值计算数值表达式值计算数值表达式值计算数值表达式值A3=sqrt(k1) % A3=sqrt(k1) % 计算符号表达式值计算符号表达式值计算符号表达式值计算符号表达式值A4=sqrt(r1) % A4=sqrt(r1) % 计算数值表达式值计算数值表达式值计算数值表达式值计算数值表达式值A5=sqrt(k3+sqrt(k2)) % A5=sqrt(k3+sqrt(k2)) % 计算符号表达式值计算符号表达式值计算符号表达式值计算符号表达式值A6=sqrt(r3+sqrt(r2)) % A6=sqrt(r3+sqrt(r2)) % 计算数值表达式值计算数值表达式值计算数值表达式值计算数值表达式值8(2)syms(2)syms函数函数函数函数symssyms函数的一般调用格式为:函数的一般调用格式为:函数的一般调用格式为:函数的一般调用格式为:symssyms var1 var2 … var1 var2 … varnvarn 函数定义符号变量函数定义符号变量函数定义符号变量函数定义符号变量var1,var2,…,var1,var2,…,varnvarn等。
用这种格式定等用这种格式定等用这种格式定等用这种格式定义符号变量时,变量间用空格而义符号变量时,变量间用空格而义符号变量时,变量间用空格而义符号变量时,变量间用空格而不要不要不要不要用逗号分隔用逗号分隔用逗号分隔用逗号分隔2. 2. 建立符号表达式建立符号表达式建立符号表达式建立符号表达式建立符号表达式有以下建立符号表达式有以下建立符号表达式有以下建立符号表达式有以下2 2种方法:种方法:种方法:种方法:(1) (1) 用用用用symsym函数建立符号表达式函数建立符号表达式函数建立符号表达式函数建立符号表达式 (2) (2) 使用已经定义的符号变量组成符号表达式使用已经定义的符号变量组成符号表达式使用已经定义的符号变量组成符号表达式使用已经定义的符号变量组成符号表达式910基本的符号运算基本的符号运算基本的符号运算基本的符号运算(1). (1). 符号表达式的四则运算符号表达式的四则运算符号表达式的四则运算符号表达式的四则运算l l符号表达式的四则运算和其他表达式的运算并无不同,但要符号表达式的四则运算和其他表达式的运算并无不同,但要符号表达式的四则运算和其他表达式的运算并无不同,但要符号表达式的四则运算和其他表达式的运算并无不同,但要注意,其运算结果依然是一个符号表达式。
注意,其运算结果依然是一个符号表达式注意,其运算结果依然是一个符号表达式注意,其运算结果依然是一个符号表达式2)(2).符号表达式的提取分子和分母运算.符号表达式的提取分子和分母运算.符号表达式的提取分子和分母运算.符号表达式的提取分子和分母运算 如果符号表达式是一个有理分式或可以展开为有理分式,如果符号表达式是一个有理分式或可以展开为有理分式,如果符号表达式是一个有理分式或可以展开为有理分式,如果符号表达式是一个有理分式或可以展开为有理分式,可利用可利用可利用可利用numdennumden函数来提取符号表达式中的分子或分母函数来提取符号表达式中的分子或分母函数来提取符号表达式中的分子或分母函数来提取符号表达式中的分子或分母其一般调用格式为:其一般调用格式为:其一般调用格式为:其一般调用格式为: [ [n,dn,d]=]=numden(snumden(s) ) 该函数提取符号表达式该函数提取符号表达式该函数提取符号表达式该函数提取符号表达式s s的分子和分母,分别将它们存放的分子和分母,分别将它们存放的分子和分母,分别将它们存放的分子和分母,分别将它们存放在在在在n n与与与与d d中。
中 11(3).(3).因式分解与展开因式分解与展开因式分解与展开因式分解与展开ØØcollect(fcollect(f) ) 对对对对f f合并同类项,合并同类项,合并同类项,合并同类项,f f是符号表达式或符号矩阵是符号表达式或符号矩阵是符号表达式或符号矩阵是符号表达式或符号矩阵ØØcollect(f,vcollect(f,v) ) 对对对对f f按变量按变量按变量按变量v v合并同类项,合并同类项,合并同类项,合并同类项,f f是符号表达式或是符号表达式或是符号表达式或是符号表达式或符号矩阵符号矩阵符号矩阵符号矩阵ØØexpand(fexpand(f) ) 对对对对f f进行展开,进行展开,进行展开,进行展开,f f是符号表达式或符号矩阵是符号表达式或符号矩阵是符号表达式或符号矩阵是符号表达式或符号矩阵ØØfactor(ffactor(f) ) 对对对对f f分解因式,分解因式,分解因式,分解因式,f f是符号表达式或符号矩阵是符号表达式或符号矩阵是符号表达式或符号矩阵是符号表达式或符号矩阵4).(4).符号表达式与数值表达式之间的转换符号表达式与数值表达式之间的转换符号表达式与数值表达式之间的转换符号表达式与数值表达式之间的转换l l利用利用利用利用函数函数函数函数symsym可以将数值表达式变换成它的符号表达式。
可以将数值表达式变换成它的符号表达式可以将数值表达式变换成它的符号表达式可以将数值表达式变换成它的符号表达式l l函数函数函数函数evaleval可以将符号表达式变换成数值表达式可以将符号表达式变换成数值表达式可以将符号表达式变换成数值表达式可以将符号表达式变换成数值表达式12(5). (5). 符号矩阵符号矩阵符号矩阵符号矩阵l ltranspose(stranspose(s) ) 返回返回返回返回s s矩阵的转置矩阵矩阵的转置矩阵矩阵的转置矩阵矩阵的转置矩阵l ldet(sdet(s) ) 返回返回返回返回s s矩阵的行列式值矩阵的行列式值矩阵的行列式值矩阵的行列式值l lcolspace(scolspace(s) ) 返回返回返回返回s s矩阵列空间的基矩阵列空间的基矩阵列空间的基矩阵列空间的基135.2 5.2 微分运算微分运算微分运算微分运算• •符号函数的极限符号函数的极限符号函数的极限符号函数的极限• •符号函数的微分符号函数的微分符号函数的微分符号函数的微分• •符号泰勒级数展开符号泰勒级数展开符号泰勒级数展开符号泰勒级数展开limitlimit函数的调用格式为:函数的调用格式为:函数的调用格式为:函数的调用格式为: limit(f,x,alimit(f,x,a) ) f f :函数:函数:函数:函数 x x:变量:变量:变量:变量 a a:逼近值:逼近值:逼近值:逼近值limitlimit函数的另一种功能是求单边极限,其调用格式为:函数的另一种功能是求单边极限,其调用格式为:函数的另一种功能是求单边极限,其调用格式为:函数的另一种功能是求单边极限,其调用格式为:limit(f,x,a,'right')limit(f,x,a,'right') 或或或或 limit(f,x,a,'left')limit(f,x,a,'left')14求极限例子求极限例子求极限例子求极限例子在在在在MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:命令窗口,输入命令:命令窗口,输入命令:symssyms a m x; a m x;f=(x^(1/m)-a^(1/m))/(x-a);f=(x^(1/m)-a^(1/m))/(x-a);limit(f,x,a) %limit(f,x,a) %求极限求极限求极限求极限f=(sin(a+x)-sin(a-x))/x;f=(sin(a+x)-sin(a-x))/x;limit(f) %limit(f) %求极限求极限求极限求极限limit(f,inflimit(f,inf) %) %求求求求f f函数在函数在函数在函数在x→∞(x→∞(包括包括包括包括+∞+∞和和和和-∞)-∞)处极限处极限处极限处极限limit(f,x,inf,'leftlimit(f,x,inf,'left') %') %求极限求极限求极限求极限f=(f=(sqrt(x)-sqrt(a)-sqrt(x-a))/sqrt(xsqrt(x)-sqrt(a)-sqrt(x-a))/sqrt(x*x-a*a);*x-a*a);limit(f,x,a,'right') %limit(f,x,a,'right') %求极限求极限求极限求极限15符号函数的微分符号函数的微分符号函数的微分符号函数的微分MATLABMATLAB中的微分函数为:中的微分函数为:中的微分函数为:中的微分函数为: diff(f,x,ndiff(f,x,n) )diffdiff函数求函数函数求函数函数求函数函数求函数f f对变量对变量对变量对变量x x的的的的n n阶导数。
参数阶导数参数阶导数参数阶导数参数x x的用法同求极限函的用法同求极限函的用法同求极限函的用法同求极限函数数数数limitlimit,,,,可以缺省,缺省值与可以缺省,缺省值与可以缺省,缺省值与可以缺省,缺省值与limitlimit相同,相同,相同,相同,n n的缺省值是的缺省值是的缺省值是的缺省值是1 116 例求函数的例求函数的例求函数的例求函数的( (微分微分微分微分) )导数命令如下:导数命令如下:导数命令如下:导数命令如下:symssyms a b t x y z; a b t x y z;f=sqrt(1+exp(x));f=sqrt(1+exp(x));diff(f) %diff(f) %未指定求导变量和阶数,按缺省规则处理未指定求导变量和阶数,按缺省规则处理未指定求导变量和阶数,按缺省规则处理未指定求导变量和阶数,按缺省规则处理f=x*f=x*cos(xcos(x); );diff(f,x,2) %diff(f,x,2) %求求求求f f对对对对x x的二阶导数的二阶导数的二阶导数的二阶导数diff(f,x,3) %diff(f,x,3) %求求求求f f对对对对x x的三阶导数的三阶导数的三阶导数的三阶导数f1=a*cos(t);f2=b*sin(t);f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1) %diff(f2)/diff(f1) %按参数方程求导公式求按参数方程求导公式求按参数方程求导公式求按参数方程求导公式求y y对对对对x x的导数的导数的导数的导数(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2))/(diff(f1))^3 %(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2))/(diff(f1))^3 %求求求求y y对对对对x x的二阶导数的二阶导数的二阶导数的二阶导数f=x*exp(y)/y^2;f=x*exp(y)/y^2;diff(f,x) %zdiff(f,x) %z对对对对x x的偏导数的偏导数的偏导数的偏导数diff(f,y) %zdiff(f,y) %z对对对对y y的偏导数的偏导数的偏导数的偏导数f=x^2+y^2+z^2-a^2;f=x^2+y^2+z^2-a^2;zxzx=-diff(f,x)/diff(f,z) %=-diff(f,x)/diff(f,z) %按隐函数求导公式求按隐函数求导公式求按隐函数求导公式求按隐函数求导公式求z z对对对对x x的偏导数的偏导数的偏导数的偏导数zyzy=-diff(f,y)/diff(f,z) %=-diff(f,y)/diff(f,z) %按隐函数求导公式求按隐函数求导公式求按隐函数求导公式求按隐函数求导公式求z z对对对对y y的偏导数的偏导数的偏导数的偏导数17例例例例 在曲线在曲线在曲线在曲线y=xy=x3 3+3x-2+3x-2上哪一点的切线与直线上哪一点的切线与直线上哪一点的切线与直线上哪一点的切线与直线y=4x-1y=4x-1平行。
平行命令如下:命令如下:命令如下:命令如下:x=sym('x'); x=sym('x'); y=x^3+3*x-2; %y=x^3+3*x-2; %定义曲线函数定义曲线函数定义曲线函数定义曲线函数f=diff(y); %f=diff(y); %对曲线求导数对曲线求导数对曲线求导数对曲线求导数g=f-4;g=f-4;solve(g)solve(g) % %求方程求方程求方程求方程f-4=0f-4=0的根,即求曲线何处的导数为的根,即求曲线何处的导数为的根,即求曲线何处的导数为的根,即求曲线何处的导数为4 418泰勒级数泰勒级数泰勒级数泰勒级数matlabmatlab中提供了将函数展开为幂级数的函数中提供了将函数展开为幂级数的函数中提供了将函数展开为幂级数的函数中提供了将函数展开为幂级数的函数taylortaylor,,,,其调用其调用其调用其调用格式为:格式为:格式为:格式为:taylor(f,n,x,ataylor(f,n,x,a) )例例例例: :求函数在指定点的泰勒展开式。
求函数在指定点的泰勒展开式求函数在指定点的泰勒展开式求函数在指定点的泰勒展开式命令如下:命令如下:命令如下:命令如下:x=sym('x');x=sym('x');f1=(1+x+x^2)/(1-x+x^2);f1=(1+x+x^2)/(1-x+x^2);f2=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);f2=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);taylor(f1,x,5) %taylor(f1,x,5) %展开到展开到展开到展开到x x的的的的4 4次幂时应选择次幂时应选择次幂时应选择次幂时应选择n=5n=5taylor(f2,6) taylor(f2,6) 195.3 5.3 积分运算积分运算积分运算积分运算• •在在在在matlabmatlab中,求不定积分的函数是中,求不定积分的函数是中,求不定积分的函数是中,求不定积分的函数是intint,其调用格式为:,其调用格式为:,其调用格式为:,其调用格式为:int(f,xint(f,x) ) intint函数求函数函数求函数函数求函数函数求函数f f对变量对变量对变量对变量x x的不定积分。
参数的不定积分参数的不定积分参数的不定积分参数x x可以缺省,缺可以缺省,缺可以缺省,缺可以缺省,缺省原则与省原则与省原则与省原则与diffdiff函数相同函数相同函数相同函数相同• •在在在在matlabmatlab中,求定积分的函数也是中,求定积分的函数也是中,求定积分的函数也是中,求定积分的函数也是intint,其调用格式为:,其调用格式为:,其调用格式为:,其调用格式为:int(f,x,a,bint(f,x,a,b) ) intint函数求函数函数求函数函数求函数函数求函数f f对变量对变量对变量对变量x x的不定积分参数的不定积分参数的不定积分参数的不定积分参数x x可以缺省,缺可以缺省,缺可以缺省,缺可以缺省,缺省原则与省原则与省原则与省原则与diffdiff函数相同函数相同函数相同函数相同205.4 5.4 积分变换积分变换积分变换积分变换1. 1. 傅立叶傅立叶傅立叶傅立叶(Fourier)(Fourier)变换变换变换变换在在在在MATLABMATLAB中,进行傅立叶变换的函数是:中,进行傅立叶变换的函数是:中,进行傅立叶变换的函数是:中,进行傅立叶变换的函数是:fourier(fx,x,tfourier(fx,x,t) ) 求函数求函数求函数求函数f(x)f(x)的傅立叶像函数的傅立叶像函数的傅立叶像函数的傅立叶像函数F(t)F(t)。
ifourier(Fw,t,xifourier(Fw,t,x) ) 求傅立叶像函数求傅立叶像函数求傅立叶像函数求傅立叶像函数F(t)F(t)的原函数的原函数的原函数的原函数f(x)f(x)求函数的傅立叶变换及其逆变换求函数的傅立叶变换及其逆变换求函数的傅立叶变换及其逆变换求函数的傅立叶变换及其逆变换命令如下:命令如下:命令如下:命令如下:symssyms x t; x t;y=y=abs(xabs(x); );Ft=Ft=fourier(y,x,tfourier(y,x,t) %) %求求求求y y的傅立叶变换的傅立叶变换的傅立叶变换的傅立叶变换fxfx= =ifourier(Ft,t,xifourier(Ft,t,x) %) %求求求求FtFt的傅立叶逆变换的傅立叶逆变换的傅立叶逆变换的傅立叶逆变换212. 2. 拉普拉斯拉普拉斯拉普拉斯拉普拉斯(Laplace)(Laplace)变换变换变换变换在在在在MATLABMATLAB中,进行拉普拉斯变换的函数是:中,进行拉普拉斯变换的函数是:中,进行拉普拉斯变换的函数是:中,进行拉普拉斯变换的函数是:laplace(fx,x,tlaplace(fx,x,t) ) 求函数求函数求函数求函数f(x)f(x)的拉普拉斯像函数的拉普拉斯像函数的拉普拉斯像函数的拉普拉斯像函数F(t)F(t)。
ilaplace(Fw,t,xilaplace(Fw,t,x) ) 求拉普拉斯像函数求拉普拉斯像函数求拉普拉斯像函数求拉普拉斯像函数F(t)F(t)的原函数的原函数的原函数的原函数f(x)f(x)例计算例计算例计算例计算y=xy=x2 2的拉普拉斯变换及其逆变换的拉普拉斯变换及其逆变换的拉普拉斯变换及其逆变换的拉普拉斯变换及其逆变换. .命令如下:命令如下:命令如下:命令如下:x=x=sym('x');ysym('x');y=x^2;=x^2;Ft=Ft=laplace(y,x,tlaplace(y,x,t) %) %对函数对函数对函数对函数y y进行拉普拉斯变换进行拉普拉斯变换进行拉普拉斯变换进行拉普拉斯变换fxfx= =ilaplace(Ft,t,xilaplace(Ft,t,x) %) %对函数对函数对函数对函数FtFt进行拉普拉斯逆变换进行拉普拉斯逆变换进行拉普拉斯逆变换进行拉普拉斯逆变换223. Z3. Z变换变换变换变换对数列对数列对数列对数列f(n)f(n)进行进行进行进行z z变换的变换的变换的变换的matlabmatlab函数是:函数是:函数是:函数是:ztrans(fn,n,zztrans(fn,n,z) ) 求求求求fnfn的的的的Z Z变换像函数变换像函数变换像函数变换像函数F(z)F(z)iztrans(Fz,z,niztrans(Fz,z,n) ) 求求求求FzFz的的的的z z变换原函数变换原函数变换原函数变换原函数f(n)f(n)例求数列例求数列例求数列例求数列 fn=efn=e-n-n的的的的Z Z变换及其逆变换。
变换及其逆变换变换及其逆变换变换及其逆变换命令如下:命令如下:命令如下:命令如下:symssyms n z n zfn=exp(-n);fn=exp(-n);FzFz= =ztrans(fn,n,zztrans(fn,n,z) %) %求求求求fnfn的的的的Z Z变换变换变换变换f=f=iztrans(Fz,z,niztrans(Fz,z,n) %) %求求求求FzFz的逆的逆的逆的逆Z Z变换变换变换变换235.5 5.5 求解方程求解方程求解方程求解方程• •代数方程代数方程代数方程代数方程• •代数方程组代数方程组代数方程组代数方程组• •微分方程和微分方程组微分方程和微分方程组微分方程和微分方程组微分方程和微分方程组24代数方程代数方程代数方程代数方程l l代数方程是指未涉及微积分运算的方程,相对比较简单代数方程是指未涉及微积分运算的方程,相对比较简单代数方程是指未涉及微积分运算的方程,相对比较简单代数方程是指未涉及微积分运算的方程,相对比较简单l l在在在在matlabmatlab中,求解用符号表达式表示的代数方程可由中,求解用符号表达式表示的代数方程可由中,求解用符号表达式表示的代数方程可由中,求解用符号表达式表示的代数方程可由函数函数函数函数solvesolve实现,其调用格式为:实现,其调用格式为:实现,其调用格式为:实现,其调用格式为: solve(eqsolve(eq); );l l求解符号表达式表示的代数方程求解符号表达式表示的代数方程求解符号表达式表示的代数方程求解符号表达式表示的代数方程eqeq,求解变量为默认变量。
求解变量为默认变量求解变量为默认变量求解变量为默认变量当方程右端为当方程右端为当方程右端为当方程右端为0 0时,方程时,方程时,方程时,方程eqeq中可以不包含右端项和等号,而中可以不包含右端项和等号,而中可以不包含右端项和等号,而中可以不包含右端项和等号,而仅列出方程左端的表达式仅列出方程左端的表达式仅列出方程左端的表达式仅列出方程左端的表达式l lsolve(eq,xsolve(eq,x) ):求解符号表达式表示的代数方程:求解符号表达式表示的代数方程:求解符号表达式表示的代数方程:求解符号表达式表示的代数方程eqeq,求解变量,求解变量,求解变量,求解变量为为为为x x25solve(eqsolve(eq1 1,eq,eq2 2,…,eq,…,eqn n,v ,v1 1,v ,v2 2,…,,…,v vn n) )::::l l求解符号表达式求解符号表达式求解符号表达式求解符号表达式eqeq1 1,eq,eq2 2,…,,…,eqeqn n组成的代数方程组,求组成的代数方程组,求组成的代数方程组,求组成的代数方程组,求解变量分别解变量分别解变量分别解变量分别v v1 1,v ,v2 2,…,,…,v vn n。
l l若不指定求解变量,由默认规则确定若不指定求解变量,由默认规则确定若不指定求解变量,由默认规则确定若不指定求解变量,由默认规则确定l l注意输出方式注意输出方式注意输出方式注意输出方式代数方程组代数方程组代数方程组代数方程组26l lmatlabmatlab的符号运算工具箱中提供了功能强大的求解常微分方的符号运算工具箱中提供了功能强大的求解常微分方的符号运算工具箱中提供了功能强大的求解常微分方的符号运算工具箱中提供了功能强大的求解常微分方程的程的程的程的函数函数函数函数dsolvedsolve该函数的调用格式为:该函数的调用格式为:该函数的调用格式为:该函数的调用格式为: dsolve('eqn1','condition','var')dsolve('eqn1','condition','var')l l该函数求解微分方程该函数求解微分方程该函数求解微分方程该函数求解微分方程eqn1eqn1在初值条件在初值条件在初值条件在初值条件conditioncondition下的特解参下的特解参下的特解参下的特解参数数数数varvar描述方程中的自变量符号,省略时按缺省原则处理,若描述方程中的自变量符号,省略时按缺省原则处理,若描述方程中的自变量符号,省略时按缺省原则处理,若描述方程中的自变量符号,省略时按缺省原则处理,若没有给出初值条件没有给出初值条件没有给出初值条件没有给出初值条件conditioncondition,,,,则求方程的通解。
则求方程的通解则求方程的通解则求方程的通解l ly=y=dsolve('Dydsolve('Dy=t')=t')l ly=dsolve('D2y=t')y=dsolve('D2y=t')l ly=y=dsolve('Dydsolve('Dy=t','y(0)=0')=t','y(0)=0')微分方程微分方程微分方程微分方程27l ldsolvedsolve在求微分方程组时的调用格式为:在求微分方程组时的调用格式为:在求微分方程组时的调用格式为:在求微分方程组时的调用格式为:dsolve('eqn1','eqn2',…,'eqnN','condition1',…,'conditionN','vdsolve('eqn1','eqn2',…,'eqnN','condition1',…,'conditionN','var1',…,'ar1',…,'varNvarN') ')l l函数求解微分方程组函数求解微分方程组函数求解微分方程组函数求解微分方程组eqn1eqn1、、、、……、、、、eqnNeqnN在初值条件在初值条件在初值条件在初值条件conditoion1conditoion1、、、、……、、、、conditionNconditionN下的解,若不给出初值条件,下的解,若不给出初值条件,下的解,若不给出初值条件,下的解,若不给出初值条件,则求方程组的通解,则求方程组的通解,则求方程组的通解,则求方程组的通解,var1var1、、、、……、、、、varNvarN给出求解变量。
给出求解变量给出求解变量给出求解变量微分方程组微分方程组微分方程组微分方程组28例例例例 求微分方程的通解求微分方程的通解求微分方程的通解求微分方程的通解命令如下:命令如下:命令如下:命令如下:y=dsolve('Dy-(x^2+y^2)/x^2/2','x') %y=dsolve('Dy-(x^2+y^2)/x^2/2','x') %解解解解(1)(1)方程的右端方程的右端方程的右端方程的右端为为为为0 0时可以不写时可以不写时可以不写时可以不写y=dsolve('Dy*x^2+2*x*y-exp(x)','x') %y=dsolve('Dy*x^2+2*x*y-exp(x)','x') %解解解解(2)(2)y=dsolve('Dy-x^2/(1+y^2)','y(2)=1','x') %y=dsolve('Dy-x^2/(1+y^2)','y(2)=1','x') %解解解解(3)(3)[x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y','t') %[x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y','t') %解方程组解方程组解方程组解方程组(4)(4) [x,y]=dsolve('D2x-y','D2y+x','t') % [x,y]=dsolve('D2x-y','D2y+x','t') %解方程组解方程组解方程组解方程组(5)(5)29小小 结结 本节介绍了本节介绍了matlabmatlab语言的符号运算语言的符号运算功能,通过学习应该掌握:功能,通过学习应该掌握:•掌握如何创建符号函数掌握如何创建符号函数•掌握符号运算及其应用掌握符号运算及其应用。





![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)






