MathGroup Archive 2003

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

Search the Archive

Re: creating functions from the result of Solve[]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41858] Re: creating functions from the result of Solve[]
  • From: bobhanlon at aol.com (Bob Hanlon)
  • Date: Sat, 7 Jun 2003 00:08:47 -0400 (EDT)
  • References: <bbq83u$d4r$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Your equation is recursive: use RSolve.  You also need to define starting
values, 
say y[0] and y[1].

Needs["DiscreteMath`RSolve`"];

Clear[y];

y[n_?NonNegative] := 
  Evaluate[y[n] /. 
      Simplify[RSolve[{3y[n - 2] + 6y[n - 1] - 2y[n] == 0,y[0]==y0,y[1]==y1}, 
            y[n],n], n>=0][[1]]]

Table[y[n], {n,0,5}]//Simplify

{y0, y1, (3/2)*(y0 + 2*y1), (3/2)*(3*y0 + 7*y1), 
  (63*y0)/4 + 36*y1, 54*y0 + (495*y1)/4}


Bob Hanlon

In article <bbq83u$d4r$1 at smc.vnet.net>, kroosu at tref.nl (Okke) wrote:

<< Subject:	creating functions from the result of Solve[]
From:		kroosu at tref.nl (Okke)
To: mathgroup at smc.vnet.net
Date:		Fri, 6 Jun 2003 14:22:54 +0000 (UTC)

hello,

i have an equation and i want to make a function from the result of
Solve[]. 

for example:

IN: Solve[3y[n - 2] + 6y[n - 1] - 2y[n] == 0, y[n]]

OUT: {{y[n] -> (3*y[-2 + n] + 6*y[-1 + n])/2}}

and now i'd like to have the function
y[n_/;n>=0] := (3*y[-2 + n] + 6*y[-1 + n])/2

y[n]/.Flatten[Solve[eqn==0,y[n]]]       is possible, but
y[n_]:=y[n]/.Flatten[Solve[eqn==0,y[n]]] isn't


is there anybody who could help me get this to work?


  • Prev by Date: Re: creating functions from the result of Solve[]
  • Next by Date: Re: Taking a function as a parameter of a function
  • Previous by thread: Re: creating functions from the result of Solve[]
  • Next by thread: Re: creating functions from the result of Solve[]