Re: How to integrate a function over a polygon
- To: mathgroup at smc.vnet.net
- Subject: [mg123246] Re: How to integrate a function over a polygon
- From: Mikael <mikaen.anderson.1969 at gmail.com>
- Date: Tue, 29 Nov 2011 07:03:36 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Thanks Andrzej but that is exactly the part in PolynomialReduce which I do not understand. As I mentioned you get also exactly the same answer if you change the last argument to {z, x} or {z}. So I would appreciate if someone could explain the meaning of the last argument in PolynomialReduce.
In a related question I wonder how one can plot g[x,y] over only the 2-dimensional unit simplex.
Many thanks to all in advance.
/Mikael
> Actually, that was a mistake ;-) It should have been
>
> f[x_, y_, z_] := x^2 + y^2 + z^2
>
> Expand[
> Last[PolynomialReduce[f[x, y, z], {x + y + z - 1},
> , {z, x, y}]]]
>
> 1 - 2 x + 2 x^2 - 2 y + 2 x y + 2 y^2
>
> But luckily it made not difference ;-)
>
>
> In this particular case PolynomialReduce was an
> overkill. You could
> equally well use a simple replacement:
>
> g[x_,y]:=x^2 + y^2 + z^2 /. z -> (1 - x - y) //
> Expand
>
> 1 - 2 x + 2 x^2 - 2 y + 2 x y + 2 y^2
>
>
> PolynomialReduce could be useful if you wanted to
> integrate over a more
> complicated non-linear regions, when a simple
> syntactical substitution
> might not be possible.
>
> Andrzej Kozlowski
>
>
> On 27 Nov 2011, at 10:14, Mikael wrote:
>
> > Many thanks indeed for your elegant solution,
> Andrzej. May I ask a
> related question regarding the last argument in
> >
> > Expand[Last[PolynomialReduce[f[x, y, z], {x + y + z
> - 1}, {z, x,
> z}]]].
> >
> > I wonder what is the role of {z, x, z} there. I get
> the same answer if
> I change it to {z, x} or {z} and I could not figure
> it out from the help
> page for PolynomialReduce either.
> >
> > /Mikael
> >
> >
> >
> >
> >> Well, perhaps you mean this. Let the function be:
> >>
> >> f[x_, y_, z_] := x^2 + y^2 + z^2
> >>
> >> We want to integrate it over the simplex:
> x+y+z==1,
> >> 0<=x<=1,0<=y<=1,0<=y<=1
> >>
> >> On the simplex the function can be expressed in
> terms
> >> of only x and y as follows:
> >>
> >> g[x_, y_] =
> >> Expand[Last[PolynomialReduce[f[x, y, z], {x + y +
> z
> >> z - 1}, {z, x, z}]]]
> >>
> >> 2*x^2 + 2*x*y - 2*x + 2*y^2 - 2*y + 1
> >>
> >> In terms of x and y the simplex can be described
> as:
> >>
> >> cond[x_, y_] := x + y <= 1 && 0 <= x <= 1 && 0 <=
> y
> >> <= 1
> >>
> >> So now we simply compute:
> >>
> >> Integrate[Boole[cond[x, y]]*g[x, y], {x, 0, 1},
> {y,
> >> 0, 1}]
> >>
> >> 1/4
> >>
> >>
> >> Andrzej Kozlowski
> >>
> >>
> >> On 25 Nov 2011, at 10:57, Mikael wrote:
> >>
> >>> Well, as I wrote in my OP, it is a 2-diemnsional
> >> unit simplex so you can always re-parametrize the
> >> function to have 2 arguments.
> >>>
> >>> In any case, your answer is not useful unless you
> >> had also answered the original question apart from
> >> your remark.
> >>>
> >>>> First of all, f would need three arguments.
> >>>>
> >>>> Bobby
> >>>>
> >>>> On Wed, 23 Nov 2011 06:07:00 -0600, Mikael
> >>>> <mikaen.anderson.1969 at gmail.com> wrote:
> >>>>
> >>>>> The subject line asks the general question but
> to
> >>>> be more specific
> >>>>> suppose I have a 2-dimentional unit simplex
> >> defined
> >>>> as
> >>>>>
> >>>>> Polygon[{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}].
> >>>>>
> >>>>> I winder how I can integrate a function f(x,y)
> >> over
> >>>> this simplex. Thanks.
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>> DrMajorBob at yahoo.com
> >>>>
> >>>
> >>
> >>
> >
>
>
- Follow-Ups:
- Re: How to integrate a function over a polygon
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: How to integrate a function over a polygon
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: How to integrate a function over a polygon