matlab符号微积分微分方程.docx

上传人:b****5 文档编号:2854606 上传时间:2022-11-16 格式:DOCX 页数:12 大小:187.26KB
下载 相关 举报
matlab符号微积分微分方程.docx_第1页
第1页 / 共12页
matlab符号微积分微分方程.docx_第2页
第2页 / 共12页
matlab符号微积分微分方程.docx_第3页
第3页 / 共12页
matlab符号微积分微分方程.docx_第4页
第4页 / 共12页
matlab符号微积分微分方程.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

matlab符号微积分微分方程.docx

《matlab符号微积分微分方程.docx》由会员分享,可在线阅读,更多相关《matlab符号微积分微分方程.docx(12页珍藏版)》请在冰豆网上搜索。

matlab符号微积分微分方程.docx

matlab符号微积分微分方程

符号极限、微积分和符号方程的求解

1.语法:

sym(‘表达式’)%创建符号表达式

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

f1=

a*x^2+b*x+c

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

语法:

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

symsabcx%创建多个符号变量

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

3.4.1符号极限

假定符号表达式的极限存在,SymbolicMathToolbox提供了直接求表达式极限的函数limit,函数limit的基本用法如表3.2所示。

表3.2limit函数的用法

表达式

函数格式

说明

limt(f)

对x求趋近于0的极限

limt(f,x,a)

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

limt(f,x,a,left)

对x求左趋近于a的极限

limt(f,x,a,right)

对x求右趋近于a的极限

【例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阶微分

【例3.15】已知f(x)=ax2+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=

0

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

【例3.15续】对符号矩阵

求微分。

symstx

g=[2*xt^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=

00.47940.84150.99750.9093

diff(y1)%计算元素差

ans=

0.47940.36200.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不能找到积分时,它将给出警告提示并返回该函数的原表达式。

【例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)';

【例3.16续】求符号矩阵

的积分。

symstx

g=[2*xt^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求不定积分

ans=

[2*x*t,1/3*t^3]

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

int(g,sym('a'),sym('b'))%对x求定积分

ans=

[b^2-a^2,t^2*(b-a)]

[-t*cos(b)+t*cos(a),exp(b)-exp(a)]

3.4.4符号级数

1.symsum函数

语法:

symsum(s,x,a,b)%计算表达式s的级数和

说明:

x为自变量,x省略则默认为对自由变量求和;s为符号表达式;[a,b]为参数x的取值范围。

【例3.17】求级数

和1+x+x2+…+xk+…的和。

symsxk

s1=symsum(1/k^2,1,10)%计算级数的前10项和

s1=

1968329/1270080

s2=symsum(1/k^2,1,inf)%计算级数和

s2=

1/6*pi^2

s3=symsum(x^k,'k',0,inf)%计算对k为自变量的级数和

s3=

-1/(x-1)

2.taylor函数

语法:

taylor(F,x,n)%求泰勒级数展开

说明:

x为自变量,F为符号表达式;对F进行泰勒级数展开至n项,参数n省略则默认展开前5项。

【例3.17续】求ex的泰勒展开式为:

symsx

s1=taylor(exp(x),8)%展开前8项

s1=

1+x+1/2*x^2+1/6*x^3+1/24*x^4+1/120*x^5+1/720*x^6+1/5040*x^7

s2=taylor(exp(x))%默认展开前5项

s2=

1+x+1/2*x^2+1/6*x^3+1/24*x^4+1/120*x^5

3.6符号方程的求解

3.6.1代数方程

当方程不存在解析解又无其他自由参数时,MATLAB可以用solve命令给出方程的数值解。

语法:

solve(‘eq’,’v’)%求方程关于指定变量的解

solve(‘eq1’,’eq2’,’v1’,’v2’,…)%求方程组关于指定变量的解

说明:

eq可以是含等号的符号表达式的方程,也可以是不含等号的符号表达式,但所指的仍是令eq=0的方程;当参数v省略时,默认为方程中的自由变量;其输出结果为结构数组类型。

【例3.21】求方程ax2+bx+c=0和sinx=0的解。

f1=sym('a*x^2+b*x+c')%无等号

f1=

a*x^2+b*x+c

solve(f1)%求方程的解x

ans=

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

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

f2=sym('sin(x)')

f2=

sin(x)

solve(f2,'x')

ans=

0

程序分析:

当sinx=0有多个解时,只能得出0附近的有限几个解。

【例3.22】求三元非线性方程组

的解。

eq1=sym('x^2+2*x+1');

eq2=sym('x+3*z=4');

eq3=sym('y*z=-1');

[x,y,z]=solve(eq1,eq2,eq3)%解方程组并赋值给x,y,z

x=

-1

y=

-3/5

z=

5/3

程序分析:

输出结果为“结构对象”,如果最后一句为“S=solve(eq1,eq2,eq3)”,则结果为:

S=

x:

[1x1sym]

y:

[1x1sym]

z:

[1x1sym]

3.6.2符号常微分方程

MATLAB提供了dsolve命令可以用于对符号常微分方程进行求解。

语法:

dsolve(‘eq’,’con’,’v’)%求解微分方程

dsolve(‘eq1,eq2…’,’con1,con2…’,’v1,v2…’)%求解微分方程组

说明:

’eq’为微分方程;’con’是微分初始条件,可省略;’v’为指定自由变量,省略时则默认为x或t为自由变量;输出结果为结构数组类型。

▪当y是因变量时,微分方程’eq’的表述规定为:

y的一阶导数

表示为Dy;

y的n阶导数

表示为Dny。

▪微分初始条件'con'应写成'y(a)=b,Dy(c)=d'的格式;当初始条件少于微分方程数时,在所得解中将出现任意常数符C1,C2……,解中任意常数符的数目等于所缺少的初始条件数。

【例3.23】求微分方程

,y

(1)=0,y(0)=0的解。

y=dsolve('x*D2y-3*Dy=x^2','x')%求微分方程的通解

y=

-1/3*x^3+C1+C2*x^4

y=dsolve('x*D2y-3*Dy=x^2','y

(1)=0,y(5)=0','x')%求微分方程的特解

y=

-1/3*x^3+125/468+31/468*x^4

【例3.24】求微分方程组

的解。

[x,y]=dsolve('Dx=y,Dy=-x')

x=

cos(t)*C1+sin(t)*C2

y=

-sin(t)*C1+cos(t)*C2

程序分析:

默认的自由变量是t,C1、C2为任意常数,程序也可指定自由变量,结果相同:

[x,y]=dsolve('Dx=y,Dy=-x','t')

3.7符号函数的可视化

3.7.1符号函数的绘图命令

1.ezplot和ezplot3命令

ezplot命令是绘制符号表达式的自变量和对应各函数值的二维曲线,ezplot3命令用于绘制三维

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1