1.1

Sea R = [0, π]×[0, π], use una suma de Riemann con una partición de 4×4 para aproximar

∬

R

sen
⁡
(
x
y
)
d

A

{\displaystyle \iint \limits \_{R}\operatorname {sen}(x+y)\operatorname {d} \!A}

Primero, noto que los intervalos son iguales, por lo que la región se partirá en subregiones iguales.

Así, el intervalo

[
0
,
π
]

{\displaystyle [0, \pi]}

, al ser dividido en 4 se vuelve los intervalos:

[
0
,
π

/

4
]

{\displaystyle [0,\pi /4]}

[
π

/

4
,
2
π

/

4
]

{\displaystyle [\pi /4,2\pi /4]}

[
2
π

/

4
,
3
π

/

4
]

{\displaystyle [2\pi /4,3\pi /4]}

[
3
π

/

4
,
4
π

/

4
]

{\displaystyle [3\pi /4,4\pi /4]}

Y por la idea de la evaluación en el punto medio, ya que se nos pide aproximar, no perdemos mucho de nuestro objetivo al hacer uso de ella; así, tendré que evaluar con parejas ordenadas de los puntos:

π

/

8

{\displaystyle \pi/8}

,

3
π

/

8

{\displaystyle 3\pi /8}

,

5
π

/

8

{\displaystyle 5\pi /8}

,

7
π

/

8

{\displaystyle 7\pi /8}

Entonces calculo y obtengo:

sin
⁡
(
π

/

8
π

/

8
# )
sin
⁡
(
π

/

4
# )

2

2

{\displaystyle \sin(\pi /8+\pi /8)=\sin(\pi /4)={\frac {\sqrt {2}}{2}}}

sin
⁡
(
π

/

8
3
π

/

8
# )
sin
⁡
(
π

/

2
# )
1

{\displaystyle \sin(\pi /8+3\pi /8)=\sin(\pi /2)=1}

sin
⁡
(
π

/

8
5
π

/

8
# )
sin
⁡
(
3
π

/

4
# )

2

2

{\displaystyle \sin(\pi /8+5\pi /8)=\sin(3\pi /4)={\frac {\sqrt {2}}{2}}}

sin
⁡
(
π

/

8
7
π

/

8
# )
sin
⁡
(
π
# )
0

{\displaystyle \sin(\pi /8+7\pi /8)=\sin(\pi )=0}

sin
⁡
(
3
π

/

8
π

/

8
# )
sin
⁡
(
π

/

2
# )
1

{\displaystyle \sin(3\pi /8+\pi /8)=\sin(\pi /2)=1}

sin
⁡
(
3
π

/

8
3
π

/

8
# )
sin
⁡
(
3
π

/

4
# )

2

2

{\displaystyle \sin(3\pi /8+3\pi /8)=\sin(3\pi /4)={\frac {\sqrt {2}}{2}}}

sin
⁡
(
3
π

/

8
5
π

/

8
# )
sin
⁡
(
π
# )
0

{\displaystyle \sin(3\pi /8+5\pi /8)=\sin(\pi )=0}

sin
⁡
(
3
π

/

8
7
π

/

8
# )
sin
⁡
(
5
π

/

4
# )
−

2

2

{\displaystyle \sin(3\pi /8+7\pi /8)=\sin(5\pi /4)=-{\frac {\sqrt {2}}{2}}}

sin
⁡
(
5
π

/

8
π

/

8
# )
sin
⁡
(
3
π

/

4
# )

2

2

{\displaystyle \sin(5\pi /8+\pi /8)=\sin(3\pi /4)={\frac {\sqrt {2}}{2}}}

sin
⁡
(
5
π

/

8
3
π

/

8
# )
sin
⁡
(
π
# )
0

{\displaystyle \sin(5\pi /8+3\pi /8)=\sin(\pi )=0}

sin
⁡
(
5
π

/

8
5
π

/

8
# )
sin
⁡
(
5
π

/

4
# )
−

2

2

{\displaystyle \sin(5\pi /8+5\pi /8)=\sin(5\pi /4)=-{\frac {\sqrt {2}}{2}}}

sin
⁡
(
5
π

/

8
7
π

/

8
# )
sin
⁡
(
6
π

/

4
# )
−
1

{\displaystyle \sin(5\pi /8+7\pi /8)=\sin(6\pi /4)=-1}

sin
⁡
(
7
π

/

8
π

/

8
# )
sin
⁡
(
π
# )
0

{\displaystyle \sin(7\pi /8+\pi /8)=\sin(\pi )=0}

sin
⁡
(
7
π

/

8
3
π

/

8
# )
sin
⁡
(
5
π

/

4
# )
−

2

2

{\displaystyle \sin(7\pi /8+3\pi /8)=\sin(5\pi /4)=-{\frac {\sqrt {2}}{2}}}

sin
⁡
(
7
π

/

8
5
π

/

8
# )
sin
⁡
(
6
π

/

4
# )
−
1

{\displaystyle \sin(7\pi /8+5\pi /8)=\sin(6\pi /4)=-1}

sin
⁡
(
7
π

/

8
7
π

/

8
# )
sin
⁡
(
7
π

/

4
# )
−

2

2

{\displaystyle \sin(7\pi /8+7\pi /8)=\sin(7\pi /4)=-{\frac {\sqrt {2}}{2}}}

Y todo sumado, que es lo que hay que hacer para que sea una suma de Riemann, nos da como resultado:

(
4
∗

2

2

)
(
4
∗
−

2

2

)
2
−
# 2
0

{\displaystyle (4\*{\frac {\sqrt {2}}{2}})+(4\*-{\frac {\sqrt {2}}{2}})+2-2=0}

Con apoyo de un programa en Java, se calculan las sumas de Riemann, de la siguiente forma:

JAVA

```
import java.lang.Math;

class Cebolla{

 /\*\*
 \* funcion
 \*
 \* Metodo principal con el que se evalúa la función del problema
 \* @param x variable independiente 'x'
 \* @param y variable independiente 'y'
 \* @return La Funcion de dos variables a Integrar
 \*/
 private static double funcion(double x, double y){
 return Math.sin( x+y );
 }

 /\*\*
 \* alturaMenor
 \*
 \* Metodo Auxiliar para obtener el punto menos alto en una región rectangular
 \* @param cuadro La estructura donde se almacentan los valores de los 4 vértices extremos de la región
 \* @return La menor altura almacenada
 \*/
 private static double alturaMenor(double[] cuadro){
 double menor = cuadro[0];
 for( int i=1; i<cuadro.length; i++)
 if( cuadro[i] < menor )
 menor = cuadro[i];
 return menor;
 }
 /\*\*
 \* alturaMayor
 \*
 \* Metodo Auxiliar para obtener el punto mas alto en una región rectangular
 \* @param cuadro La estructura donde se almacentan los valores de los 4 vértices extremos de la región
 \* @return La mayor altura almacenada
 \*/
 private static double alturaMayor(double[] cuadro){
 double mayor = cuadro[0];
 for( int i=1; i<cuadro.length; i++)
 if( mayor < cuadro[i] )
 mayor = cuadro[i];
 return mayor;
 }

 /\*\*
 \* volumenPiramide
 \*
 \* Metodo Auxiliar para obtener el volumen de una piramide a partir de parametros
 \* @param bajito La menor de las alturas, donde se forma la 'base'
 \* @param alto La mayor de las alturas, donde se coloca la 'punta'
 \* @param dX El 'ancho' de la 'base'
 \* @param dY El 'largo' de la 'base'
 \* @return El volumen resultante tras aplicar la ecuacion
 \*/
 private static double volumenPiramide( double bajito , double alto , double dX , double dY ){
 if( alto<0 )
 return (( dX\*dY )\*( bajito - alto ))/3;
 else if( bajito<0 )
 return (( dX\*dY )\*( alto + bajito ))/3;
 return (( dX\*dY )\*( alto - bajito ))/3;
 }
 /\*\*
 \* volumenPrisma
 \*
 \* Método auxiliar para obtener el volumen de un prisma a partir de su largo, ancho y altura
 \* @param altura El alto de la figura
 \* @param dX El ancho de la figura
 \* @param dY El largo de la figura
 \* @return El volumen del prisma
 \*/
 private static double volumenPrisma( double altura , double dX , double dY ){
 return (dX\*dY)\*altura;
 }

 /\*\*
 \* calculaVolumen
 \*
 \* Metodo Principal para obtener el volumen en una region, a partir de un prisma y una piramide
 \* @param bajo El extremo mas bajo de la region
 \* @param alto El extremo mas alto de la region
 \* @param dX El ancho de la region
 \* @param dY El largo de la figura
 \* @return El volumen de la region, obtenido de un prisma y una piramide
 \*/
 private static double calculaVolumen( double bajo , double alto , double dX , double dY ){
 return volumenPrisma( bajo , dX , dY )+volumenPiramide( bajo , alto , dX , dY );
 }

 /\*\*
 \* buenIntervalo
 \*
 \* Método Auxiliar para asegurarnos un buen intervalo, para el buen funcionamiento del
 \* programa
 \* @param x Primer extremo del intervalo
 \* @param y Segundo extremo del intervalo
 \* @return Los extremos del intervalo, ordenados
 \*/
 private static double[] buenIntervalo( double x , double y ){
 if ( x==y )
 throw new IllegalArgumentException("No puedo sacar una integral de algo del grueso de único punto...");
 double[] intervalo = new double[2];
 if ( x<y ) {
 intervalo[0] = x;
 intervalo[1] = y;
 }else{
 intervalo[0] = y;
 intervalo[1] = x;
 }
 return intervalo;
 }
 /\*\*
 \* Método auxiliar para obtener la distancia entre 2 puntos de una recta
 \*/
 private static double distancia( double pI , double pF ){
 return Math.abs(pF-pI);
 }

 public static void main(String[] args) {
 double volumen = 0.0;

 final double PI = 3.1415;//Math.PI
 int numDivisiones = 4;
 //20 divisiones, #divisiones+1 = vértices
 int numVertices = numDivisiones+1;

 double puntoX1 = 0.0 , puntoX2 = PI;
 double puntoY1 = 0.0 , puntoY2 = PI;

 double[] rectaX = buenIntervalo(puntoX1,puntoX2);
 double[] rectaY = buenIntervalo(puntoY1,puntoY2);

 double[][] manta = new double[numVertices][numVertices];
 double deltaX = distancia(rectaX[0], rectaX[1])/numVertices;
 double deltaY = distancia(rectaY[0], rectaY[1])/numVertices;

 int i , j;
 double equis , ye;

 System.out.println("Cuadriculando...");
 for (i=0; i<numVertices; i++){
 equis = rectaX[0] + (i\*deltaX);
 for (j=0; j<numVertices; j++) {
 ye = rectaY[0] + (j\*deltaY);
 manta[i][j] = funcion(equis,ye);
 }
 }System.out.print("\n");

 /\*Carga los vértices en un cuadro para obtener los sub-volúmenes\*/
 double[] cuadrado = new double[4];
 for (i=0; i<numDivisiones; i++){
 for (j=0; j<numDivisiones; j++){
 cuadrado[0] = manta[i][j];
 cuadrado[1] = manta[i][j+1];
 cuadrado[2] = manta[i+1][j];
 cuadrado[3] = manta[i+1][j+1];
 volumen += calculaVolumen( alturaMenor(cuadrado) , alturaMayor(cuadrado) , deltaX , deltaY );
 }
 }
 System.out.println( "El volumen de la funcion, a partir de "+numDivisiones+" divisiones en el espacio [ "+rectaX[0]+" , "+rectaX[1]+" ]x[ "+rectaY[0]+" , "+rectaY[1]+" ] es:\n\t"+volumen);
 }
}

```
[Proceso]

Ésta implementación se basa en formar un espacio de 5x5 vértices, donde a su vez se formarán 4x4 segmentos rectangulares (cuadrados realmente), de pi/4 de longitud cada uno, posteriormente , se evaluará en cada vértice el valor de la función sen(x+y). Y a partir de éstos valores, se realiza un proceso similar a las sumas de Simpson, a diferencia que en ésta implementación se utilizan prismas y pirámides, en vez de prismas y cuñas.

Tras ejecutar el programa, se obtiene un valor aproximado de -0.09525134233743926

Y al analizar detenidamente la gráfica previamente mostrada, se concluye que conforme se incrementen las subdivisiones de la region (con lo que deltaX y deltaY tenderían a 0) el resultado de las sumas también tendería a 0, pues parece igualarse el volumen sobre y bajo el plano x.