Re: FindRoot and evaluations
- To: mathgroup at smc.vnet.net
- Subject: [mg96984] Re: FindRoot and evaluations
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Sun, 1 Mar 2009 04:55:02 -0500 (EST)
- References: <gob7r0$g4q$1@smc.vnet.net>
Davide,
You should define SomethingLongAndHeavy so that it only accepts
numeric input.
Instead of defining it as SomethingLongAndHeavy[x_] := ... define it
as SomethingLongAndHeavy[x_?NumericQ] := ...
Don't forget to clear the previous definition before using ClearAll
[SomethingLongAndHeavy] or Quit the kernel.
Cheers -- Sjoerd
On Feb 28, 1:40 pm, ventut... at gmail.com wrote:
> Let's say:
>
> F[x_]:=Module[
> {x0=x},
> Print[x0];
> SomethingLongAndHeavy[x0]
> ];
>
> now I do:
>
> FindRoot[F[x],{x,0}]
>
> and it prints:
>
> x
>
> because it first attempts to evaluate F[x] in a symbolic form.
> I don't want this. Because SomethingLongAndHeavy is a recursion set of
> relations which generates a polynomial of order... too much. What I
> would like to see is:
>
> 0.0001
> 0.0002
> ...
>
> So that F[x] is treated as a blackbox, and some Newton or Bisection
> method is applied on this blackbox.
> How to do that?
>
> Thanks!
> Davide
>
> PS: Based on previous discussions I already tried to play with
> attributes HoldAll and option Evaluated, with no success.