MathGroup Archive 1999

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

Search the Archive

Re: Calculus of variations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg20196] Re: Calculus of variations
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Tue, 5 Oct 1999 04:04:25 -0400
  • Organization: Wolfram Research, Inc.
  • References: <7suv87$21u@smc.vnet.net> <7t4ceh$829@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

WCamp92147 wrote:
> 
> >here are many texts
> >that discuss this problem.  The ones I am familiar with are physics texts
> >such a Goldstein's mechanics book
> >
> >Kevin
> 
> I'm sorry about the misunderstanding, guess I wasn't clear in my original post.
> I'm looking for a Mathematica-oriented book that deals with the calculus of
> variations, in particular how to "teach" Mathematica Leibniz's rules for
> differentiating integrals, and how to integrate by parts.  The problem I am
> considering doesn't seem to fit quite into the classical framework of the
> calculus of variations, but I think would use similar techniques.  I'll repeat
> the problem of interest here:
> 
> given two functions of a single
> variable f1[x] and f2[x], which are 0 almost everywhere, find the
> value of x0 such that Integrate[(f1[x]-f2[x+x0])^2,{x,-infinity,
> infinity}] is minimized.
> 
> Thanks for your response -- I had fogotten about the discussion in Goldstein,
> which has gathered dust on my bookshelf for years.
> Bill Campbell

This does not fully address the question posted, but does give some idea
for how one might do such minimization using Mathematica. One such
method shown below does differentiate an integral with respect to a
parameter, whic is at least along the lines requested above.

I did not at first understand the question but, following clarification
by private e-mail, we can proceed. We start with a pair of compactly
supported functions. For a simple example:

f1[x_?NumberQ] := If[0<x<2, 1-(x-1)^2, 0]
f2[x_?NumberQ] := If[Pi/2<x<3/2*Pi, Cos[x]^2, 0]

We wish to minimize

g[y_] := Integrate[(f1[x] - f2[y-x])^2, {x,-Infinity,Infinity}]

To begin, it might be useful to look at

Plot[g[y], {y,2,6}];

You will see a dip just to the right of 4. As with the following, you
will also obtain alot of warning messages about failures to converge and
the like. They could perhaps be eradicated by redefinining g using
NIntegrate and appropriate option tweaking.

A quick way to find a minimizer for g is via FindMinimum. One needs to
specify two starting points because the derivatives involved are not
analytic. I start near 3 just to show that we do not need to begin too
close to the minimizer.

In[5]:= FindMinimum[g[y], {y,3,3.1}]
[several NIntegrate warning messages removed]
Out[5]= {0.0406353, {y -> 4.14159}}

For a calculus of variations approach, one can differentiate the
integral that defines g[y], set that to zero, and solve for y.

var[y_] = D[g[y],y]

In[13]:= FindRoot[Evaluate[var[y]]==0, {y,3.5,3.6}]
[several NIntegrate warning messages removed]
Out[13]= {y -> 4.14159}

This method of using FindRoot is substantially slower. It is also much
more sensitive to starting values and may take one to a maximizer
instead of a minimizer (differential calculus can be funny that way).


Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: NonlinearRegress and numerical functions...
  • Next by Date: Re: Integer Assumptions in Integrations
  • Previous by thread: Re: Calculus of variations
  • Next by thread: Re: Browser Safe Colors?