buildsol - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


DEtools

  

buildsol

  

build a solution to an ODE using a reduction of order returned by dsolve and a solution to the reduced ODE

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

buildsol(ODESolStructure, sol_reduced_ODE)

Parameters

ODESolStructure

-

answer returned by dsolve expressed in terms of ODESolStruc

sol_reduced_ODE

-

solution to the reduced ODE found inside ODESolStruc

Description

• 

For high order ODEs it may happen that dsolve succeeds in reducing the order of the ODE but not in solving the problem to the end. In those cases, the solution is expressed using ODESolStruc. You can obtain a solution for the reduced ODE by using the tools available in DEtools, as a series expansion, or by other means. If a solution to the reduced ODE is obtained, you can build a solution to the original problem using the buildsol command.

• 

The buildsol command is a function of two arguments. The first argument is the structure returned by dsolve as the solution to an ODE (see ODESolStruc). The second argument is a solution found by the user to the reduced ODE present inside the first argument. That solution may be a particular one; buildsol will not check whether the given solution actually solves the reduced ODE.

• 

This function is part of the DEtools package, and so it can be used in the form buildsol(..) only after executing the command with(DEtools). However, it can always be accessed through the long form of the command by using DEtools[buildsol](..).

Examples

withDEtools:

A third order nonlinear ODE

ODEdiffyx,x,x,x=diffyx,x,x1+diffyx,xexpyxx

ODEⅆ3ⅆx3yx=ⅆ2ⅆx2yx1+ⅆⅆxyxⅇyxx

(1)

This ODE is reducible:

odeadvisorODE

_3rd_order,_with_linear_symmetries,_3rd_order,_reducible,_mu_y2,_3rd_order,_reducible,_mu_poly_yn

(2)

It can be solved by dsolve directly by determining an appropriate integrating factor (see odeadvisor,reducible), but let's consider a possible answer for it as a reduction of order from 3 to 1:

solyx=ODESolStruc_c+IntexpInt_f1_c,_c+_C1,_c+_C2,diff_f1_c,_c=2_f1_c2+_f1_cexp_c,_c=yxx,_f1_c=diffdiffyx,x,x1+diffyx,x2,x=IntexpInt_f1_c,_c+_C1,_c+_C2,yx=_c+IntexpInt_f1_c,_c+_C1,_c+_C2

solyx=_c+ⅇ_f1_cⅆ_c+_C1ⅆ_c+_C2whereⅆⅆ_c_f1_c=2_f1_c2+_f1_cⅇ_c,_c=yxx,_f1_c=ⅆ2ⅆx2yx1+ⅆⅆxyx2,x=ⅇ_f1_cⅆ_c+_C1ⅆ_c+_C2,yx=_c+ⅇ_f1_cⅆ_c+_C1ⅆ_c+_C2

(3)

Test that the above solves the ODE by using odetest:

odetestsol,ODE

0

(4)

Now, the reduced ODE is of Bernoulli type, and can be selected using the mouse or through the following commands:

reduced_ODEop2,2,1,1,sol

reduced_ODEⅆⅆ_c_f1_c=2_f1_c2+_f1_cⅇ_c

(5)

odeadvisorreduced_ODE

_Bernoulli

(6)

From the above, it is clear that a particular solution to the reduced_ODE is given by

sol_red_1_f1_c=0

sol_red_1_f1_c=0

(7)

from which a particular solution to the original ODE above can be built using

particular_solbuildsolsol,sol_red_1

particular_solyx=ⅇc__1x+c__2xⅇc__1

(8)

odetestparticular_sol,ODE

0

(9)

In this "blackboard" example, dsolve succeeds in solving the reduced_ODE too, as follows:

sol_red_2dsolvereduced_ODE

sol_red_2_f1_c=ⅇⅇ_c2Ei1ⅇ_c+c__1

(10)

Passing this solution to buildsol, the general solution to ODE follows:

general_solbuildsolsol,sol_red_2

general_solyx=x+RootOfx+2` `_Zⅇc__12Ei1ⅇ_b+c__3ⅆ_b+c__2

(11)

odetestgeneral_sol,ODE

0

(12)

See Also

DESol

DEtools

dsolve

odeadvisor,reducible

ODESolStruc

odetest

PDEtools

series