MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: What kind of math problem is this?

  • To: mathgroup at
  • Subject: [mg20950] Re: [mg20896] What kind of math problem is this?
  • From: Daniel Lichtblau <danl at>
  • Date: Wed, 1 Dec 1999 01:50:17 -0500 (EST)
  • References: <>
  • Sender: owner-wri-mathgroup at

Seth Chandler wrote:
> This may be a little off topic, but I was hoping someone here could help.
> Let r and f be real numbers between 0 and 1 inclusive. How does one
> determine if there is a function u that satisfies this relation and, if so,
> what the function is.
> InverseFunction[u][f u[x] + (1 - f)u[y]] == (1 - r)(f x + (1 - f)y) + r x
> For those interested in the origins of this math problem, it is as follows.
> The "certainty equivalent wealth" associated with some lottery in which the
> payoffs are x (the bad payoff) and y (the good payoff) is traditionally
> thought to be equal to the inverse utility of the expected utility of the
> lottery. That is, it is thought to be the amount which, if held with
> certainty, would provide the same "utility" as the lottery.  Sometimes, this
> formulation of certainty equivalent wealth is a bit messy.
> Thus, others have proposed a simpler formulation that does not rely on
> utility functions. Under this method, which game theorist Martin Shubik and
> others have used, the certainty equivalent wealth of a lottery is set equal
> to something between the worst case of the lottery and the expected value of
> the lottery. The "where" in between is determined by a coefficient of risk
> aversion (r). If r is zero, the lottery is valued at the expected value. If
> r is one, the lottery is valued at the worst case.
> My question is whether there is any utility function that could emulate the
> behavior of this simpler formulation. Unfortunately, I can't figure out what
> branch of mathematics is relevant to the question, or, more importantly, I
> supposed, how to solve it. If Mathematica could be used in finding the
> answer, that would be great.
> Seth J. Chandler
> Associate Professor of Law
> University of Houston Law Center

The answer depends to some extent on what exactly you are willing to
use. Before going into more detail, I'll reformulate your problem a bit.
You require a function u[x], invertible on some domain of interest, such

f*u[x] + (1 - f)*u[y] == u[(1 - r)*(f* x + (1 - f)*y) + r*x]

By letting f+r-f*r == k, we may rewrite the rhs as

u[k*x + (1-k)*y]

The case where k==f is trivial (just take u[x]==x) and it arises when
either r==0 or f==1. We'll assume neither of these occurs.

One can show there is no differentiable function u[x] that satisfies
this functional equation. To prove this, assume u is differentiable at x
and chose y = x + dx/(1-k). We then have

u[x+dx] == f*u[x] + (1-f)*u[x+dx/(1-k)]

Invoking differentiability at x we obtain

u[x] + u'[x]*dx + o(dx) ==
	f*u[x] + (1-f)*(u[x]+u'[x]*dx/(1-k)+o(dx/(1-k)))

where in both places o(...) vanishes faster than dx (think of dx as
small, i.e. we take a limit as it goes to zero). Rewriting the rhs we

u[x] + (1-f)/(1-k)*u'[x]*dx + (1-f)/(1-k)*o(dx/(1-k))

As the small-o terms vanish faster than the linear terms, sufficiently
close to x these cannot be equal because the linear terms in dx

I have not successfully convinced myself whether or not there can be a
nowhere differentiable function u[x] that does what you want. But
already we realize there will be no useful computable u[x] (how many
nowhere-differentiable functions can you compute?).

That said, you might get a useful approximation. The method outlined
below was suggested by Michael Trott. We simply assume a polynomial form
for u[x] with undetermined coefficients, then minimize some functional
over an interval of interest. Last we plug the resulting coefficients
into our function, then see where the resulting function is monotonic.

One catch is that having u[x] identically zero will minimize the
functional but otherwise be useless. We prevent this by insisting that
the linear term be 1. This is okay because if u[x] "works" then so do
scalar multiples of it. We'll use a degree 5 polynomial. The function
minimized is the integral of the square of the difference between lhs
and rhs expressions. I use a particular pair of values for r and f, and
try to find u[x] for the domain 0<=x<=2.

n = 5;
coeffs = Array[c, {n}];
u[x_] = Table[x^j, {j,0,n}] . Insert[coeffs,1,2];
ee = Expand[u[f*x+(1-f)*y] - k*u[x] + (1-k)*u[y]];
rul = {f->1/2, r->1/5};
ff = (ee /. k->f+r-f*r) /. rul;
expr = Expand[ff^2];
gg = Map[Integrate[#, {x,0,2}, {y,0,2}]&, expr];
{min, vals} = FindMinimum[gg, Evaluate[Apply[Sequence,
	MaxIterations->1000, AccuracyGoal->30,
	WorkingPrecision->50, PrecisionGoal->30];
func[x] = u[x] /. vals;
Plot[Evaluate[func[x]], {x,0,2}];

A problem with this approach is that u[x] is not monotonic for any great
stretch. One way to correct for this is to use a constrained optimizer,
with constraints that u[j+.1]>u[j] for j in the range of interest
(rescale as appropriate for your preferred range). I used a package we
have in development and obtained

Out[16]= {0.142724, {c[1] -> -0.663381, c[2] -> -0.521863, c[3] ->
    c[4] -> -0.33924, c[5] -> 0.10758}}

If you do

func[x] = u[x] /. vals;
Plot[Evaluate[func[x]], {x,0,2}];

you will find that this is indeed monotonic, hence invertible, on the
range in question. This appears to be a tricky business, though. When I
allow more coefficients it seems difficult for the optimization code to
reach a suitable minimizer.

Daniel Lichtblau
Wolfram Research

  • Prev by Date: Research of Penrose tilings needed!
  • Next by Date: Re: Mathlink connection to Spyglass/Fortner Transform
  • Previous by thread: Research of Penrose tilings needed!
  • Next by thread: Re: Re: What kind of math problem is this?