MathGroup Archive 2012

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

Search the Archive

Re: how to sovle array which odd and even have difference recursive function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg125266] Re: how to sovle array which odd and even have difference recursive function
  • From: danl at wolfram.com
  • Date: Sat, 3 Mar 2012 06:53:15 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <jiqfv7$8d$1@smc.vnet.net>

On Friday, March 2, 2012 6:55:03 AM UTC-6, jie zhao wrote:
> RSolve[{(b[n] == 1 + b[n/2] && Mod[n, 2] == 0) && (b[n] == 1/=
n &&
> Mod[n, 2] == 1)}, b[n]==2, n]   failed to work !
>         when n  is odd   b[n] == 1/n
>         when n  is even  b[n] == 1 + b[n/2]

Could do as follows. Solve a symbolic recurrence with base an arbitrary odd, and successive elements equal to powers of 2 times that base. So it will be a recurrence in two variables (more accurately, in one variable, parametrized by another). Then put this to use on an arbitrary input by breaking it into 2^power*odd.

In[30]:= bsol[o_, p_] =
  First[RSolve[{b[odd, 0] == 1/odd,
      b[odd, pwr] == 1 + b[odd, pwr - 1]},
     b[odd, pwr], {odd, pwr}]] /. {odd -> o, pwr -> p};
f[n_] := Module[{pwr = IntegerExponent[n, 2], odd},
  odd = n/2^pwr;
  b[odd, pwr] /. bsol[odd, pwr]
  ]

In[32]:= SetAttributes[f, Listable]

In[33]:= f[Range[20]]

Out[33]= {1, 2, 1/3, 3, 1/5, 4/3, 1/7, 4, 1/9, 6/5, 1/11, 7/3, 1/13,
 8/7, 1/15, 5,
   1/17, 10/9, 1/19, 11/5}

Daniel Lichtblau
Wolfram Research



  • Prev by Date: Save/DumpSave Interpolation doesn't work
  • Next by Date: Re: Can you call 32 Bit DLLs from Mathematica 8.0 ?
  • Previous by thread: how to sovle array which odd and even have difference recursive function
  • Next by thread: Re: Can I solve this system of nonlinear equations?