Re: FindRoot problem
- To: mathgroup at smc.vnet.net
- Subject: [mg40073] Re: FindRoot problem
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Tue, 18 Mar 2003 05:50:47 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <b51ac2$34o$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
can yo tell me what's the derivative of
f[x]=Sec[x] - 0.0018167 (Sec[x] - 1) - 0.002875 (Sec[x] - 1)^2 -
0.000808 (Sec[x] - 1)^3 for x>=0 and x <=1.54
at x==0 ? or at x==2 ? Mathematica can't and so it can't use
the Newton method to find the solution.
To force FindRoot[] to use the secand method you have
to give an interval that brackets the root but you
can also not give such a interval. So you get an
error message.
Regards
Jens
"Pigeon, Robert" wrote:
>
> Good day,
> I have a problem with FindRoot that I do not understand, so I am
> asking for help! I have a function defined as a Module. I use FindRoot to
> find a root when the function is given a value. Everything works fine
> except when I put a condition to my function, when I do I get an error
> message. Here what I try to do:
>
> f[x_]:= Module[{}, Sec[x] - 0.0018167 (Sec[x]-1) - 0.002875 (Sec[x]-1)^2 -
> 0.000808 (Sec[x]-1)^3 ];
> f::usage="explanation of f";
>
> If I do
> FindRoot[f[x]==10,{x,1.4}]
> I get
> {x->1.53501}
> All that is correct.
>
> But now if I do
> f[x_ /; x>= 0 && x<= 1.54]:= same as above
> and I try to find the root the same way, I get an error message
> FindRoot[f[x]==10,{x,1.4}]
> I get
> FindRoot::frjc: Could not symbolically find the Jacobian of {f[x]-10. Try
> giving two starting values for each variable.
>
> I tried putting my conditions inside the Module, after the Module. I tried
> to use Which, If. But, as soon as I put a condition, I get the same error.
>
> Any idea ???
>
> Thanks,
>
> Robert