Re: Recognising parameters in function
- To: mathgroup at smc.vnet.net
- Subject: [mg94573] Re: Recognising parameters in function
- From: dh <dh at metrohm.com>
- Date: Tue, 16 Dec 2008 06:03:56 -0500 (EST)
- References: <gi5jmt$ppv$1@smc.vnet.net>
Hi Stuart, consider f[{x,y}]. f receives the variables x and y directly by the argument and indirectly by z. This is "dirty" programming. In f[vars1] /. optim[[2]] only the direct occurence is replaced by numerical values. A second /. optim[[2]] is needed to replace the indirect occurence. To fix this, write f[] in a proper way, e.g.: f[vars_]:=Module[{a,x=vars[[1]],y=vars[[2]]}, a=1/2( (x-5)^2+(y-3)^2); Return[a]]/;VectorQ[vars,NumericQ ]; hope this helps, Daniel Stuart Nettleton wrote: > Hi, would someone be able to suggest why FindMinimum will recognise > parameters in the following function but the backsubstitution will not. > Thanks for any help, Stuart > Clear[f, vars1, z]; > vars1 = {x, y}; > z = (x - 5)^2 + (y - 3)^2; > f[vars_] := Module[{a}, > a = z/2; > Return[a] > ] /; VectorQ[vars, NumericQ]; > optim = FindMinimum[Join[{f[vars1]}, Thread[vars1 >= 0]], vars1] > optim[[2]] > f[vars1] /. optim[[2]] > > -- > UTS CRICOS Provider Code: 00099F > DISCLAIMER: This email message and any accompanying attachments may contain > confidential information. If you are not the intended recipient, do not > read, use, disseminate, distribute or copy this message or attachments. If > you have received this message in error, please notify the sender > immediately and delete this message. Any views expressed in this message > are those of the individual sender, except where the sender expressly, and > with authority, states them to be the views the University of Technology, > Sydney. Before opening any attachments, please check them for viruses and > defects. >