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

From Supercomputación y Cálculo Científico UIS
 
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</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. 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>Clientes ssh</p>
<p>Clientes ssh</p>
+
                    <ul>
<ul>
+
                        <li>[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]</li>
<li>[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]</li>
+
                        <li>[http://mobaxterm.mobatek.net/ MobaXterm.]</li>
<li>[http://mobaxterm.mobatek.net/ MobaXterm.]</li>
+
                    </ul>
</ul>
+
                </li>
</li>
+
                <li>
<li>
+
                    <p><b>Primeras Implementaciones</b></p>
<p><b>Primeras Implementaciones</b></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>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>
+
                </li>
</li>
+
                <li>
<li>
+
                    <p><b>Gauss Seidel Vs. Jacobi</b></p>
<p><b>Gauss Seidel Vs. Jacobi</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 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>[http://www.sc3.uis.edu.co/owncloud/index.php/s/MuPIsU42uQDOz5G Taller]</p>
<p>[http://www.sc3.uis.edu.co/owncloud/index.php/s/MuPIsU42uQDOz5G 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>
<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>[http://math.fullerton.edu/mathews/n2003/GaussSeidelMod.html Comparacion de los dos métodos]</p>
<p>[http://math.fullerton.edu/mathews/n2003/GaussSeidelMod.html Comparacion de los dos métodos]</p>
+
                </li>
</li>
+
                <li>
<li>
+
                <p><b>Analizando problemas reales y planteando soluciones</b></p>
<p><b>Analizando problemas reales y planteando soluciones</b></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>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>
+
                    <ul>
<ul>
+
                        <li>Eficiencia Computacional medida: Si es en Linux, usando el comando htop o top para medir el uso de los recursos. </li>
<li>Eficiencia Computacional medida: Si es en Linux, usando el comando htop o top para medir el uso de los recursos. </li>
+
                        <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>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>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>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>
+
                    </ul>
</ul>
+
                    <p></p>
<p></p>
+
                </li>
</li>
+
                <li>
<li>
+
                    <p><b>Integración y Diferenciación</b></p>
<p><b>Integración y Diferenciación</b></p>
+
                    <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>
<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>
</li>
+
                <li>
<li>
+
                    <p><b>Comparando Rendimientos: Códigos Secuenciales Vs. Paralelos</b></p>
<p><b>Comparando Rendimientos: Códigos Secuenciales Vs. Paralelos</b></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. [http://www.sc3.uis.edu.co/owncloud/index.php/s/Q1EJI7bmM5mOfzo Presentación]</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. [http://www.sc3.uis.edu.co/owncloud/index.php/s/Q1EJI7bmM5mOfzo Presentación]</p>
+
                    <p>Los Códigos en</p>
<p>Los Códigos en</p>
+
                    <ul>
<ul>
+
                        <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/dDXNRallzfbuZfT C (Serial)]</li>
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/dDXNRallzfbuZfT C (Serial)]</li>
+
                        <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/6uEhxPLAc2fEtMN C + OpenMP]</li>
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/6uEhxPLAc2fEtMN C + OpenMP]</li>
+
                        <li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/JyRythhIgmhtAZN C + MPI]</li>
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/JyRythhIgmhtAZN C + MPI]</li>
+
                    </ul>
</ul>
+
                </li>
</li>
+
                <li>
<li>
+
                    <p><b>Integracion con Trapecios</b></p>
<p><b>Integracion con Trapecios</b></p>
+
                    <p>Código</p>
</li>
+
                    <p>
<li>
+
                        {{Command|<nowiki>
<p><b>Jugando y Explorando Splines</b></p>
+
                            public class Integral {
<p></p>
+
                                private double a,b;
<ul>
+
                                public double integral(double a,double b){
<li>Visite el sitio: http://www.cse.unsw.edu.au/~lambert/splines/</li>
+
                                    double area=0;
<li>Observe cada uno de los Splines propuestos.</li>
+
                                    this.a=a;
<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>
+
                                    this.b=b;
<li>Proponga el seudocódigo o diagrama de flujo del código seleccionado</li>
+
                                    area=(b-a)*(f(a)+f(b))/2;
</ul>
+
                                    return area;
</li>
+
                                }
</ol>
+
                                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 10: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