[Maxima] solve_rec problem

reyssat eric.reyssat at math.unicaen.fr
Tue Jun 9 15:07:55 CDT 2009


Richard Hennessy a écrit :
> I think I don't understand solve_rec() in the solve_rec package.
>  
> I tried
>  
> (%i13) display2d:false;
> (out13) false
> (%i14) solve_rec(a[i]=x*a[i-1]/(6*i*(6*i+1)),a[i]);
> (out14) a[i] = gamma(1/6)*%k[1]*6^(1-2*i)*x^i/(6*i!*gamma(i+7/6))
> (%i15) solve_rec(a[i]=x*a[i-6]/(i*(i+1)),a[i]);
> (out15) false
>  
> Should the answer in the second case not be false, I have the 
> recurrence relation which skips over 5 terms so a[i] = f(a[i-6]) but 
> why do I have to rewrite it so a[i]=f(a[i-1])?
>  
> Rich
>  
Hello Richard,

in principle, you may skip terms in a recurrence relation if you wish. 
This just makes the result more complex, possibly not expressible in 
terms of  usual functions.

For instance the so-called double factorial (see 
http://en.wikipedia.org/wiki/Factorial#Double_factorial) defined by 
f(n)=1 for n<2 and f(n)=n.f(n-2) for n>1 is not solved :
(%i3) solve_rec(a[i]=i*a[i-2],a[i]);
(%o3) false

But the simpler recurrence f(n)=2.f(n-2) , which also skips one term, is 
solved :
(%i4) solve_rec(a[i]=2*a[i-2],a[i]);
(%o4) a[i] = %k[1]*2^(i/2)*(-1)^i+%k[2]*2^(i/2)

and also f(n)=2.f(n-6) :
(%i5) solve_rec(a[i]=2*a[i-6],a[i]);
(%o5) a[i] = %k[3]*2^(i/6)*(-1)^i+%k[6]*2^(i/6)
                                 +(2^(1/6)-2^(1/6)*sqrt(3)*%i)^i*%k[5]/2^i
                                 +(-2^(1/6)*sqrt(3)*%i-2^(1/6))^i*%k[4]/2^i
                                 +(2^(1/6)*sqrt(3)*%i-2^(1/6))^i*%k[2]/2^i
                                 +(2^(1/6)*sqrt(3)*%i+2^(1/6))^i*%k[1]/2^i

Your second case seems to be just too complex to be solved (and 
definitely doesn't represent the same sequence as your first case !).

Hope this helps.

Eric Reyssat


More information about the Maxima mailing list