Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: RSolve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg32874] Re: [mg32834] RSolve
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Sat, 16 Feb 2002 04:35:37 -0500 (EST)
  • References: <200202140644.BAA19433@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Christophe Le Poncin-Lafitte wrote:
> 
> Hello,
> 
> I have a little problem with the RSolve function.
> I want to solve an Ordinary differential equation, a quiet difficult,
> with a development in series.
> My equation :
>               R''[r]+(E-l*(l+1)/r^2-beta*r^(1/3))*R[r]==0
> 
> where E, l and beta are constant.
> 
> Anybody knows how to proceed with Rsolve to calculate the generating
> element a[n] of the development :
>                           Sum[a[n]*r^n,n]
> 
> Thanks a lot.
> 
> Christophe.

I do not know about obtaining a recurrence but you can use Series to get
at least the first several terms of an expansion. Your differential
equation has a singularity at the origin so I will expand at r=1.

diffEq[func_,var_] :=
	D[func,{var,2}] + (E-ll*(ll+1)/var^2-beta*var^(1/3))*func

serbigR6 = Series[bigR[r], {r,1,6}];

We apply the differential equation. This will in effect impose relations
on coefficients.

seriesDE6 = diffEq[serbigR6, r];

We now truncate to a polynomial and substitute a new "variable" for
powers of r-1.

newser6 = Normal[seriesDE6] /. {r-1->newr}

We now extract the variables of interest.

vars6 = Append[Reverse[Sort[
	Cases[Variables[newser6],Derivative[n_][bigR][1]]]], bigR[1]];

Take coefficients of the series terms. We will solve for them.

polys6 = CoefficientList[newser6, newr]
solns6 = First[Solve[polys6==0, vars6, Sort->False]];

Note that we do not expect to solve for all of them because there are
two degrees of freedom (and the above Solve will give an appropriate
warning message).

In[50]:= InputForm[s6 = Together[vars6 /. solns6]]
Out[50]//InputForm= 
{(-80*beta*bigR[1] - 90*beta^2*bigR[1] + 81*beta^3*bigR[1] + 
   126*beta*E*bigR[1] - 243*beta^2*E*bigR[1] + 243*beta*E^2*bigR[1] - 
   81*E^3*bigR[1] + 9720*ll*bigR[1] + 2844*beta*ll*bigR[1] + 
   243*beta^2*ll*bigR[1] - 3402*E*ll*bigR[1] - 486*beta*E*ll*bigR[1] + 
   243*E^2*ll*bigR[1] + 14418*ll^2*bigR[1] + 3087*beta*ll^2*bigR[1] + 
   243*beta^2*ll^2*bigR[1] - 3645*E*ll^2*bigR[1] -
486*beta*E*ll^2*bigR[1] + 
   243*E^2*ll^2*bigR[1] + 9477*ll^3*bigR[1] + 486*beta*ll^3*bigR[1] - 
   486*E*ll^3*bigR[1] + 4941*ll^4*bigR[1] + 243*beta*ll^4*bigR[1] - 
   243*E*ll^4*bigR[1] + 243*ll^5*bigR[1] + 81*ll^6*bigR[1] + 
   120*beta*Derivative[1][bigR][1] + 162*beta^2*Derivative[1][bigR][1] - 
   162*beta*E*Derivative[1][bigR][1] - 7776*ll*Derivative[1][bigR][1] - 
   810*beta*ll*Derivative[1][bigR][1] + 972*E*ll*Derivative[1][bigR][1]
- 
   8748*ll^2*Derivative[1][bigR][1] -
810*beta*ll^2*Derivative[1][bigR][1] + 
   972*E*ll^2*Derivative[1][bigR][1] - 1944*ll^3*Derivative[1][bigR][1]
- 
   972*ll^4*Derivative[1][bigR][1])/81, 
 (10*beta*bigR[1] + 36*beta^2*bigR[1] - 36*beta*E*bigR[1] -
648*ll*bigR[1] - 
   180*beta*ll*bigR[1] + 216*E*ll*bigR[1] - 864*ll^2*bigR[1] - 
   180*beta*ll^2*bigR[1] + 216*E*ll^2*bigR[1] - 432*ll^3*bigR[1] - 
   216*ll^4*bigR[1] - 18*beta*Derivative[1][bigR][1] + 
   27*beta^2*Derivative[1][bigR][1] - 54*beta*E*Derivative[1][bigR][1] + 
   27*E^2*Derivative[1][bigR][1] + 486*ll*Derivative[1][bigR][1] + 
   54*beta*ll*Derivative[1][bigR][1] - 54*E*ll*Derivative[1][bigR][1] + 
   513*ll^2*Derivative[1][bigR][1] + 54*beta*ll^2*Derivative[1][bigR][1]
- 
   54*E*ll^2*Derivative[1][bigR][1] + 54*ll^3*Derivative[1][bigR][1] + 
   27*ll^4*Derivative[1][bigR][1])/27, 
 (-2*beta*bigR[1] + 9*beta^2*bigR[1] - 18*beta*E*bigR[1] + 9*E^2*bigR[1]
+ 
   54*ll*bigR[1] + 18*beta*ll*bigR[1] - 18*E*ll*bigR[1] +
63*ll^2*bigR[1] + 
   18*beta*ll^2*bigR[1] - 18*E*ll^2*bigR[1] + 18*ll^3*bigR[1] + 
   9*ll^4*bigR[1] + 6*beta*Derivative[1][bigR][1] - 
   36*ll*Derivative[1][bigR][1] - 36*ll^2*Derivative[1][bigR][1])/9, 
 (beta*bigR[1] - 6*ll*bigR[1] - 6*ll^2*bigR[1] + 
   3*beta*Derivative[1][bigR][1] - 3*E*Derivative[1][bigR][1] + 
   3*ll*Derivative[1][bigR][1] + 3*ll^2*Derivative[1][bigR][1])/3, 
 -((-beta + E - ll - ll^2)*bigR[1]), Derivative[1][bigR][1], bigR[1]}

As expected, the value and first derivative are unspecified, and further
derivatives are expressed in terms of them.


Daniel Lichtblau
Wolfram Research


  • References:
    • RSolve
      • From: Christophe Le Poncin-Lafitte <christophe.leponcin-lafitte@obspm.fr>
  • Prev by Date: Re: Generate expression from result
  • Next by Date: CAlculus Wiz
  • Previous by thread: RSolve
  • Next by thread: Re: RSolve