Re: NMinimize problem: fct minimized uses FindRoot
- To: mathgroup at smc.vnet.net
- Subject: [mg123603] Re: NMinimize problem: fct minimized uses FindRoot
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Tue, 13 Dec 2011 05:39:04 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201112101227.HAA19219@smc.vnet.net> <201112121143.GAA12817@smc.vnet.net>
On 12 Dec 2011, at 12:43, Oleksandr Rasputinov wrote:
> For example, the erroneous usage:
>
> Block[{a = 1, b = 2}, Return[a]; Return[b]]
>
> gives:
>
> Return[1]
>
> but a correct usage:
>
> Do[Block[{a = 1, b = 2}, Return[a]; Return[b]], {1}]
>
> gives (because of the enclosing Do):
>
> 1
This is not quite the whole story. For example, while the above use of Return in Block does not work, this one (in a function call) does:
f[] := Block[{a = 1, b = 2}, Return[a]; Return[b]]
f[]
1
Moreover, if you replace the Do loop in your example with a While loop, you will get:
n = 1; While[n < 10, Block[{a = 1, b = 2}, Return[a]; Return[b]]]
Return[1]
All of this is purposeful design and can be explained and justified but I don't think it's worth the bother since Mathematica has far superior means of flow control than this clumsy and arcane construct.
Andrzej
- References:
- NMinimize problem: fct minimized uses FindRoot
- From: "Doug Tinkham" <dtinkham@live.ca>
- Re: NMinimize problem: fct minimized uses FindRoot
- From: "Oleksandr Rasputinov" <oleksandr_rasputinov@hmamail.com>
- NMinimize problem: fct minimized uses FindRoot