define and := (basic)



ok..thank you Stavros Macrakis

it appears  to be a bug in solve_rec.


Date: Thu, 19 Dec 2013 18:35:19 -0500
Subject: Re: [Maxima] define and := (basic)
From: macrakis at alum.mit.edu
To: rcrdjf at hotmail.com
CC: maxima at math.utexas.edu

'n' is in fact being bound in function 'g', but there appears to be a bug in solve_rec such that it gives a (bogus) result regardless:

solve_rec(f(n)=3*f(n-1),f(3),f(1)=2)
     =>   f(3) = 2*(7-n)^2/(n^2-14*n+49)

It shouldn't be allowing f(3) as its second argument.



On Thu, Dec 19, 2013 at 5:05 AM, Ricardo JF <rcrdjf at hotmail.com> wrote:




My doubt is when the variable is bound and when not.

.................
load(solve_rec);
rec:f(n)=3*f(n-1);
g(n):= rhs(solve_rec(rec,f(n),f(1)=3))  ... ( Is it  equal g(n):=rhs( f(n)=3^n) ? )


 --> 'n' isn't bound by function (why?)

.................

h(n):=rhs(f(n)=3^n );

 --> 'n' is bound by function
.................

i(n):= rhs(x=sqrt(n));  

 --> 'n' is bound by function

.................

thanks.
Date: Wed, 18 Dec 2013 20:39:20 -0500
Subject: Re: [Maxima] define and := (basic)
From: macrakis at alum.mit.edu
To: rcrdjf at hotmail.com

CC: maxima at math.utexas.edu

Why would you expect sqrt(y) etc.? After all, 'y' is bound by the function call.




On Wed, Dec 18, 2013 at 12:55 PM, Ricardo JF <rcrdjf at hotmail.com> wrote:





ok...i was not clear.f(x):= x^2;i(y):= rhs(last( solve(f(x)=y,x)));
i(2);i(3);i(4); --> it shoud be sqrt(y);sqrt(y);sqrt(y);


thanks.
Date: Wed, 18 Dec 2013 12:19:18 -0500
Subject: Re: [Maxima] define and := (basic)
From: macrakis at alum.mit.edu


To: rcrdjf at hotmail.com
CC: maxima at math.utexas.edu



On Wed, Dec 18, 2013 at 11:53 AM, Ricardo JF <rcrdjf at hotmail.com> wrote:

f(x):= x^2;i(y):= rhs(last( solve(f(x)=y,x)));i(2);i(3);i(4);


I'm not entirely sure I understand what you're asking. In particular, saying "doesn't work as expected" isn't very explicit: what were you expecting?



But if I'm understanding your question correctly...

In your first example, the variable 'y' is bound by the function. In the second it isn't. Here is a simpler example:




q(w):=w$
q(2) => 2
val: w$


r(w):= val$r(2) => val (not 2)