Re: Using FindRoot with an equation that includes Maximize
- To: mathgroup at smc.vnet.net
- Subject: [mg63787] Re: Using FindRoot with an equation that includes Maximize
- From: Peter Pein <petsie at dordos.net>
- Date: Sat, 14 Jan 2006 02:32:42 -0500 (EST)
- References: <dq7uo4$40d$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
> Hi Everyone,
>
> I'm trying to use FindRoot to solve a system of two equations,
> where the rhs of each incorporates a Maximize function. Here is the
> actual input:
>
> FindRoot[{w1p=C5=A0Part[Maximize[{w1a[M1,m2],0=C2=A3M1=C2=A350},M1],1],w2p=C5=A0Part[Maximize[{w2a[M2,m1],0=C2=A3M2=C2=A350},M2],1]},{{m1,4.5},{m2,4.5}}]
>
> The lhs of the first equation (w1p) is an algebraic expression of two
> variables (m1,m2), The rhs of the first equation includes a
> transcendental function (the function w1a includes several exponential
> terms) of two variables (M1,m2), hence the use of FindRoot rather than
> Solve. Similarly, the lhs of the second equation (w2p) is an algebraic
> expression of two variables (m1,m2) while the rhs includes a
> transcendental function of the variables (M2,m1).
>
> To solve this for (m1,m2) I need FindRoot to feed its potential solution
> set into the Maximize functions (m2 into the rhs of the first equation
> and m1 into the rhs of the second equation). For example, if FindRoot
> were to try the solution set (m1=C3=A04.5,m2=C3=A04.5), I need Maximize
> (in equation 1) to take the value of m2=C3=A04.5, determine that given
> this value of m2, the maximum value of the function w1a occurs when
> M1=C3=A012 and that the maximum value is 220. Part then extracts this
> maximum value of 220 and uses it as the value of the rhs. For my
> particular problem I've confirmed that there is a unique
> solution set, which I found by repeatedly graphing the equations with
> greater precision to zero in on the intersection. But I need to be able
> to find the solution in a more automated way because this is input to
> another set of equations.
>
> I've also come up with a very simple, purely algebraic example
> of the same problem to confirm that it isn't something unique to
> my equations (see below). This example generates the same error
> messages as my actual problem. A solution set for this is {m1=C3=A04,
> m2=C3=A04} but FindRoot doesn't solve it because it
> doesn't appear to pass its potential solutions to the Maximize
> functions (at least that's my interpretation of the first two
> error messages).
>
> FindRoot[{m1+3*m2==Part[Maximize[{2*m2*M1-M1^2,1=C2=A3M1=C2=A310},M1],1],3*m1+m2==Part[Maximize[{2*m1*M2-M2^2,1=C2=A3M2=C2=A310},M2],1]},{{m1,4},{m2,4}}]
>
> I think the third error message is the result of the first two. If
> FindRoot isn't passing the potential solutions for {m1,m2} to
> the Maximize functions then they aren't able to derive maximum
> numeric values and Part isn't able to extract these numeric
> values. I've confirmed that the Part[Maximize=E2=80=A6]]
> section of this produces the output in the correct form if the values of
> m1 and m2 are fixed. I've tried defining the rhs as an
> expression rather than a function, and also tried defining the entire
> rhs as a function[m2_]:= Part[Maximize=E2=80=A6.etc.]], but neither
> approach worked.
>
> I would really appreciate your insights on this, whether correcting my
> syntax or suggesting an alternative approach to the problem.
> I've invested over three years of effort developing these
> equations. I got as far as I could by hand and with Excel, and finally
> took the Mathematica plunge about three weeks ago. It's a steep
> learning curve but very rewarding.
>
> Thanks and happy new year to everyone,
>
> Charles Ashley
>
> cka2 at adelphia.net
>
Hi Charles,
you should put the calculation of the maxima in functions which evaluate only
for numeric m1,m2:
In[1]:=
max1[m2_?NumericQ] := First[NMaximize[{2*m2*M1 - M1^2, 1 <= M1 <= 10}, M1]]
max2[m1_?NumericQ] := First[NMaximize[{2*m1*M2 - M2^2, 1 <= M2 <= 10}, M2]]
In[3]:=
FindRoot[{m1,m2}.{{1,3},{3,1}}-{max1[m2],max2[m1]}, {{m1, 3}, {m2, 5}}]
Out[3]=
{m1->4.,m2->4.}
Good luck,
Peter