Re: Finding a function that makes it possible to
- To: mathgroup at smc.vnet.net
- Subject: [mg114200] Re: Finding a function that makes it possible to
- From: Mauricio Esteban Cuak <cuak2000 at gmail.com>
- Date: Fri, 26 Nov 2010 05:42:12 -0500 (EST)
- References: <201011221237.HAA06513@smc.vnet.net>
Thanks for your response, I didn't know about the Gr=F6bner Basis option. I'm not looking for the type of general function that would work, I only need one. Unfortunately, I think Mr. Lichtblau's proposal won't work for my purposes, so I'd appreciate any other ideas to explore or functional forms to try. Thanks, ME 2010/11/22 Daniel Lichtblau <danl at wolfram.com> > > > ----- Original Message ----- > > From: "Mauricio Esteban Cuak" <cuak2000 at gmail.com> > > To: mathgroup at smc.vnet.net > > Sent: Saturday, November 20, 2010 5:27:53 PM > > Subject: [mg114029] Finding a function that makes it possible to Solve[] > a system of equations > > Hey MathGroup, > > > > I apologise beforehand since this might turn to be more a mathematical > > query > > than a Mathematica one. > > However, I appreciate any suggestion on the matter. > > > > In[1]:= $Version > > Out[1]= "7.0 for Mac OS X x86 (64-bit) (February 19, 2009)" > > > > > > This is my setup: > > > > > > f = (g*x + y)^h + d* i[x, y]; > > u1 = a*f - x^2; > > u2 = (1 - a)*f - y^2; > > > > > > Where x, y are the variables and {a,h,g,d} are just parameters, with 0 > > < a < > > 1, g > 0, d bigger or equal to 0 > > > > i[x,y] is the function that I need to specify. > > > > Further, it must be true that > > > > > > i[ x, 0] = 0 & i[ 0, y ] = 0 > > > > > > For simplicity I've set > > > > > > h=1; > > > > > > Though if the solution you suggest requires it, h could belong to > > (0,1] > > > > What I need is the analytic solution for {x, y}, hopefully a unique > > real > > solution (I don't mind if there are complex ones) to: > > > > > > sol = Solve[{D[u1, x] == 0, D[u2, y] == 0}, {x, y}]; > > > > > > Obviously, I need to specify i[x,y] to do that. I need the function > > i[x,y] > > to grow slower that x^2 or y^2. > > > > > > i[ x, y] = x^(1/2)*y^(1/2) or > > > > i[x,y] = Log[1+x] * Log[1+y ] > > > > > > do the trick but Mathematica can't find an analytic solution. > > > > The only thing that works is i[x,y] = x*y but the problem is that it > > grows > > as fast > > > > as x^2. > > > > > > Thanks for your time, > > > > > > ME > > > This much seems to work. Use the product of square roots for i[x,y], and > precompute a Groebner basis. > > f = (g*x + y)^h + d*i[x, y]; > u1 = a*f - x^2; > u2 = (1 - a)*f - y^2; > > i[x_, y_] := x^(1/2)*y^(1/2); > h = 1; > > In[37]:= Timing[ > sol = Solve[ > GroebnerBasis[{D[u1, x], D[u2, y]}, {x, y}] == 0, {x, y}];] > > Out[37]= {26.364, Null} > > This solution is a large object. > > In[40]:= LeafCount[sol] > Out[40]= 186365 > > In[41]:= Length[sol] > Out[41]= 4 > > Possibly version 8 will allow you to forego the precomputation, but I have > not explicitly tried this. It is also possible that it might be able to > represent a solution set using the sum of logs variant you propose for > i[x,y]. > > As for determining forms of i[x,y] that meet your requirements in general, > that is indeed a mathematics question. Offhand I'm not sure whether > Mathematica can be useful for that purpose. > > Daniel Lichtblau > Wolfram Research > >
- References:
- Re: Finding a function that makes it possible to Solve[] a system of equations
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: Finding a function that makes it possible to Solve[] a system of equations