最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

matlab符号积分和微分等等

IT圈 admin 40浏览 0评论

2024年4月7日发(作者:戈依波)

教 案

课题

名称

6.4 MATLAB 符 号 计 算

进 度

时 数

2

简单了解MATLAB符号表达式的基本运算函数和化简函数及替

换函数。

会运用Matlab求符号微积分、符号方程、及级数

MATLAB的符号微积分和符号方程求解

MATLAB的泰勒级数

讲授

教学

教学

资源

教材、网上资源

投影仪

时间分配

10’

5’

5’

5’

5’

5’

10’

10’

10’

10’

10’

5’

教学方

一、

符号对象

1、创建符号变量和符号矩阵

2、符号表达式的基本运算函数

3、符号表达式的化简函数

4、符号表达式的替换函数

二、符号微积分

1、符号极限

2、符号求导

3、符号积分

4、积分变换

三、符号方程求解

1、代数方程

2、符号微分方程求解

四、级数

1、级数的符号求和

2、函数的泰勒级数

作业

1

内容 备 注

6.4 MATLAB 符 号 计 算

一、符号对象

1、创建符号变量和符号矩阵

MATLAB的符号数学工具箱提供了两个sym和syms基本函数,用来创建

符号变量和符号矩阵。

 函数sym的调用格式为:

符号变量名=sym(‘表达式’)

说明:函数sym可创建一个符号变量,表达式可以是字符、字符串、数学

表达式或字符表达式等。

 函数syms的调用格式:

syms 符号变量名1 符号变量名2 符号变量名3 …

说明:函数syms可一次创建多个符号变量。

例6.25创建符号变量。

>> a=sym('matlab')

a =

matlab

>> b=sym('3*x^2+4*x+7')

b =

3*x^2+4*x+7

在工作空间浏览器上可以看到A、B、C三个符号变量。使用sym函数和

syms函数也可以创建符号矩阵。符号矩阵是一个数组,它的元素是符号表达式。

MATLAB在内部把符号表达式表示成字符串,以与数字变量或运算相区别;否

则,这些符号表达式几乎完全像基本的MATLAB命令。

例6.26 创建符号矩阵。

>> e=[1 3 5;2 4 6;7 9 11]; %建立数值矩阵

>> m=sym(e) %创建符号矩阵

m =

[ 1, 3, 5]

[ 2, 4, 6]

[ 7, 9, 11]

在命令窗口的显示中,数值矩阵只显示元素的数值,而符号矩阵的每行元

2

素放在一对方括号内;在工作空间窗口显示的变量图标两者也不同,数值矩阵

的图标为 ,符号矩阵(也称为符号对象)的图标为 ,二者很容易区分。

2、符号表达式的基本运算函数

符号表达式的运算与普通数值运算的方式不同,它的运算结果是符号表达

式或符号矩阵。在MATLAB运算中,浮点运算速度最快,而符号计算占用时

间和内存都比较多,但它的计算结果最精确。在默认情况下,当用函数sym生

成符号变量后,MATLAB将对这些变量进行符号计算。在MATLAB符号计算

工具箱中提供来了很多函数用于符号计算。下面将介绍一些常用的符号运算函

数,如表6-6所示。

表6-6 常用的符号函数

函数格式

symadd(S

1

,S

2

)

symsub(S

1

,S

2

)

symmul(S

1

,S

2

)

symdiv(S

1

,S

2

)

sympow(S,p)

说明

符号表达式S

1

加上符号表达式S

2

符号表达式S

1

减去符号表达式S

2

符号表达式S

1

乘上符号表达式S

2

符号表达式S

1

除符号表达式S

2

符号表达式S

1

的p次幂,p可以是表达式

例6.27 计算表达式x

3

-1与表达式x-1的和、差、积、商和乘方。

>> syms x

>> s1=x^3-1;

>> s2=x-1;

>> symadd(s1,s2)

ans =

x^3-2+x

>> symsub(s1,s2)

ans =

x^3-x

>> symmul(s1,s2)

ans =

(x^3-1)*(x-1)

>> symdiv(s1,s2)

ans =

(x^3-1)/(x-1)

>> sympow(s1,s2)

ans =

3

(x^3-1)^(x-1)

3、符号表达式的化简函数

符号数学工具箱提供了符号表达式的因式分解、展开、合并、化简、通分

等函数,见表6-7所示。

表6-7 符号表达式的化简函数

函数格式

collect(s,x)

expand(s)

factor(s)

numden(s)

说明

合并自变量x的同幂系数

符号表达式s的展开

因式分解

符号表达式s的分式通分

3

函数格式

simple(s)

simplify(s)

radsimp(s)

horner(s)

说明

寻找表达式的最简型

符号表达式的化简

对含根式的表达式s化简

符号表达式s的嵌套形式

例6.28 对表达式

fx1

进行因式分解。

>> syms x %在命令窗口创建符号变量x

>> f=factor(x^3-1)

f =

(x-1)*(x^2+x+1)

例6.29 展开三角表达式sin(a+b)。

>> s=sym('sin(a+b)'); %用sym函数创建符号变量

>> expand(s)

ans =

sin(a)*cos(b)+cos(a)*sin(b)

例6.30化简分式(4x

2

+8x+3)/(2x+1)。

>> syms x

>> s=(4*x^2+8*x+3)/(2*x+1);

>> simplify(s)

ans =

2*x+3

4、符号表达式的替换函数

MATLAB的符号数学工具箱提供了两个符号表达式的替换函数subexpr和

subs,可以通过符号替换使表达式的输出形式化简,得到一个简单的表达式。

 函数Subexpr的调用格式为:

[R,SYM]=subexpr(S,SYM)

说明:此函数用变量SYM(字符或字符串)的值代替符号表达式S中重复出现

4

的字符串,R是返回替换后的结果。

 函数subs的调用格式:

R=subs(S,old,new)

说明:该函数是用新的符号变量new替换原来符号表达式S中的变量old,

R是替换后的符号表达式。需要注意的,当变量new是数值形式时,显示的结

果虽然是数值,但它事实上是符号变量。要强制地求值需要用vpa函数。

3x

3

x

2

1

例6.31 求表达式在x=1时的代数值。

x

2

1

>>clear

>>clc

>> syms x

>> s=(3*x^3+x^2-1)/(x^2+1);

>> r=subs(s,'x','1')

r =

(3*(1)^3+(1)^2-1)/((1)^2+1)

>> vpa(r) %强制求值

ans =

1.5000000

二、符号微积分

1、符号极限

极限是微积分的基础,在MATLAB中,极限的求解是由limit函数实现的,

其主要格式如表6-8所示。

表6-8 符号极限的函数格式

函数格式

limit(s)

limit(s,a)

limit(s,x,a)

limit(s,x,a,‘right’)

limit(F,x,a,‘left’)

说明

s为符号表达式。在系统默认表达式中的自变量趋向于0时的极限。

a为常数。计算符号表达式s中由默认自变量趋向于a条件下的极限。

计算符号表达式s在x趋向于a条件下的极限。

计算符号表达式s在x趋向于a条件下的右极限

计算符号表达式s在x趋向于a条件下左的极限

x

sin(x)

11

1

例6.32 分别计算表达式

lim

lim

lim

lim

1

x0

x

x0

x

x0

x

x

x

5

x0

x

lim

e

先在命令窗口创建符号变量a和x,再分别计算上面各表达式的极限。

>>clear

>>clc

>> syms x a;

>> limit(1/x,x,0, 'right')

ans =

inf

>> limit(1/x,x,0, 'left' )

ans =

-inf

>> limit (sin(x)/x)

ans =

1

>> limit((1+1/x)^x,x,inf,'left')

ans =

exp(1)

>> limit(exp(-x),x,0,'left')

ans =

1

2、符号求导

在符号数学工具箱中,表达式的导数由函数diff实现,其调用格式为:

diff(s,x,n)

说明:其中s为符号表达式,x为自变量,n为求导的阶数。

例6.33 分别计算表达式x

5

的一阶导数和三阶导数。

>>clear

>>clc

>> syms x

>> diff(x^5)

ans =

5*x^4

>> diff(x^5,3)

ans =

60*x^2

3、符号积分

6

积分算法是非结构性的,许多函数的原函数存在,但不可用有限解析式表

达式表示,即使可以求积分的函数,其求积分过程也可能很复杂,但利用

MATLAB求积分就非常容易。在MATLAB的符号数学工具箱中,表达式的积

分由函数int实现,该函数可求不定积分和定积分,其调用格式如表6-9所示。

表6-9 符号积分的函数格式

函数格式

int(s)

int(s,x)

int(s,a,b)

int(s,x,a,b)

说明

求符号表达式s对于默认自变量的不定积分。

求符号表达式s对于自变量x的不定积分

求符号表达式s对于默认自变量从a到b的定积分。

求符号表达式s对于自变量x从a到b的定积分。

例6.34 分别计算下列表达式的积分:

2

3

x

x

x

dx

dy

(4)

dx

(3)

(1)

(43x)dx

(2)

1

x2

xy

xy

22

在命令窗口创建符号变量x和y,分别计算上面各表达式的积分。

>>clear

>>clc

>> syms x y

>> s=(4-3*x^2)^2;

>> int(s)

ans =

9/5*x^5-8*x^3+16*x

>> int(x/(x+y),x)

ans =

x-y*log(x+y)

>> int(x/(x+y),y)

ans =

x*log(x+y)

>> int(x^2/(x+2),x,1,3)

ans =

4*log(5)-4*log(3)

>> double(ans)

ans =

2.0433

4、积分变换

积分变换就是通过积分运算把一个函数f(原函数)变成另外一个函数F

7

(像函数)。变化的过程是:

F(t)

f(x)K(x,t)dx

a

b

其中二元函数

K(x,t)

称为变换的核,变换的核决定了变换的不同名称。在

一定的条件下原函数和像函数之间是一一对应的,可以相互转化。积分变换的

意义是换一个角度来认识函数,积分变换的一项基本应用是解微分方程,求解

过程是基于这样一种想法:假如不容易从原方程直接求得解f,则对原方程进

行变换,如果能从变换后的方程中求得解F,则对F进行逆变换,即可求得原

方程的解f,当然,在选择变换的核时,应该使得变换以后的方程比原方程容

易求解。MATLAB提供的变换函数如表6-10所示。

表6-10 常用的积分变换函数

函数名称 函数格式

fourier(fx,x,t)

傅立叶变换

ifourier(Fw,t,x) Fw为函数F(t)的符号表达式、t为自变量、x为原函数f(x)

的自变量。结果为函数F(t)的傅立叶原函数f(x)

拉普拉斯变换

laplace(fx,x,t)

ilaplace(Fw,t,x)

Z变换

ztrans(fx,x,t)

iztrans(Fw,t,x)

2

说明

Fx为函数f(x)的符号表达式、x为自变量、t像函数F(t)

的自变量。结果为函数f(x)的傅立叶像函数F(t)

结果为函数f(x)的拉普拉斯像函数F(t)

结果为函数F(t)的拉普拉斯原函数f(x)

结果为函数f(x)的Z变换像函数F(t)

结果为函数F(t)的Z变换原函数f(x)

例6.35 求函数

ye

x

的傅立叶变换及其逆变换。

>> syms x t

>> y=exp(-x^2);

>> Ft=fourier(y,x,t) %傅立叶变换

Ft =

pi^(1/2)*exp(-1/4*t^2)

>> fx=ifourier(Ft,t,x) %傅立叶逆变换

fx =

1/2*4^(1/2)*exp(-x^2)

三、符号方程求解

1、代数方程

代数方程是指未涉及微积分运算的方程,相对比较简单。在MATLAB符号数

8

学工具箱中,求解用符号表达式表示的代数方程可由函数solve实现,其调用

格式如表6-11所示。

表6-11 符号方程的函数

函数格式

solve(s)

solve(s,x)

solve(s

1

,s

2,

…s

n

,x

1

,x

2

,...x

n

)

说明

求解符号表达式s=0的代数方程,自变量为默认自变量

求解符号表达式s=0的代数方程,自变量为x

求解由符号表达式s

1

,s

2,

…s

n

组成的代数方程组,自变量分别为x

1

,x

2

,...x

n

例6.36 分别求解代数方程ax

2

+bx+c=0。

在命令窗口创建符号变量a、b、c和x。

>>clear

>>clc

>> syms a b c x

>> s=a*x^2+b*x+c;

>> solve(s)

ans =

[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]

[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]

例6.37 求解代数方程组:

2x

2

y

2

3z4

xz3

x2y3z

在命令窗口创建符号变量x、y、z,求解方程组。

>> syms x y z

>> s1=2*x^2+y^2-3*z-4;

>> s2=y+z-3;

>> s3=x-2*y-3*z;

>> [x,y,z]=solve(s1,s2,s3)

x =

[ 7/2+1/6*i*699^(1/2)]

[ 7/2-1/6*i*699^(1/2)]

y =

[ 11/2-1/6*i*699^(1/2)]

[ 11/2+1/6*i*699^(1/2)]

z =

[ -5/2+1/6*i*699^(1/2)]

9

[ -5/2-1/6*i*699^(1/2)]

2、符号微分方程求解

在MATLAB中,用大写字母D来表示微分方程的导数。例如:Dy表示

y

D2y表示

y



。D2y+Dy+x-10=0表示微分方程

y



y

x100

。Dy(0)=3

表示

y

(0)3

在符号数学工具箱中,求解表达式微分方程的符号解由函数dsolve实现,其调

用格式为:

 r=dsolve(‘eq’,‘cond’, ‘var’)

说明:式中eq代表常微分方程,cond代表常微分方程的边界条件或初始

条件,var代表自变量,缺省是按系统默认原则处理。该函数可求解微分方程

的特解。

 r=dsolve(‘eq1’, ‘eq2’…‘eqN’,‘cond1’, ‘cond2’…‘condN’,

‘var1’…‘varN’)

说明:该函数求解由eq1,eq2,…指定的常微分方程组在条件cond1,

cond2,…,condN下的符号解,若不给出初始条件,则求方程组的通解。var1,…,

varN为求解变量,如果不指定,将为默认自变量。

dyt

2

y

2

例6.38 求微分方程的通解。

dt

2t

2

在命令窗口分别输入表达式,求解方程。

>> y=dsolve('Dy-(t^2+y^2)/t^2/2','t') %方程右端的零可以不写

y =

t*(-log(t)+2+C1)/(-log(t)+C1) %通解

例6.39 求微分方程

dy

2xy

2

的通解,和当y(0)=1时的特解。

dx

在命令窗口输入表达式,求解方程。

>> y=dsolve('Dy=2*x*y^2','x') %求通解

y =

-1/(x^2-C1)

>> y=dsolve('Dy=2*x*y^2','y(0)=1','x') %求特解

y =

-1/(x^2-1)

10

四、级数

1、级数的符号求和

数值级数和函数级数是高等数学的重点研究内容,也是物理学以及其他工

程技术学科的重要理论基础和分析工具。在MATLAB符号数学工具中,级数表

达式的求和由函数symsum实现,其调用格式如表6-12。

表6-12 级数求和函数

函数格式

symsum(S)

symsum(S,x)

symsum(S,a,b)

symsum(S,x,a,b)

说明

计算符号表达式S(表示级数的通项)对于默认自变量的不定和。

计算符号表达式S对于自变量x的不定和。

计算符号表达式S对于默认自变量从a到b的有限和。

计算符号表达式S对于自变量x从a到b的有限和。

10

x

k

例6.40 分别计算表达式

k

(k3)

k1

k

0

2

在命令窗口创建符号变量k和x,分别计算上面各表达式。

>>clear

>>clc

>> syms x k

>> symsum(k)

ans =

1/2*k^2-1/2*k

>> symsum(k^2-3,0,10)

ans =

352

>> symsum(x^k/k,k,1,inf)

ans =

-log(1-x)

2、函数的泰勒级数

泰勒级数可以将一个任意函数表示为一个幂级数,并且,在许多情况下,

只需要取幂级数的前有限项来表示该函数,这对于大多数工程应用问题来说,

精度已经足够。在MATLAB符号数学工具中,表达式的Taylor级数展开由函数

11

taylor实现,其调用格式如表6-13所示。

表6-13 泰勒级数函数格式

函数格式

taylor(s)

taylor(s,n)

taylor(f,n,a)

taylor(f,x,n,a)

说明

计算符号表达式s在默认自变量等于0处的5阶Taylor级数展开式。

计算符号表达式s在默认自变量等于0处的n-1阶Taylor级数展开式。

计算符号表达式s在默认自变量等于a处的n-1阶Taylor级数展开式

计算符号表达式s在自变量x等于a处的n-1阶Taylor级数展开式

1xx

2

例6.41 分别计算表达式的5阶泰勒级数展开式和12阶泰勒级

1xx

2

数展开式。

在命令窗口创建符号变量,分别计算上面各表达式。

>>clear

>>clc

>> syms x

>> s=(1-x+x^2)/(1+x+x^2);

>> taylor(s)

ans =

1-2*x+2*x^2-2*x^4+2*x^5

>> taylor(s,x,12)

ans =

1-2*x+2*x^2-2*x^4+2*x^5-2*x^7+2*x^8-2*x^10+2*x^11

12

2024年4月7日发(作者:戈依波)

教 案

课题

名称

6.4 MATLAB 符 号 计 算

进 度

时 数

2

简单了解MATLAB符号表达式的基本运算函数和化简函数及替

换函数。

会运用Matlab求符号微积分、符号方程、及级数

MATLAB的符号微积分和符号方程求解

MATLAB的泰勒级数

讲授

教学

教学

资源

教材、网上资源

投影仪

时间分配

10’

5’

5’

5’

5’

5’

10’

10’

10’

10’

10’

5’

教学方

一、

符号对象

1、创建符号变量和符号矩阵

2、符号表达式的基本运算函数

3、符号表达式的化简函数

4、符号表达式的替换函数

二、符号微积分

1、符号极限

2、符号求导

3、符号积分

4、积分变换

三、符号方程求解

1、代数方程

2、符号微分方程求解

四、级数

1、级数的符号求和

2、函数的泰勒级数

作业

1

内容 备 注

6.4 MATLAB 符 号 计 算

一、符号对象

1、创建符号变量和符号矩阵

MATLAB的符号数学工具箱提供了两个sym和syms基本函数,用来创建

符号变量和符号矩阵。

 函数sym的调用格式为:

符号变量名=sym(‘表达式’)

说明:函数sym可创建一个符号变量,表达式可以是字符、字符串、数学

表达式或字符表达式等。

 函数syms的调用格式:

syms 符号变量名1 符号变量名2 符号变量名3 …

说明:函数syms可一次创建多个符号变量。

例6.25创建符号变量。

>> a=sym('matlab')

a =

matlab

>> b=sym('3*x^2+4*x+7')

b =

3*x^2+4*x+7

在工作空间浏览器上可以看到A、B、C三个符号变量。使用sym函数和

syms函数也可以创建符号矩阵。符号矩阵是一个数组,它的元素是符号表达式。

MATLAB在内部把符号表达式表示成字符串,以与数字变量或运算相区别;否

则,这些符号表达式几乎完全像基本的MATLAB命令。

例6.26 创建符号矩阵。

>> e=[1 3 5;2 4 6;7 9 11]; %建立数值矩阵

>> m=sym(e) %创建符号矩阵

m =

[ 1, 3, 5]

[ 2, 4, 6]

[ 7, 9, 11]

在命令窗口的显示中,数值矩阵只显示元素的数值,而符号矩阵的每行元

2

素放在一对方括号内;在工作空间窗口显示的变量图标两者也不同,数值矩阵

的图标为 ,符号矩阵(也称为符号对象)的图标为 ,二者很容易区分。

2、符号表达式的基本运算函数

符号表达式的运算与普通数值运算的方式不同,它的运算结果是符号表达

式或符号矩阵。在MATLAB运算中,浮点运算速度最快,而符号计算占用时

间和内存都比较多,但它的计算结果最精确。在默认情况下,当用函数sym生

成符号变量后,MATLAB将对这些变量进行符号计算。在MATLAB符号计算

工具箱中提供来了很多函数用于符号计算。下面将介绍一些常用的符号运算函

数,如表6-6所示。

表6-6 常用的符号函数

函数格式

symadd(S

1

,S

2

)

symsub(S

1

,S

2

)

symmul(S

1

,S

2

)

symdiv(S

1

,S

2

)

sympow(S,p)

说明

符号表达式S

1

加上符号表达式S

2

符号表达式S

1

减去符号表达式S

2

符号表达式S

1

乘上符号表达式S

2

符号表达式S

1

除符号表达式S

2

符号表达式S

1

的p次幂,p可以是表达式

例6.27 计算表达式x

3

-1与表达式x-1的和、差、积、商和乘方。

>> syms x

>> s1=x^3-1;

>> s2=x-1;

>> symadd(s1,s2)

ans =

x^3-2+x

>> symsub(s1,s2)

ans =

x^3-x

>> symmul(s1,s2)

ans =

(x^3-1)*(x-1)

>> symdiv(s1,s2)

ans =

(x^3-1)/(x-1)

>> sympow(s1,s2)

ans =

3

(x^3-1)^(x-1)

3、符号表达式的化简函数

符号数学工具箱提供了符号表达式的因式分解、展开、合并、化简、通分

等函数,见表6-7所示。

表6-7 符号表达式的化简函数

函数格式

collect(s,x)

expand(s)

factor(s)

numden(s)

说明

合并自变量x的同幂系数

符号表达式s的展开

因式分解

符号表达式s的分式通分

3

函数格式

simple(s)

simplify(s)

radsimp(s)

horner(s)

说明

寻找表达式的最简型

符号表达式的化简

对含根式的表达式s化简

符号表达式s的嵌套形式

例6.28 对表达式

fx1

进行因式分解。

>> syms x %在命令窗口创建符号变量x

>> f=factor(x^3-1)

f =

(x-1)*(x^2+x+1)

例6.29 展开三角表达式sin(a+b)。

>> s=sym('sin(a+b)'); %用sym函数创建符号变量

>> expand(s)

ans =

sin(a)*cos(b)+cos(a)*sin(b)

例6.30化简分式(4x

2

+8x+3)/(2x+1)。

>> syms x

>> s=(4*x^2+8*x+3)/(2*x+1);

>> simplify(s)

ans =

2*x+3

4、符号表达式的替换函数

MATLAB的符号数学工具箱提供了两个符号表达式的替换函数subexpr和

subs,可以通过符号替换使表达式的输出形式化简,得到一个简单的表达式。

 函数Subexpr的调用格式为:

[R,SYM]=subexpr(S,SYM)

说明:此函数用变量SYM(字符或字符串)的值代替符号表达式S中重复出现

4

的字符串,R是返回替换后的结果。

 函数subs的调用格式:

R=subs(S,old,new)

说明:该函数是用新的符号变量new替换原来符号表达式S中的变量old,

R是替换后的符号表达式。需要注意的,当变量new是数值形式时,显示的结

果虽然是数值,但它事实上是符号变量。要强制地求值需要用vpa函数。

3x

3

x

2

1

例6.31 求表达式在x=1时的代数值。

x

2

1

>>clear

>>clc

>> syms x

>> s=(3*x^3+x^2-1)/(x^2+1);

>> r=subs(s,'x','1')

r =

(3*(1)^3+(1)^2-1)/((1)^2+1)

>> vpa(r) %强制求值

ans =

1.5000000

二、符号微积分

1、符号极限

极限是微积分的基础,在MATLAB中,极限的求解是由limit函数实现的,

其主要格式如表6-8所示。

表6-8 符号极限的函数格式

函数格式

limit(s)

limit(s,a)

limit(s,x,a)

limit(s,x,a,‘right’)

limit(F,x,a,‘left’)

说明

s为符号表达式。在系统默认表达式中的自变量趋向于0时的极限。

a为常数。计算符号表达式s中由默认自变量趋向于a条件下的极限。

计算符号表达式s在x趋向于a条件下的极限。

计算符号表达式s在x趋向于a条件下的右极限

计算符号表达式s在x趋向于a条件下左的极限

x

sin(x)

11

1

例6.32 分别计算表达式

lim

lim

lim

lim

1

x0

x

x0

x

x0

x

x

x

5

x0

x

lim

e

先在命令窗口创建符号变量a和x,再分别计算上面各表达式的极限。

>>clear

>>clc

>> syms x a;

>> limit(1/x,x,0, 'right')

ans =

inf

>> limit(1/x,x,0, 'left' )

ans =

-inf

>> limit (sin(x)/x)

ans =

1

>> limit((1+1/x)^x,x,inf,'left')

ans =

exp(1)

>> limit(exp(-x),x,0,'left')

ans =

1

2、符号求导

在符号数学工具箱中,表达式的导数由函数diff实现,其调用格式为:

diff(s,x,n)

说明:其中s为符号表达式,x为自变量,n为求导的阶数。

例6.33 分别计算表达式x

5

的一阶导数和三阶导数。

>>clear

>>clc

>> syms x

>> diff(x^5)

ans =

5*x^4

>> diff(x^5,3)

ans =

60*x^2

3、符号积分

6

积分算法是非结构性的,许多函数的原函数存在,但不可用有限解析式表

达式表示,即使可以求积分的函数,其求积分过程也可能很复杂,但利用

MATLAB求积分就非常容易。在MATLAB的符号数学工具箱中,表达式的积

分由函数int实现,该函数可求不定积分和定积分,其调用格式如表6-9所示。

表6-9 符号积分的函数格式

函数格式

int(s)

int(s,x)

int(s,a,b)

int(s,x,a,b)

说明

求符号表达式s对于默认自变量的不定积分。

求符号表达式s对于自变量x的不定积分

求符号表达式s对于默认自变量从a到b的定积分。

求符号表达式s对于自变量x从a到b的定积分。

例6.34 分别计算下列表达式的积分:

2

3

x

x

x

dx

dy

(4)

dx

(3)

(1)

(43x)dx

(2)

1

x2

xy

xy

22

在命令窗口创建符号变量x和y,分别计算上面各表达式的积分。

>>clear

>>clc

>> syms x y

>> s=(4-3*x^2)^2;

>> int(s)

ans =

9/5*x^5-8*x^3+16*x

>> int(x/(x+y),x)

ans =

x-y*log(x+y)

>> int(x/(x+y),y)

ans =

x*log(x+y)

>> int(x^2/(x+2),x,1,3)

ans =

4*log(5)-4*log(3)

>> double(ans)

ans =

2.0433

4、积分变换

积分变换就是通过积分运算把一个函数f(原函数)变成另外一个函数F

7

(像函数)。变化的过程是:

F(t)

f(x)K(x,t)dx

a

b

其中二元函数

K(x,t)

称为变换的核,变换的核决定了变换的不同名称。在

一定的条件下原函数和像函数之间是一一对应的,可以相互转化。积分变换的

意义是换一个角度来认识函数,积分变换的一项基本应用是解微分方程,求解

过程是基于这样一种想法:假如不容易从原方程直接求得解f,则对原方程进

行变换,如果能从变换后的方程中求得解F,则对F进行逆变换,即可求得原

方程的解f,当然,在选择变换的核时,应该使得变换以后的方程比原方程容

易求解。MATLAB提供的变换函数如表6-10所示。

表6-10 常用的积分变换函数

函数名称 函数格式

fourier(fx,x,t)

傅立叶变换

ifourier(Fw,t,x) Fw为函数F(t)的符号表达式、t为自变量、x为原函数f(x)

的自变量。结果为函数F(t)的傅立叶原函数f(x)

拉普拉斯变换

laplace(fx,x,t)

ilaplace(Fw,t,x)

Z变换

ztrans(fx,x,t)

iztrans(Fw,t,x)

2

说明

Fx为函数f(x)的符号表达式、x为自变量、t像函数F(t)

的自变量。结果为函数f(x)的傅立叶像函数F(t)

结果为函数f(x)的拉普拉斯像函数F(t)

结果为函数F(t)的拉普拉斯原函数f(x)

结果为函数f(x)的Z变换像函数F(t)

结果为函数F(t)的Z变换原函数f(x)

例6.35 求函数

ye

x

的傅立叶变换及其逆变换。

>> syms x t

>> y=exp(-x^2);

>> Ft=fourier(y,x,t) %傅立叶变换

Ft =

pi^(1/2)*exp(-1/4*t^2)

>> fx=ifourier(Ft,t,x) %傅立叶逆变换

fx =

1/2*4^(1/2)*exp(-x^2)

三、符号方程求解

1、代数方程

代数方程是指未涉及微积分运算的方程,相对比较简单。在MATLAB符号数

8

学工具箱中,求解用符号表达式表示的代数方程可由函数solve实现,其调用

格式如表6-11所示。

表6-11 符号方程的函数

函数格式

solve(s)

solve(s,x)

solve(s

1

,s

2,

…s

n

,x

1

,x

2

,...x

n

)

说明

求解符号表达式s=0的代数方程,自变量为默认自变量

求解符号表达式s=0的代数方程,自变量为x

求解由符号表达式s

1

,s

2,

…s

n

组成的代数方程组,自变量分别为x

1

,x

2

,...x

n

例6.36 分别求解代数方程ax

2

+bx+c=0。

在命令窗口创建符号变量a、b、c和x。

>>clear

>>clc

>> syms a b c x

>> s=a*x^2+b*x+c;

>> solve(s)

ans =

[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]

[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]

例6.37 求解代数方程组:

2x

2

y

2

3z4

xz3

x2y3z

在命令窗口创建符号变量x、y、z,求解方程组。

>> syms x y z

>> s1=2*x^2+y^2-3*z-4;

>> s2=y+z-3;

>> s3=x-2*y-3*z;

>> [x,y,z]=solve(s1,s2,s3)

x =

[ 7/2+1/6*i*699^(1/2)]

[ 7/2-1/6*i*699^(1/2)]

y =

[ 11/2-1/6*i*699^(1/2)]

[ 11/2+1/6*i*699^(1/2)]

z =

[ -5/2+1/6*i*699^(1/2)]

9

[ -5/2-1/6*i*699^(1/2)]

2、符号微分方程求解

在MATLAB中,用大写字母D来表示微分方程的导数。例如:Dy表示

y

D2y表示

y



。D2y+Dy+x-10=0表示微分方程

y



y

x100

。Dy(0)=3

表示

y

(0)3

在符号数学工具箱中,求解表达式微分方程的符号解由函数dsolve实现,其调

用格式为:

 r=dsolve(‘eq’,‘cond’, ‘var’)

说明:式中eq代表常微分方程,cond代表常微分方程的边界条件或初始

条件,var代表自变量,缺省是按系统默认原则处理。该函数可求解微分方程

的特解。

 r=dsolve(‘eq1’, ‘eq2’…‘eqN’,‘cond1’, ‘cond2’…‘condN’,

‘var1’…‘varN’)

说明:该函数求解由eq1,eq2,…指定的常微分方程组在条件cond1,

cond2,…,condN下的符号解,若不给出初始条件,则求方程组的通解。var1,…,

varN为求解变量,如果不指定,将为默认自变量。

dyt

2

y

2

例6.38 求微分方程的通解。

dt

2t

2

在命令窗口分别输入表达式,求解方程。

>> y=dsolve('Dy-(t^2+y^2)/t^2/2','t') %方程右端的零可以不写

y =

t*(-log(t)+2+C1)/(-log(t)+C1) %通解

例6.39 求微分方程

dy

2xy

2

的通解,和当y(0)=1时的特解。

dx

在命令窗口输入表达式,求解方程。

>> y=dsolve('Dy=2*x*y^2','x') %求通解

y =

-1/(x^2-C1)

>> y=dsolve('Dy=2*x*y^2','y(0)=1','x') %求特解

y =

-1/(x^2-1)

10

四、级数

1、级数的符号求和

数值级数和函数级数是高等数学的重点研究内容,也是物理学以及其他工

程技术学科的重要理论基础和分析工具。在MATLAB符号数学工具中,级数表

达式的求和由函数symsum实现,其调用格式如表6-12。

表6-12 级数求和函数

函数格式

symsum(S)

symsum(S,x)

symsum(S,a,b)

symsum(S,x,a,b)

说明

计算符号表达式S(表示级数的通项)对于默认自变量的不定和。

计算符号表达式S对于自变量x的不定和。

计算符号表达式S对于默认自变量从a到b的有限和。

计算符号表达式S对于自变量x从a到b的有限和。

10

x

k

例6.40 分别计算表达式

k

(k3)

k1

k

0

2

在命令窗口创建符号变量k和x,分别计算上面各表达式。

>>clear

>>clc

>> syms x k

>> symsum(k)

ans =

1/2*k^2-1/2*k

>> symsum(k^2-3,0,10)

ans =

352

>> symsum(x^k/k,k,1,inf)

ans =

-log(1-x)

2、函数的泰勒级数

泰勒级数可以将一个任意函数表示为一个幂级数,并且,在许多情况下,

只需要取幂级数的前有限项来表示该函数,这对于大多数工程应用问题来说,

精度已经足够。在MATLAB符号数学工具中,表达式的Taylor级数展开由函数

11

taylor实现,其调用格式如表6-13所示。

表6-13 泰勒级数函数格式

函数格式

taylor(s)

taylor(s,n)

taylor(f,n,a)

taylor(f,x,n,a)

说明

计算符号表达式s在默认自变量等于0处的5阶Taylor级数展开式。

计算符号表达式s在默认自变量等于0处的n-1阶Taylor级数展开式。

计算符号表达式s在默认自变量等于a处的n-1阶Taylor级数展开式

计算符号表达式s在自变量x等于a处的n-1阶Taylor级数展开式

1xx

2

例6.41 分别计算表达式的5阶泰勒级数展开式和12阶泰勒级

1xx

2

数展开式。

在命令窗口创建符号变量,分别计算上面各表达式。

>>clear

>>clc

>> syms x

>> s=(1-x+x^2)/(1+x+x^2);

>> taylor(s)

ans =

1-2*x+2*x^2-2*x^4+2*x^5

>> taylor(s,x,12)

ans =

1-2*x+2*x^2-2*x^4+2*x^5-2*x^7+2*x^8-2*x^10+2*x^11

12

发布评论

评论列表 (0)

  1. 暂无评论