MathGroup Archive 2008

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

Search the Archive

Re: Help to remove equivalent (redundant) solutions from FindRoot[]


Hi,

you are sure that Union[] does not work ? And what is

f[x_, y_] := Sin[x] Cos[y]

data = Flatten[Table[{{x, y}, f[x, y]}, {x, 0, 2 Pi}, {y, 0, 2 Pi}],
    1];

g = Interpolation[data, InterpolationOrder -> 4];

grad = D[g[x, y], {{x, y}, 1}];

sol = Table[
   FindRoot[grad, {{x, x0, 0, 2 Pi}, {y, y0, 0, 2 Pi}}], {x0, 0,
    2 Pi}, {y0, 0, 2 Pi}];

Union[{x, y} /. Flatten[sol, 1],
  SameTest -> Function[{x, y}, (Sqrt[#.#] &[x - y] < 0.2)]]

??

Regards
   Jens

Modeler wrote:
> Assume I have the following code to find extrema of the 
> function interpolating Sin[x]Cos[y] in the square  [0,2Pi]x[0,2Pi]:
> 
> f[x_, y_] := Sin[x ] Cos[y] 
> 
> data = Flatten[
> Table[{{x, y}, f[x, y]}, {x, 0, 2 Pi}, {y, 0,
> 2 Pi}], 1]
> 
> g = Interpolation[data, InterpolationOrder -> 4] 
> 
> grad = D[g[x, y], {{x, y}, 1}]
> 
> Table[FindRoot[grad, {{x, x0, 0, 2 Pi}, {y, y0, 0, 2 Pi}}], {x0, 0,
> 2 Pi}, {y0, 0, 2 Pi}]
> 
> This will yield a list of the extrema, some of them are equivalent, but since the starting point of the algorithm is different every time one will get numerical errors that leads to tiny differences in the final values. Therefore, some entries of this list which ought to be equivalent are treated like distinct elements. Union[] or subsequent use of N[] with a given precision and Union[] won't help me get rid of the redundant elements. Any ideas how to bypass this problem?
> 


  • Prev by Date: Re: Maximize
  • Next by Date: Re: Hypergeometric1F1 polynomial
  • Previous by thread: Re: Help to remove equivalent (redundant) solutions from FindRoot[]
  • Next by thread: Re: Help to remove equivalent (redundant) solutions from FindRoot[]