Re: Import polynomial from file and define function
- To: mathgroup at smc.vnet.net
- Subject: [mg112147] Re: Import polynomial from file and define function
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Thu, 2 Sep 2010 02:31:00 -0400 (EDT)
Hi, maybe it helps when you have a function which does all that stuff for you by taking either a filename or a polynomial as string and the symbols you want to assign: SetAttributes[makePolynomial, HoldRest]; makePolynomial::invpar = "An error occured parsing the input \ string or in creating the polynomial."; makePolynomial[polyOrFilename_String, f_Symbol, vars__Symbol] := Block[{polystr, expr}, If[FileExistsQ[polyOrFilename], polystr = Import[polyOrFilename, "Text"], polystr = polyOrFilename]; If[SyntaxQ[polystr], expr = ToExpression[polystr]; If[PolynomialQ[expr, {vars}], Evaluate[f @@ (Pattern[#1, _] & ) /@ {vars}] := Evaluate[expr], Message[makePolynomial::invpar]; Return[$Failed]]]] Now you can do something like makePolynomial["x^5 + 5*x^4*y + 10*x^3*y^2 + 10*x^2*y^3 + 5*x*y^4 + y^5", f, x, y] f[x,3] or even makePolynomial["~/tmp/polynomial.txt", g, x, y] Hope this helps. Cheers Patrick On Wed, 2010-09-01 at 06:27 -0400, nick_twisp wrote: > Hello Mathematica community, > > I am looking for a solution of the following problem: > > I have some quite long polynomial in q and x stored in a file and > with > > test = Import["this_file_containing_the_polynomial"]; > > I import the string and with > > poly = ToExpression[test]; > > I convert it to an expression. If I usually would like to define a > function (like in this case in x and q) from it, I would write > > F[q_, x_] := poly; > > Unfortunately this doesn't work at all. Strange enough if I just paste > the huge expression behind F[q_, x_]:=, then it works and I have a > function in q and x, which is evaluated when I put a concrete number > e.g. for q (then becoming a polynomial in x). > > Does someone have an idea, how I could define a function from an > expression? > > Thanks in advance, > >