Re: How to integrate a function over a polygon
- To: mathgroup at smc.vnet.net
- Subject: [mg123326] Re: How to integrate a function over a polygon
- From: Mikael <mikaen.anderson.1969 at gmail.com>
- Date: Thu, 1 Dec 2011 05:54:01 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
OK, thanks again for taking the time to reply. > The result of the division of polynomials of more > than one variable > depends on the order of the variables. When you > specify the order of the > variables PolynomialReduce uses your order. When you > don't specify it or > specify it, it uses the canonical order. For example: > > PolynomialReduce[x^2 y + x y^2 + y^2, y + x - 1, {x, > , y}] > > {{y + x y}, y} > > PolynomialReduce[x^2 y + x y^2 + y^2, y + x - 1, {y, > x}] > > {{1 + y + x y}, 1 - x} > > PolynomialReduce[x^2 y + x y^2 + y^2, y + x - 1] > > {{y + x y}, y} > > PolynomialReduce[x^2 y + x y^2 + y^2, y + x - 1, x] > > {{y + x y}, y} > > PolynomialReduce[x^2 y + x y^2 + y^2, y + x - 1, {x, > x, x}] > > {{y + x y}, y} > > etc. > > Andrzej Kozlowski > > > On 29 Nov 2011, at 13:03, Mikael wrote: > > > 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 > >>>>>> > >>>>> > >>>> > >>>> > >>> > >> > >> > > > >