RE: Package Problem
- To: mathgroup at smc.vnet.net
- Subject: [mg93881] RE: [mg93825] Package Problem
- From: "David Park" <djmpark at comcast.net>
- Date: Thu, 27 Nov 2008 05:35:10 -0500 (EST)
- References: <12389980.1227702410661.JavaMail.root@m02>
I'm not completely certain, but I think your problem may be that in the package x becomes a Private symbol. You should probably define your routine as: Nullstellen[f_, interval_List, variable_:Global`x] and then define and set x to variable in the package routine. Also, you might want to look at the RootSearch package by Ted Ersek on MathSource at the WRI site. This is a very nice routine for finding roots of 1-dimensional functions within an interval. David Park djmpark at comcast.net http://home.comcast.net/~djmpark From: m.g. [mailto:mg at michaelgamer.de] Hello Group, I have the following problem. I made a short Module to calculate the zeros of a given Function.I did this simply in the following way: Nullstellen[f_, intervall_List] := Module[{func, startwerte, werte, vzwechsel, liste, a = intervall[[1]], b = intervall[[2]]}, func = Function[x, Evaluate[f]]; werte = Table[x, {x, a, b, Abs[b - a]/100.}]; (* start-values *) liste = ({#, func[x] /. x -> #} ) & /@ werte; vzwechsel = Select[Split[liste, (Sign[Last[#1]] == -Sign[Last [#2]]) &], Length[#] == 2 &]; (* Sign Change*) startwerte = Map[First, vzwechsel, {2}]; Map[FindRoot[func[x] == 0, {x, #[[1]], #[[2]]}] &, startwerte] ] This works fine, but when I copy exactly this code in my own package... it works not. I get an output like this: Nullstellen[x^2 - 2, {-2, 2}] {{-2.,-2+x^2},{-1.8,-2+x^2},{-1.6,-2+x^2},{-1.4,-2+x^2},{-1.2,-2+x^2}, \ {-1.,-2+x^2},{-0.8,-2+x^2},{-0.6,-2+x^2},{-0.4,-2+x^2},{-0.2,-2+x^2}, {\ 1.11022*10^-16,-2+x^2},{0.2,-2+x^2},{0.4,-2+x^2},{0.6,-2+x^2},{0.8,-2+ \ x^2},{1.,-2+x^2},{1.2,-2+x^2},{1.4,-2+x^2},{1.6,-2+x^2},{1.8,-2+x^2}, {\ 2.,-2+x^2}} So the mapping of the function onto the values does not work. Can anyone explain the reason (and give me a hint how I can manage this function to work within a package). Many thanks in advance Mike from cold an rainy Germany