Running a loop for Maximizing problem
- To: mathgroup at smc.vnet.net
- Subject: [mg75476] Running a loop for Maximizing problem
- From: "Shafiq Ahmad" <shafiq.ahmad at rmit.edu.au>
- Date: Wed, 2 May 2007 03:52:50 -0400 (EDT)
Hi
I've a non linear equation (OLE) and need to solve it to get the Maximum
Likelihood values. To do so, I tried a loop that every time the value
of b1 and b2 changes ranging from 10 to 100 with step of 10 and get the
Maximized value for OLE. The idea behind is to find a contour or
surface with axis such as b1=X-axis, b2=Y-axis and OLE= Zaxis
Is any one can suggest any idea? Below are the codes I tried
============================
In[173]:=
n = 20
x1 = {1.04, 1.06, 1.09, 1.05, 1.07, 1.06, 1.05, 1.1, 1.09, 1.05, 0.99,
1.06, 1.05, 1.07, 1.11, 1.04, 1.03, 1.05, 1.06, 1.04}
x2 = {115.25, 115.91, 115.05, 116.21, 115.9, 115.55, 114.98, 115.25,
116.15, 115.92, 115.75, 114.9, 116.01, 115.83, 115.29, 115.63, 115.47,
115.58, 115.72, 115.4}
pars = {b1, b2}
valsset = Table[{b1, b2}, {b1, 10, 100, 10}, {b2, 10, 100, 10}]
valsset = Flatten[valsset, 1]
rules = (MapThread[Rule, {pars, #1}] & ) /@ valsset
L/.rules
In[176]:=
OLE = n*Log[p] + n*Log[p + 1] + n*Log[b1] + n*Log[b2] + (b1 -
1)*Sum[Log[x1[[j]]], {j, 1, n}] + (b2 - 1)*Sum[Log[x2[[j]]], {j, 1, n}]
-
(p + 2)*Sum[Log[1 + x1[[j]]^b1 + x2[[j]]^b2], {j, 1, n}]
In[177]:=
Eqn1 = D[OLE, b1] == 0
Eqn2 = D[OLE, b2] == 0
Eqn3 = D[OLE, p] == 0
FindRoot[{Eqn1, Eqn2, Eqn3}, {b1, 10}, {b2, 10}, {p, 1}]
============================