matlab符号微积分微分方程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

matlab符号微积分微分方程

符号极限、微积分和符号方程的求解 1.语法:

sym(…表达式?) %创建符号表达式

f1=sym('a*x^2+b*x+c')

f1 =

a*x^2+b*x+c

2.使用syms命令创建符号变量和符号表达式

语法:

syms arg1 arg2 …,参数 %把字符变量定义为符号变量的简洁形式

syms a b c x %创建多个符号变量

f2=a*x^2+b*x+c %创建符号表达式

3.4.1符号极限

假定符号表达式的极限存在,Symbolic Math Toolbox提供了直接求表达

式极限的函数limit,函数limit的基本用法如表3.2所示。

表3.2 limit函数的用法

表达式函数格式说明

limf(x) limt(f) 对x求趋近于0的极限 x,0

limf(x) limt(f,x,a) 对x求趋近于a的极限,当左右极限不相等时x,a极限不存在。

limf(x) limt(f,x,a, 对x求左趋近于a的极限 ,x,aleft)

limf(x) limt(f,x,a, 对x求右趋近于a的极限,x,aright)

【例3.14】分别求1/x在0处从两边趋近、从左边趋近和从右边趋近的三个极限值。

f=sym('1/x')

limit(f,'x',0) %对x求趋近于0的极限

ans =

NaN

limit(f,'x',0,'left') %左趋近于0

ans =

-inf

limit(f,'x',0,'right') %右趋近于0

ans =

inf

程序分析:当左右极限不相等,表达式的极限不存在为NaN。

3.4.2符号微分

函数diff是用来求符号表达式的微分。

语法:

diff(f) %求f对自由变量的一阶微分

diff(f,t) %求f对符号变量t的一阶微分

diff(f,n) %求f对自由变量的n阶微分

diff(f,t,n) %求f对符号变量t的n阶微分

2【例3.15】已知f(x),ax+bx+c,求f(x)的微分。

f=sym('a*x^2+b*x+c')

f =

a*x^2+b*x+c

diff(f) %对默认自由变量x求一阶微分

ans =

2*a*x+b

diff(f,'a') %对符号变量a求一阶微分

ans =

x^2

diff(f,'x',2) %对符号变量x求二阶微分

ans =

2*a

diff(f,3) %对默认自由变量x求三阶微分

ans =

微分函数diff也可以用于符号矩阵,其结果是对矩阵的每一个元素进行微分运算。

2,,2xt【例3.15续】对符号矩阵求微分。 ,,xtsin(x)e,,,,

syms t x

g=[2*x t^2;t*sin(x) exp(x)] %创建符号矩阵

g =

[ 2*x, t^2] [ t*sin(x), exp(x)]

diff(g) %对默认自由变量x求一阶微分

ans =

[ 2, 0] [ t*cos(x), exp(x)]

diff(g,'t') %对符号变量t求一阶微分

ans =

[ 0, 2*t]

[ sin(x), 0]

diff(g,2) %对默认自由变量x求二阶微分

ans =

[ 0, 0] [ -t*sin(x), exp(x)]

diff还可以用于对数组中的元素进行逐项求差值。【例3.15续】可以使用

diff计算向量间元素的差值。

x1=0:0.5:2;

y1=sin(x1)

y1 =

0 0.4794 0.8415 0.9975 0.9093

diff(y1) %计算元素差

ans =

0.4794 0.3620 0.1560 -0.0882 程序分析:计算出的差值比原来的向量少一列。

3.4.3符号积分

积分有定积分和不定积分,运用函数int可以求得符号表达式的积分。语法: int(f,?t?) %求符号变量t的不定积分

int(f,?t?,a,b) %求符号变量t的积分

int(f,?t?,?m?,?n?) %求符号变量t的积分

说明:t为符号变量,当t省略则为默认自由变量;a和b为数值,[a,b]为

积分区间;m和n为符号对象,[m,n]为积分区间;与符号微分相比,符号积

分复杂得多。因为函数的积分有时可能不存在,即使存在,也可能限于很多条件,MATLAB无法顺利得出。当MATLAB不能找到积分时,它将给出警

告提示并返回该函数的原表达式。

cos(x)cos(x)【例3.16】求积分和。 ,,,

f=sym('cos(x)');

int(f) %求不定积分

ans =

sin(x)

int(f,0,pi/3) %求定积分

ans =

1/2*3^(1/2)

int(f,'a','b') %求定积分

ans =

sin(b)-sin(a)

int(int(f)) %求多重积分

ans =

-cos(x)

diff和int命令,也可以直接对字符串f进行运算:

f='cos(x)';

2,,2xt【例3.16续】求符号矩阵的积分。 ,,xtsin(x)e,,,,syms t x

g=[2*x t^2;t*sin(x) exp(x)] %创建符号矩阵

g =

[ 2*x, t^2] [ t*sin(x), exp(x)]

int(g) %对x求不定积分

ans =

[ x^2, t^2*x] [ -t*cos(x), exp(x)]

int(g,'t') %对t求不定积分

相关文档
最新文档