Re: Functions and Packages

*To*: mathgroup at smc.vnet.net*Subject*: [mg26981] Re: Functions and Packages*From*: paradaxiom at my-deja.com*Date*: Tue, 30 Jan 2001 03:38:29 -0500 (EST)*References*: <94r6u9$id9@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Hi, The problem was that f contained global versions of x and y, whereas EulerEquations[...] was called with local versions of x and y. Below is a complete solution to your problem, I believe. Let me know if this is not the case: BeginPackage["Extremal`", {"Calculus`VariationalMethods`"}] Extremal::usage = "Usage: Extremal[ { f[ <<x, y[x]>> ], y[x], x } , {a, b}, yy ] " ; Begin["`Private`"] Extremal[ { f_, y_[x_], x_ }, { a_, b_ } , yy:{__List} ] := Module[ { w = Length[yy]-1, q, s } , q = Table[ Derivative[n][y] /@ {a,b} , {n, 0, w} ] // Flatten ; q = Thread[ q == Flatten[yy] ] ; s = EulerEquations[ f, y[x], x ] ; s = Prepend[ q, s ]; DSolve[ s, y[x], x ] ] End[] EndPackage[] math Mathematica 4.1 for Linux Copyright 1988-2000 Wolfram Research, Inc. -- Motif graphics initialized -- In[1]:= <<Extremal` In[2]:= ?Extremal Usage: Extremal[ { f[ <<x, y[x]>> ], y[x], x } , {a, b}, yy ] In[3]:= Extremal[ {360 x^2 y[x]-y''[x]^2,y[x],x},{0,1},{{0,0},{0,5/2}}] 2 3 6 -2 x + x + x Out[3]= {{y[x] -> ---------------}} 2 //Marten Sent via Deja.com http://www.deja.com/