Solving Riccati's ODEs - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Differential Equations : Classifying ODEs : First Order : odeadvisor/Riccati

Solving Riccati's ODEs

Description

• 

The general form of Riccati's equation is given by the following:

Riccati_ode := diff(y(x),x)-f(x)*y(x)^2-g(x)*y(x)-h(x);

Riccati_ode:=ⅆⅆxyxfxyx2gxyxhx

(1)
  

where fx, gx, and hx are arbitrary functions.

• 

The so-called "Special" form of Riccati's equation is given by:

Riccati_S := diff(y(x),x)+a*y(x)^2-b*x^c;

Riccati_S:=ⅆⅆxyx+ayx2bxc

(2)
  

See Differentialgleichungen, by E. Kamke, pp. 21-23. There is as yet no general solution for the regular Riccati ODE.

• 

For hx=0, we have an ODE of Bernoulli type which can be solved in a direct manner by dsolve (see odeadvisor,Bernoulli). In the other cases, a good strategy might be to introduce an appropriate change of variables. A general transformation for canceling hx is not yet known.

Examples

withDEtools,odeadvisor

odeadvisor

(3)

withPDEtools,dchange

dchange

(4)

odeadvisorRiccati_ode

_Riccati

(5)

odeadvisorRiccati_S

_Riccati,_special

(6)

The following transformation

ITR:=x=t,yx=utht

ITR:=x=t,yx=utht

(7)

leads to another Riccati ODE, but with h(x) -> 1:

ode_draft:=dchangeITR,Riccati_ode,known=fx,gx,hx,t,ut:

ode2:=ⅆⅆtut=solveode_draft,ⅆⅆtut:

new_ode:=collectode2,ut,normal

new_ode:=ⅆⅆtut=1+htftut2+htgtⅆⅆthtutht

(8)

The following transformation

ITR:=x=t,yx=utⅇ∫gtⅆt

ITR:=x=t,yx=utⅇ∫gtⅆt

(9)

leads to another Riccati ODE but without the "linear in u(t)" term:

ode_draft:=dchangeITR,Riccati_ode,known=fx,gx,hx,t,ut:

ode2:=isolateode_draft,ⅆⅆtut:

new_ode:=collectode2,ut,simplify

new_ode:=ⅆⅆtut=ⅇ∫gtⅆtftut2+htⅇ∫gtⅆt

(10)

Depending on the case, the system might be able to solve the problem using one of the transformations above; the above transformations can also be used as departure point for guessing another transformation suitable for the given problem. It is also possible to introduce a change of variables leading to a linear ODE of the second order (see below).

Concerning Riccati ODEs of Special type, the solving scheme can be summarized as follows. The first thing worth noting is that, for c=0 the system succeeds in solving the ODE:

dsolvesubsc=0,Riccati_S

yx=tanh_C1ab+xababa

(11)

Now, for c0, Riccati Special ODEs can be reduced, step by step, to the case c=0, provided that c can be written as cn=4n2n1 (integer n). Examples of possible values for c:

cn=seq4i2i1,i=3..3

cn=127,85,43,0,4,83,125

(12)

The idea is to change variables so as to obtain another ODE of type Riccati Special, but with c[n->0], until reaching c0=0. There are two variable transformations leading to the desired reduction, depending on the sign of n in cn above (see examples at the end).

1) Riccati Special ODE with c=83 (c2=83)

ode:=subsc=83,Riccati_S

ode:=ⅆⅆxyx+ayx2bx8/3

(13)

The general transformation for n > 0 (in cn), in order to reduce c is given by

itr:=yx=1srr2c+3+1ar1c+3,x=r1c+3

itr:=x=r1c+3,yx=1srr2c+3+1ar1c+3

(14)

In each step, you must introduce the corresponding value of c before using it.

ITR:=subsc=83,itr

ITR:=x=r3,yx=1srr6+1ar3

(15)

The change of variables plus a few simplifications leads to the desired new_ode of type Riccati Special with the order of c reduced by one.

ode_draft:=dchangeITR,ode,sr,r:

ode2:=opsolveode_draft,ⅆⅆrsr:

new_ode:=expandcombineode2,symbolic

new_ode:=ⅆⅆrsr=3bsr2+3ar4

(16)

The exponent of r was reduced from c2=83 to c1=4. Keep doing that until the value c=0 is reached. Then, as shown above, a solution is already known.

The same idea applies when n < 0 (in c[n]). For this case, the change of variables is given by

itr:=y&equals;1srr2&plus;c&plus;1rb&comma;x&equals;r1c&plus;1

itr:=x&equals;r1c&plus;1&comma;y&equals;1srr2&plus;c&plus;1rb

(17)

The case in which f(x) + g(x) + h(x) = 0

ode:=subshx&equals;fxgx&comma;Riccati_ode

ode:=&DifferentialD;&DifferentialD;xyxfxyx2gxyx&plus;fx&plus;gx

(18)

dsolveode&comma;yx

yx&equals;12&ExponentialE;&int;2fx&plus;gx&DifferentialD;x_C1&plus;2&int;fx&ExponentialE;&int;2fx&plus;gx&DifferentialD;x&DifferentialD;x

(19)

Finally, it is also possible to convert Riccati ODEs in second order linear homogeneous ODEs, by using convert,ODEs), as follows:

convertRiccati_ode&comma;linearODE

&DifferentialD;2&DifferentialD;x2_ax&equals;gxfx&plus;&DifferentialD;&DifferentialD;xfx&DifferentialD;&DifferentialD;x_axfxfxhx_ax&comma;yx&equals;&DifferentialD;&DifferentialD;x_axfx_ax

(20)

In the above, the first operand is the second order linear ODE and the second operand is the transformation of variables used.

See Also

DEtools, odeadvisor, dsolve, and ?odeadvisor,<TYPE> where <TYPE> is one of: quadrature, linear, separable, Bernoulli, exact, homogeneous, homogeneousB, homogeneousC, homogeneousD, homogeneousG, Chini, Riccati, Abel, Abel2A, Abel2C, rational, Clairaut, dAlembert, sym_implicit, patterns; for other differential orders see odeadvisor,types.


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam