matlab符号积分和微分等等Word格式文档下载.docx
《matlab符号积分和微分等等Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《matlab符号积分和微分等等Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
一、符号对象
1、创建符号变量和符号矩阵
2、符号表达式的基本运算函数
3、符号表达式的化简函数
4、符号表达式的替换函数
二、符号微积分
1、符号极限
2、符号求导
3、符号积分
4、积分变换
三、符号方程求解
1、代数方程
2、符号微分方程求解
四、级数
1、级数的符号求和
2、函数的泰勒级数
10’
5’
教学后记
作业
内容
备 注
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=[135;
246;
7911];
%建立数值矩阵
m=sym(e)%创建符号矩阵
m=
[1,3,5]
[2,4,6]
[7,9,11]
在命令窗口的显示中,数值矩阵只显示元素的数值,而符号矩阵的每行元素放在一对方括号内;
在工作空间窗口显示的变量图标两者也不同,数值矩阵的图标为,符号矩阵(也称为符号对象)的图标为,二者很容易区分。
符号表达式的运算与普通数值运算的方式不同,它的运算结果是符号表达式或符号矩阵。
在MATLAB运算中,浮点运算速度最快,而符号计算占用时间和内存都比较多,但它的计算结果最精确。
在默认情况下,当用函数sym生成符号变量后,MATLAB将对这些变量进行符号计算。
在MATLAB符号计算工具箱中提供来了很多函数用于符号计算。
下面将介绍一些常用的符号运算函数,如表6-6所示。
表6-6常用的符号函数
函数格式
说明
symadd(S1,S2)
符号表达式S1加上符号表达式S2
symsub(S1,S2)
符号表达式S1减去符号表达式S2
symmul(S1,S2)
符号表达式S1乘上符号表达式S2
symdiv(S1,S2)
符号表达式S1除符号表达式S2
sympow(S,p)
符号表达式S1的p次幂,p可以是表达式
例6.27计算表达式x3-1与表达式x-1的和、差、积、商和乘方。
symsx
s1=x^3-1;
s2=x-1;
symadd(s1,s2)
ans=
x^3-2+x
symsub(s1,s2)
x^3-x
symmul(s1,s2)
(x^3-1)*(x-1)
>
symdiv(s1,s2)
(x^3-1)/(x-1)
sympow(s1,s2)
(x^3-1)^(x-1)
符号数学工具箱提供了符号表达式的因式分解、展开、合并、化简、通分等函数,见表6-7所示。
表6-7符号表达式的化简函数
collect(s,x)
合并自变量x的同幂系数
simple(s)
寻找表达式的最简型
expand(s)
符号表达式s的展开
simplify(s)
符号表达式的化简
factor(s)
因式分解
radsimp(s)
对含根式的表达式s化简
numden(s)
符号表达式s的分式通分
horner(s)
符号表达式s的嵌套形式
例6.28对表达式进行因式分解。
symsx%在命令窗口创建符号变量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化简分式(4x2+8x+3)/(2x+1)。
s=(4*x^2+8*x+3)/(2*x+1);
simplify(s)
2*x+3
MATLAB的符号数学工具箱提供了两个符号表达式的替换函数subexpr和subs,可以通过符号替换使表达式的输出形式化简,得到一个简单的表达式。
●函数Subexpr的调用格式为:
[R,SYM]=subexpr(S,SYM)
此函数用变量SYM(字符或字符串)的值代替符号表达式S中重复出现的字符串,R是返回替换后的结果。
●函数subs的调用格式:
R=subs(S,old,new)
该函数是用新的符号变量new替换原来符号表达式S中的变量old,R是替换后的符号表达式。
需要注意的,当变量new是数值形式时,显示的结果虽然是数值,但它事实上是符号变量。
要强制地求值需要用vpa函数。
例6.31求表达式在x=1时的代数值。
clear
clc
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)%强制求值
1.5000000000000000000000000000000
极限是微积分的基础,在MATLAB中,极限的求解是由limit函数实现的,其主要格式如表6-8所示。
表6-8符号极限的函数格式
limit(s)
s为符号表达式。
在系统默认表达式中的自变量趋向于0时的极限。
limit(s,a)
a为常数。
计算符号表达式s中由默认自变量趋向于a条件下的极限。
limit(s,x,a)
计算符号表达式s在x趋向于a条件下的极限。
limit(s,x,a,‘right’)
计算符号表达式s在x趋向于a条件下的右极限
limit(F,x,a,‘left’)
计算符号表达式s在x趋向于a条件下左的极限
例6.32分别计算表达式、、、和。
先在命令窗口创建符号变量a和x,再分别计算上面各表达式的极限。
symsxa;
limit(1/x,x,0,'
right'
inf
left'
)
-inf
limit(sin(x)/x)
1
limit((1+1/x)^x,x,inf,'
exp
(1)
limit(exp(-x),x,0,'
在符号数学工具箱中,表达式的导数由函数diff实现,其调用格式为:
diff(s,x,n)
其中s为符号表达式,x为自变量,n为求导的阶数。
例6.33分别计算表达式x5的一阶导数和三阶导数。
diff(x^5)
5*x^4
diff(x^5,3)
60*x^2
积分算法是非结构性的,许多函数的原函数存在,但不可用有限解析式表达式表示,即使可以求积分的函数,其求积分过程也可能很复杂,但利用MATLAB求积分就非常容易。
在MATLAB的符号数学工具箱中,表达式的积分由函数int实现,该函数可求不定积分和定积分,其调用格式如表6-9所示。
表6-9符号积分的函数格式
int(s)
求符号表达式s对于默认自变量的不定积分。
int(s,x)
求符号表达式s对于自变量x的不定积分
int(s,a,b)
求符号表达式s对于默认自变量从a到b的定积分。
int(s,x,a,b)
求符号表达式s对于自变量x从a到b的定积分。
例6.34分别计算下列表达式的积分:
(1)
(2)(3)(4)
在命令窗口创建符号变量x和y,分别计算上面各表达式的积分。
symsxy
s=(4-3*x^2)^2;
int(s)
9/5*x^5-8*x^3+16*x
int(x/(x+y),x)
x-y*log(x+y)
int(x/(x+y),y)
x*log(x+y)
int(x^2/(x+2),x,1,3)
4*log(5)-4*log(3)
double(ans)
2.0433
积分变换就是通过积分运算把一个函数f(原函数)变成另外一个函数F(像函数)。
变化的过程是:
其中二元函数称为变换的核,变换的核决定了变换的不同名称。
在一定的条件下原函数和像函数之间是一一对应的,可以相互转化。
积分变换的意义是换一个角度来认识函数,积分变换的一项基本应用是解微分方程,求解过程是基于这样一种想法:
假如不容易从原方程直接求得解f,则对原方程进行变换,如果能从变换后的方程中求得解F,则对F进行逆变换,即可求得原方程的解f,当然,在选择变换的核时,应该使得变换以后的方程比原方程容易求解。
MATLAB提供的变换函数如表6-10所示。
表6-10常用的积分变换函数
函数名称
傅立叶变换
fourier(fx,x,t)
Fx为函数f(x)的符号表达式、x为自变量、t像函数F(t)的自变量。
结果为函数f(x)的傅立叶像函数F(t)
ifourier(Fw,t,x)
Fw为函数F(t)的符号表达式、t为自变量、x为原函数f(x)的自变量。
结果为函数F(t)的傅立叶原函数f(x)
拉普拉斯变换
laplace(fx,x,t)
结果为函数f(x)的拉普拉斯像函数F(t)
ilaplace(Fw,t,x)
结果为函数F(t)的拉普拉斯原函数f(x)
Z变换
ztrans(fx,x,t)
结果为函数f(x)的Z变换像函数F(t)
i