Funzione di Green

Revisione: luglio 2001. http://eulero.ing.unibo.it/~barozzi/MI2]

Costruzione della funzione di Green per l'operatore -u'' = f sull'intervallo [0,1]

Costruzione del grafico

triangoliInf[n_] :=  
        Flatten[Table[{{x, y}, {x + 1/n, y}, {x + 1/n, 
                y + 1/n}}, 
{x, 0, 1 - 1/n, 1/n}, {y, 0, 
              1 - 1/n, 1/n}], 1];

trInf  =  triangoliInf[15];

Controllo:

Show[Graphics[Map[Line, trInf]],  Frame -> True, 
        AspectRatio -> Automatic, 
        Prolog -> {RGBColor[1, 0, 0]}];

triangoliSup[n_] :=  
        Flatten[Table[{{x, y}, {x, y + 1/n}, {x + 1/n, 
                y + 1/n}}, 
{x, 0, 1 - 1/n, 1/n}, {y, 0, 
              1 - 1/n, 1/n}], 1];

trSup =  triangoliSup[15];

Show[Graphics[Map[Line, trSup]],  Frame -> True, 
        AspectRatio -> Automatic, 
        Prolog -> {RGBColor[1, 0, 0]}];

triangoli  =  Join[trInf, trSup ];

Length[%]

funGreen[{x_, y_}] := 
      If[x < y, x (1 - y),  y (1 - x)]

Scriviamo una funzione che prende in ingresso un punto del piano e gli aggiunge la quota individuata dalla funzione funGreen:

aggQuota[{x_, y_}] := {x, y, funGreen[{x, y}]}

poligoni3D  =  Map[aggQuota,  triangoli, {2}];

Poligoni nella spazio :

gr3D  =  Map[Polygon, poligoni3D];

assi  =  Line[{{1, 0, 0}, {0, 0, 0}, {0, 1, 0}}];

Show[
        Graphics3D[
{{RGBColor[1, 0, 0], 
              assi}, {EdgeForm[{GrayLevel[1],  Thickness {0.001}}], 
              gr3D}}], 
BoxRatios -> {1, 1,  .25}, 
        ViewPoint -> {-1.5,  -5. ,  3. }];

pianoSec[y_] :=  
      Polygon[{{0, y, 0}, {1, y, 0}, {1, y, 0.5}, {0, y, 0.5}, {0, y, 
            0}}]

Do[Show[
        Graphics3D[
{{RGBColor[1, 0, 0], assi}, gr3D, 
            pianoSec[y]}], 
BoxRatios -> {1, 1,  .5}, 
        ViewPoint -> {-2.5,  -5. ,  
            3. }, 
ImageSize -> {400, 
            300}], 
{y, 1, 0, -1/30}]