计算机代数系统第4章-方程求解(4)

2019-03-28 08:52

???ODE := x?y???yln(xy)???y???x? ??> dsolve(ODE,y); ?x???_C1????y???ex 函数dsolve给出的是微分方程的通解, 其中的任意常数是用下划线起始的内部变量表示的. 在Maple中, 微分方程的解是很容易验证的, 只需要将解代入到原方程并化简就可以了. > subs(%,ODE); ????ex???xx??x???_C1???????e???????x???_C1??????ln??ex?x???_C1???????????e?x???_C1????x - 115 -

> assume(x,real): assume(_C1,real): > simplify(%); ?e?x~???_C1~????(?x~???_C1~)e????x~_C1~?x~???_C1~????(?x~???_C1~)x~_C1~ > evalb(%); evalb函数的目的是对一个包含关系型运算符的表达式使用三值逻辑系统求值, 返回的值是true, false和FAIL. 如果无法求值, 则返回一个未求值的表达式. 通常包含关系型运算符“=, <>, <, <=, >, >=”的表达式在Maple中看作是代数方程或者不等式. 然而, 作为参数传递给evalb或者出现在if或while语句的逻辑表达式中时, 它们会被求值为true或false. 值得注意的是, evalb不化简表达式, 因此在使用evalb之前应将表达式化简, 否则可能会出错. 再看下面常微分方程的求解:y??- 116 -

truey?1 2> alias(y=y(x)): > ODE:=diff(y,x)=sqrt(y^2+1); ?ODE := y???y2???1?x > dsolve(ODE,y); 函数dsolve对于求解含有未知参变量的常微分方程也完全可以胜任: > alias(y=y(x)): > ODE:=diff(y,x)=-y/sqrt(a^2-y^2); ?y ODE := y?????xy???sinh(x???_C1)a2???y2> sol:=dsolve(ODE,y); ?2a2???2a2aln??y22?sol := x???a???y???a22a2???y2???????_C1???0 由此可见, 对于不能表示成显式结果的微分方程解, Maple尽可能将结果表示成隐式解. 另外, 对于平凡解y=0常常忽略, 这一点应该引起注意.

- 117 -

dsolve对于求解微分方程初值问题也十分方便的: > ODE:=diff(u(t),t$2)+omega^2*u(t)=0; ????????2u(t)???0ODE := ?u(t)2??t???2 > dsolve({ODE,u(0)=u0,D(u)(0)=v0},u(t)); v0sin(?t)u(t)??????u0cos(?t) ?2.2 利用积分变换求解微分方程 对于特殊的微分方程, 我们还可以指定dsolve利用积分变换方法求解, 只需要在dsolve中加入可选参数method=transform即可. 其中transform是积分变换, 可以是laplace、fourier、fouriercos或者fouriersin变换. 作为例子, 我们来看一个具有阻尼的振子在阶跃冲击(Heaviside函数)下的响应: > ODE:=diff(u(t),t$2)+2*d*omega*diff(u(t),t)+omega^2*u(t)=Heaviside(t); ???????2d?ODE := ?u(t)??t2???2??u(t)?????2u(t)???Heaviside(t)????t??? > initvals:=(u(0)=u[0],D(u)(0)=v[0]);

- 118 -

initvals := u(0)???u0,D(u)(0)???v0

>

solution:=dsolve({ODE,initvals},u(t),method=laplace);

?21(?td?)?(?u0???1)cosh(t???e?????solution := u(t)???d2?2????2)????(?v0???d?2u0???d)sinh(td2?2????2d2?2????2)????? Maple给出了问题的通解, 但没有区分自由振动(d=0)、欠阻尼(01)的情况. 下面加以区分求解: > assume(omega>0): > simplify(subs(d=0,solution)); u(t)???1???cos(t?)?2u0???cos(t?)???v0sin(t?)??2 > K:=subs(d=1/5,u[0]=1,v[0]=1,solution); ?2??(????1)cosh??t?1(?1/5t?)?????e???????K := u(t)????242????25???????1?2???1?sinh??????t55??????242??25??242??????25???????? > with(plots): >

- 119 -


计算机代数系统第4章-方程求解(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:应用现代汉语

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: