Re: Re: Can Maximize return a function
- To: mathgroup at smc.vnet.net
- Subject: [mg74952] Re: [mg74905] Re: Can Maximize return a function
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Thu, 12 Apr 2007 04:55:05 -0400 (EDT)
- References: <evd3qo$5h2$1@smc.vnet.net> <200704101003.GAA10297@smc.vnet.net> <F8AF539D-7A7F-403C-94E1-2E366C1E6B6D@mimuw.edu.pl> <461C7FD0.8050605@metrohm.ch>
The reason is that Resolve (rather than ForAll) depends on CylindricalDecomposition, which requires exact input, as does the entire classical apparatus of real and complex polynomial algebra. There, are however, some versions of algebraic algorithms that work with inexact numbers and in fact Mathematica implements some of them (e.g. numerical Groebner basis, inexact root isolation), but they are = primarily meant for "internal use" of developers and not well documented. (In fact, Mathematica's ability to implement quite effectively approximate versions of some of the most important algorithms of polynomial algebra is one of the most notable features = of the model of arithmetic, known as "significance arithmetic", used by Mathematica and something that critics of this model, such as Richard Fateman, never seem to want to discuss). Andrzej Kozlowski On 11 Apr 2007, at 15:27, Daniel Huber wrote: > Hi Andrzej, > thank's for showing this usage of ForAll to me. I noted that ForAll = > can deal with a being a symbols and rational number, but not with > reals or computer numbers. Is there a deeper reason for this? E.g. > that division is not well defined in this domain? > Andrzej Kozlowski wrote: >> *This message was transferred with a trial version of CommuniGate >> (tm) Pro* >> Or you can do it purely algebraically (without finding critical >> points): >> >> f[x_] := a*x - x^2 >> >> Resolve[ForAll[x, x =E2=88=88 Reals, f[x] <= f[b]], b] >> >> a =E2=88=88 Reals && b == a/2 >> >> >> Andrzej Kozlowski >> >> >> On 10 Apr 2007, at 19:03, dh wrote: >> >>> >>> >>> Hi, >>> >>> No Maximize can not work symbolically. However, you may e.g. use >>> Reduce >>> >>> or Solve to serach for singular points where the derivative is >>> zero. E.g.: >>> >>> Reduce[{D[a*x-x^2,x]==0},x] >>> >>> Daniel >>> >>> >>> >>> mfmad wrote: >>> >>>> e.g. >>> >>>> >>> >>>> When I run: >>> >>>> >>> >>>> Clear["*"] >>> >>>> SetAttributes[a, Constant] >>> >>>> (*this works if use a num instead of a*) >>> >>>> (*e.g. f[x_] := 4*x - x^2 *) >>> >>>> f[x_] := a*x - x^2 >>> >>>> Maximize[f[x], a > 0, x] >>> >>>> >>> >>>> I get: >>> >>>> >>> >>>> Maximize[{-x^2+xy, y>0},x] >>> >>>> >>> >>>> when I really want something like: >>> >>>> >>> >>>> {a, {x->a/2}} >>> >>>> >>> >>>> Can this be done? >>> >>>> >>> >>>> >>> >>> >>> >> >> >> > > > -- > > Daniel Huber > Metrohm Ltd. > Oberdorfstr. 68 > CH-9100 Herisau > Tel. +41 71 353 8585, Fax +41 71 353 8907 > E-Mail:<mailto:dh at metrohm.ch> > Internet:<http://www.metrohm.ch> >
- References:
- Re: Can Maximize return a function
- From: dh <dh@metrohm.ch>
- Re: Can Maximize return a function