Difference between revisions of "Análisis numérico I"

From Supercomputación y Cálculo Científico UIS
 
(One intermediate revision by the same user not shown)
Line 170: Line 170:
 
         </div>
 
         </div>
 
         <div class="panel-body">
 
         <div class="panel-body">
 
+
            <ol>
<ol>
+
                <li>
<li>
+
                    <p><b>Conociendo la Plataforma</b></p>
<p><b>Conociendo la Plataforma GridUIS-2</b></p>
+
                    <p>En esta sesión, se explorara la plataforma. Primero debe descargarse el cliente ssh en el enlace que se encuentra al final de esta explicación. Posteriormente, interactuando con el wiki, se iniciará visitando los enlaces: [http://www.sc3.uis.edu.co/zona-de-usuarios/carta-de-uso/ Carta de uso]  e [http://www.sc3.uis.edu.co/zona-de-usuarios/procedimiento-de-ingreso/ Inicio de usuarios], siguiendo los pasos que alli se presentan. Finalmente, se deberá navegar por el Portal de Usuarios y explorar las posibilidades que allí se presentan. </p>
<p>En esta sesión, se explorara la plataforma GridUIS-2. Primero debe descargarse el cliente ssh en el enlace que se encuentra al final de esta explicación. Posteriormente, interactuando con el wiki de GridUIS-2, se iniciará visitando los enlaces: Carta de uso de GridUIS-2  e Inicio de usuarios, siguiendo los pasos que alli se presentan. Finalmente, se deberá navegar por el Portal de Usuarios y explorar las posibilidades que allí se presentan. </p>
+
                    <p>Clientes ssh</p>
</li>
+
                    <ul>
<li>
+
                        <li>[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]</li>
<p><b>Primeras Implementaciones</b></p>
+
                        <li>[http://mobaxterm.mobatek.net/ MobaXterm.]</li>
<p>En esta sesion, se desarrollaran algunas implementaciones de los métodos numéricos vistos en clase, para resolver algunos problemas especificos. </p>
+
                    </ul>
</li>
+
                </li>
<li>
+
                <li>
<p><b>Gauss Seidel Vs. Jacobi</b></p>
+
                    <p><b>Primeras Implementaciones</b></p>
<p>En esta sesion se observaran las diferencias entre Gauss Seidel y Jacobi. Si bien, cada uno se puede usar para resolver sistemas de ecuaciones lineales, cada uno tiene sus particularidades. Al resolver el problema dejado en clase por Jacobi y por Gauss Seidel, que observan? Que es lo interesante en diferencia de los resultados obtenidos y del método? </p>
+
                    <p>En esta sesion, se desarrollaran algunas implementaciones de los métodos numéricos vistos en clase, para resolver algunos problemas especificos [http://www.sc3.uis.edu.co/owncloud/index.php/s/EGOJ5GEnZQ6F8CH Taller]</p>
<p>[http://www.lawebdelprogramador.com/codigo/C_Visual_C/364-Implementacion_del_metodo_de_Gauss_Seidel_en_C++.html# El codigo implementado en C]</p>
+
                </li>
<p>[http://math.fullerton.edu/mathews/n2003/GaussSeidelMod.html Comparacion de los dos métodos]</p>
+
                <li>
</li>
+
                    <p><b>Gauss Seidel Vs. Jacobi</b></p>
<li>
+
                    <p>En esta sesion se observaran las diferencias entre Gauss Seidel y Jacobi. Si bien, cada uno se puede usar para resolver sistemas de ecuaciones lineales, cada uno tiene sus particularidades. Al resolver el problema dejado en clase por Jacobi y por Gauss Seidel, que observan? Que es lo interesante en diferencia de los resultados obtenidos y del método? </p>
<p><b>Analizando problemas reales y planteando soluciones</b></p>
+
                    <p>[http://www.sc3.uis.edu.co/owncloud/index.php/s/MuPIsU42uQDOz5G Taller]</p>
<p>Teniendo en cuenta los ejercicios tratados en la clase pasada, realizados por estudiantes de ingenieria quimica, implemente y plantée la solucion que se consideré pertinente o la misma que dieron los estudiantes de ingenieria quimica, pero observando</p>
+
                    <p>[http://www.lawebdelprogramador.com/codigo/C_Visual_C/364-Implementacion_del_metodo_de_Gauss_Seidel_en_C++.html# El codigo implementado en C]</p>
<p>Eficiencia Computacional medida: Si es en Linux, usando el comando htop o top para medir el uso de los recursos. </p>
+
                    <p>[http://math.fullerton.edu/mathews/n2003/GaussSeidelMod.html Comparacion de los dos métodos]</p>
<p>Factibilidad y Optimidad: La Factibilidad se refieré a implementar algo lo mas facil posible, con los minimos recursos posibles, en el menor tiempo posible. En el caso de este ejercicio, suponiendo un uso factible de la solucion dada por los estudiantes, que hay que hacer para que sea optima? </p>
+
                </li>
<p>Condiciones de Falla: Exponga las fallas operativas del mismo que usted logré determinar o preveer en el tiempo del laboratorio (condiciones de bloqueo, errores matematicos, errores de pantalla, portabilidad, etc). </p>
+
                <li>
<p></p>
+
                <p><b>Analizando problemas reales y planteando soluciones</b></p>
</li>
+
                <p>Teniendo en cuenta los ejercicios tratados en la clase pasada, realizados por estudiantes de ingenieria quimica, implemente y plantée la solucion que se consideré pertinente o la misma que dieron los estudiantes de ingenieria quimica, pero observando</p>
<li>
+
                    <ul>
<p><b>Integración y Diferenciación</b></p>
+
                        <li>Eficiencia Computacional medida: Si es en Linux, usando el comando htop o top para medir el uso de los recursos. </li>
<p>Revise las diapositivas de la clase y realice los ejercicios de solo aquellas que tienen la etiqueta roja con amarillo. Responda unicamente las preguntas dadas y enviélo en unico documento en un archivo pdf o rtf que contenga: El código o los códigos de la solucion planteada (No olvide enunciar los encabezados de la pregunta) y los resultados obtenidos. La respuesta a las preguntas dadas, se haran al azar en los ultimos diez minutos del curso.</p>
+
                        <li>Factibilidad y Optimidad: La Factibilidad se refieré a implementar algo lo mas facil posible, con los minimos recursos posibles, en el menor tiempo posible. En el caso de este ejercicio, suponiendo un uso factible de la solucion dada por los estudiantes, que hay que hacer para que sea optima?</li>
</li>
+
                        <li>Condiciones de Falla: Exponga las fallas operativas del mismo que usted logré determinar o preveer en el tiempo del laboratorio (condiciones de bloqueo, errores matematicos, errores de pantalla, portabilidad, etc). </li>
<li>
+
                    </ul>
<p><b>Comparando Rendimientos: Códigos Secuenciales Vs. Paralelos</b></p>
+
                    <p></p>
<p>Un ejemplo típico de adaptación de un código serial a uno paralelo es el cálculo de PI usando la regla de trapecio. En esta práctica haremos una breve pasada por una aplicación "banal" de análisis numérico sobre tres posibilidades tecnológicas diferentes.</p>
+
                </li>
<p>Los Códigos en</p>
+
                <li>
<ul>
+
                    <p><b>Integración y Diferenciación</b></p>
<li>C (Serial)</li>
+
                    <p>Revise las diapositivas de la clase y realice los ejercicios de solo aquellas que tienen la etiqueta roja con amarillo. Responda unicamente las preguntas dadas y enviélo en unico documento en un archivo pdf o rtf que contenga: El código o los códigos de la solucion planteada (No olvide enunciar los encabezados de la pregunta) y los resultados obtenidos. La respuesta a las preguntas dadas, se haran al azar en los ultimos diez minutos del curso.</p>
<li>C + OpenMP</li>
+
                </li>
<li>C + MPI</li>
+
                <li>
</ul>
+
                    <p><b>Comparando Rendimientos: Códigos Secuenciales Vs. Paralelos</b></p>
</li>
+
                    <p>Un ejemplo típico de adaptación de un código serial a uno paralelo es el cálculo de PI usando la regla de trapecio. En esta práctica haremos una breve pasada por una aplicación "banal" de análisis numérico sobre tres posibilidades tecnológicas diferentes. [http://www.sc3.uis.edu.co/owncloud/index.php/s/Q1EJI7bmM5mOfzo Presentación]</p>
<li>
+
                    <p>Los Códigos en</p>
<p><b>Integracion con Trapecios</b></p>
+
                    <ul>
</li>
+
                        <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/dDXNRallzfbuZfT C (Serial)]</li>
<li>
+
                        <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/6uEhxPLAc2fEtMN C + OpenMP]</li>
<p><b>Jugando y Explorando Splines</b></p>
+
                        <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/JyRythhIgmhtAZN C + MPI]</li>
<p></p>
+
                    </ul>
<ul>
+
                </li>
<li>Visite el sitio: http://www.cse.unsw.edu.au/~lambert/splines/</li>
+
                <li>
<li>Observe cada uno de los Splines propuestos.</li>
+
                    <p><b>Integracion con Trapecios</b></p>
<li>Descargue alguno de los códigos fuentes y observe e identifique las partes criticas del programa, consumo de recursos del código: pasos a realizar que involucran procesador, almacenamiento de datos temporales de Lecto/Escritura que involucran memoria.</li>
+
                    <p>Código</p>
<li>Proponga el seudocódigo o diagrama de flujo del código seleccionado</li>
+
                    <p>
</ul>
+
                        {{Command|<nowiki>
</li>
+
                            public class Integral {
</ol>
+
                                private double a,b;
 
+
                                public double integral(double a,double b){
 
+
                                    double area=0;
 
+
                                    this.a=a;
 +
                                    this.b=b;
 +
                                    area=(b-a)*(f(a)+f(b))/2;
 +
                                    return area;
 +
                                }
 +
                                public double error(){
 +
                                double error=0;
 +
                                error=-(Math.pow((this.b-this.a),3)/12)*(2*((f(b)-f(a))/(b-a)));
 +
                                return error;
 +
                            }
 +
                            public double f(double x){
 +
                                double fx=0;
 +
                                fx=0.2+25*x-200*Math.pow(x, 2)+675*Math.pow(x, 3)-900*Math.pow(x,4)+400*Math.pow(x, 5);
 +
                                return fx;
 +
                            }
 +
                            public static void main(String[] args){
 +
                                Integral iew Integral();
 +
                                System.out.println(i.integral(0, 0.8));
 +
                                System.out.println(i.error());
 +
                            }
 +
                        }
 +
                        </nowiki>}}
 +
                    </p>
 +
                    <p>A realizar: Usando 5 y 10 trapecios, comparar el error con el codigo original. </p>
 +
                    </li>
 +
                    <li>
 +
                        <p><b>Jugando y Explorando Splines</b></p>
 +
                        <p></p>
 +
                        <ul>
 +
                            <li>Visite el sitio: http://www.cse.unsw.edu.au/~lambert/splines/</li>
 +
                            <li>Observe cada uno de los Splines propuestos.</li>
 +
                            <li>Descargue alguno de los códigos fuentes y observe e identifique las partes criticas del programa, consumo de recursos del código: pasos a realizar que involucran procesador, almacenamiento de datos temporales de Lecto/Escritura que involucran memoria.</li>
 +
                            <li>Proponga el seudocódigo o diagrama de flujo del código seleccionado</li>
 +
                        </ul>
 +
                    </li>
 +
                </ol>
 
         </div>
 
         </div>
 
     </div>
 
     </div>
 
</div>
 
</div>

Latest revision as of 15:56, 28 April 2015


Logo_sc33.png

Análisis numérico I - 22962

Profesor

Carlos Jaime Barrios Hernandez, PhD. - (cbarrios@uis.edu.co)

PRESENTACION

Este curso es una continuación del curso de Analisis Numérico dictado por el profesor Alfonso Mendoza Castellanos.

Contenido

  1. Error y Algoritmos Iterativos
  2. Raices de Ecuaciones
  3. Solucion de Sistemas Lineales
  4. Aproximacion
  5. Interpolacion
  6. Diferenciacion
  7. Integracion

ASPECTOS METODOLOGICOS

  1. Curso Téorico Práctico
  2. Evaluaciones
  3. Lecturas Sugeridas
  4. Sesiones Prácticas

EVALUACIONES

Evaluación 1

Evaluación 2

Trabajo Final

  • Grupos de Tres participantes (Mínimo dos, pero ninguno individual).
  • Solución de la propuesta (Prototipo o Demo)
  • Presentación de 15 minutos
  • Articulo (Máximo 6 paginas)

SESIONES PRÁCTICAS

  1. Conociendo la Plataforma

    En esta sesión, se explorara la plataforma. Primero debe descargarse el cliente ssh en el enlace que se encuentra al final de esta explicación. Posteriormente, interactuando con el wiki, se iniciará visitando los enlaces: Carta de uso e Inicio de usuarios, siguiendo los pasos que alli se presentan. Finalmente, se deberá navegar por el Portal de Usuarios y explorar las posibilidades que allí se presentan.

    Clientes ssh

  2. Primeras Implementaciones

    En esta sesion, se desarrollaran algunas implementaciones de los métodos numéricos vistos en clase, para resolver algunos problemas especificos Taller

  3. Gauss Seidel Vs. Jacobi

    En esta sesion se observaran las diferencias entre Gauss Seidel y Jacobi. Si bien, cada uno se puede usar para resolver sistemas de ecuaciones lineales, cada uno tiene sus particularidades. Al resolver el problema dejado en clase por Jacobi y por Gauss Seidel, que observan? Que es lo interesante en diferencia de los resultados obtenidos y del método?

    Taller

    El codigo implementado en C

    Comparacion de los dos métodos

  4. Analizando problemas reales y planteando soluciones

    Teniendo en cuenta los ejercicios tratados en la clase pasada, realizados por estudiantes de ingenieria quimica, implemente y plantée la solucion que se consideré pertinente o la misma que dieron los estudiantes de ingenieria quimica, pero observando

    • Eficiencia Computacional medida: Si es en Linux, usando el comando htop o top para medir el uso de los recursos.
    • Factibilidad y Optimidad: La Factibilidad se refieré a implementar algo lo mas facil posible, con los minimos recursos posibles, en el menor tiempo posible. En el caso de este ejercicio, suponiendo un uso factible de la solucion dada por los estudiantes, que hay que hacer para que sea optima?
    • Condiciones de Falla: Exponga las fallas operativas del mismo que usted logré determinar o preveer en el tiempo del laboratorio (condiciones de bloqueo, errores matematicos, errores de pantalla, portabilidad, etc).

  5. Integración y Diferenciación

    Revise las diapositivas de la clase y realice los ejercicios de solo aquellas que tienen la etiqueta roja con amarillo. Responda unicamente las preguntas dadas y enviélo en unico documento en un archivo pdf o rtf que contenga: El código o los códigos de la solucion planteada (No olvide enunciar los encabezados de la pregunta) y los resultados obtenidos. La respuesta a las preguntas dadas, se haran al azar en los ultimos diez minutos del curso.

  6. Comparando Rendimientos: Códigos Secuenciales Vs. Paralelos

    Un ejemplo típico de adaptación de un código serial a uno paralelo es el cálculo de PI usando la regla de trapecio. En esta práctica haremos una breve pasada por una aplicación "banal" de análisis numérico sobre tres posibilidades tecnológicas diferentes. Presentación

    Los Códigos en

  7. Integracion con Trapecios

    Código

    public class Integral { private double a,b; public double integral(double a,double b){ double area=0; this.a=a; this.b=b; area=(b-a)*(f(a)+f(b))/2; return area; } public double error(){ double error=0; error=-(Math.pow((this.b-this.a),3)/12)*(2*((f(b)-f(a))/(b-a))); return error; } public double f(double x){ double fx=0; fx=0.2+25*x-200*Math.pow(x, 2)+675*Math.pow(x, 3)-900*Math.pow(x,4)+400*Math.pow(x, 5); return fx; } public static void main(String[] args){ Integral iew Integral(); System.out.println(i.integral(0, 0.8)); System.out.println(i.error()); } }

    A realizar: Usando 5 y 10 trapecios, comparar el error con el codigo original.

  8. Jugando y Explorando Splines

    • Visite el sitio: http://www.cse.unsw.edu.au/~lambert/splines/
    • Observe cada uno de los Splines propuestos.
    • Descargue alguno de los códigos fuentes y observe e identifique las partes criticas del programa, consumo de recursos del código: pasos a realizar que involucran procesador, almacenamiento de datos temporales de Lecto/Escritura que involucran memoria.
    • Proponga el seudocódigo o diagrama de flujo del código seleccionado