miércoles, 2 de diciembre de 2009

4.3 Algoritmo numéricos

4.3 Algoritmo numéricos

Un algoritmo es un conjunto de instrucciones o pasos que nos ayudan a resolver un problema. De un modo más formal, un algoritmo es una secuencia finita de operaciones realizables, no ambiguas, cuya ejecución da una solución de un problema en un tiempo finito.

El termino algoritmo no solo esta ligado a las matemáticas o computación sino también en la vida cotidiana empleamos algoritmos para resolver problemas.

Ejemplo de algoritmo aplicado ala vida cotidiana seria el uso de la lavadora. Ejemplo en matemáticas seria el algoritmo de Euclides (usado para calcular el máximo común divisor) o el método de Gauss para resolver sistema lineal de ecuaciones.

Un algoritmo numérico es el conjunto de instrucciones para revolver un problema que involucra procesos matemáticos. Este tipo de algoritmos no admiten ambigüedades y debe darse cada uno de sus pasos para su solución.

Otra definición de algoritmo es una lista de instrucciones mediante las cuales puede llevarse a cabo un determinado proceso.

Existen varios tipos de algoritmos numéricos entre los cuales tenemos:
Algoritmos numéricos paralelos
Algoritmos paralelos para sistemas lineales
Algoritmos paralelos para sistemas no lineales

Algoritmos numéricos paralelos. Diseño, estudio y evaluación Una de las áreas de mayor importancia en el contexto de la computación paralela, y donde se está dedicando un gran esfuerzo al desarrollo de algoritmos numéricos eficientes, la constituye el álgebra lineal numérica. La introducción del paralelismo en el área ha influido notablemente en el desarrollo de algoritmos y programas. El grupo trabaja en la obtención de algoritmos eficientes motivados por el uso de máquinas paralelas para dos problemas concretos.

Algoritmos numéricos paralelos para sistemas lineales. El estudio se centra en la elaboración de librerías portables que incluyen algoritmos eficientes para la resolución de grandes sistemas de ecuaciones lineales diseñados previamente por el grupo y evaluados tanto desde el punto de vista teórico como experimental.

Algoritmos paralelos para sistemas no lineales. Aunque los sistemas no lineales aparecen en muchos problemas científicos y de ingeniería que provienen de la discretización de ecuaciones diferenciales como por ejemplo, el cálculo de trayectorias o el estudio de sistemas oscilatorios, es un problema poco estudiado desde el punto de vista paralelo. El grupo está diseñando y evaluando algoritmos paralelos eficientes que permitan resolver este tipo de sistemas aplicándolos a los problemas citados.


Aqui se ven algunos de los algoritmos mas utiles para procesamiento de secuencias de números. Actualmente existen muchos más.
accumulate() Función template T accumulate(Input Iterator? first, Input Iterator? last, T init) {
for ( ; first != last; ++first)
init = init + *first;
return init;
}
template T accumulate(Input Iterator? first, Input Iterator? last, T init,
Binary Operation? binary_op)
{
for ( ; first != last; ++first)
init = binary_op(init, *first);
return init;
}
Descripción accumulate() incrementa el valor de init utilizando el operator+(). La version que recibe una función como argumento aplica en cada iteracion una operacion binaria a init y un elemento de la secuencia y lo asigna a init.
inner_product() Función template T inner_product(Input Iterator 1? first1, Input Iterator 1? last1,
Input Iterator 2? first2, T init)
{
for ( ; first1 != last1; ++first1, ++first2)
init = init + (*first1 * *first2);
return init;
}
template
T inner_product(Input Iterator 1? first1, Input Iterator 1? last1,
Input Iterator 2? first2, T init, Binary Operation 1? binary_op1,
Binary Operation 2? binary_op2)
{
for ( ; first1 != last1; ++first1, ++first2)
init = binary_op1(init, binary_op2(*first1, *first2));
return init;
}
Descripción inner_product() calcula el pruducto vectorial de dos secuencias, es decir las multiplica componente a componente y va acumulando los resultados.
partial_sum() Función template Output Iterator? partial_sum(Input Iterator? first, Input Iterator? last,
Output Iterator? result)
template Output Iterator? partial_sum(Input Iterator? first, Input Iterator? last,
Output Iterator? result, Binary Operation? binary_op)






Ejercicios 4.2.1 El modelo de Von Neumann

I DIBUJE EL MODELO DE NEUMANN.




II CONTESTE CORRECTAMENTE LAS SIGUIENTES PREGUNTAS:

1.- ¿Quien era Von Neumann?


2.- ¿Que pensó Neumann acerca de la representación de los datos?


3.- ¿De cuantas partes consiste el modelo?


4.- ¿En que consiste la memoria?


5.- ¿En que consiste la unidad aritmética logia?


6.- ¿En que consiste la unidad de control de programa?


7.- Describa algunos dispositivos de entrada y salida


8.- ¿De que se encarga el bus del sistema?


9.- ¿Para que nos sirve el acumulador?


10.- ¿Es este modelo la base para las computadoras modernas?



Puedes enviar tus respuestas a partir del viernes 4 de diciembre al correo del contacto cuñado. Gracias

Ejercicios 4.2.3 Lenguaje de Maquina

EJERCICIO N°1 DEL TEMA LENGUAJE DE MAQUINAS

Contesta las siguientes preguntas

1.-¿Lenguaje que se usa para comunicarse con la máquina?

2.-¿Quien interpreta el lenguaje de máquina?

3.-Escribe tu primer nombre en lenguaje de máquina

4.-¿En que consiste un programa?

5.-Escribe 5 nombres de microprocesadores

EJERCICIO N°2 DE LENGUAJE DE MAQUINAS

Escribe estas 5 palabras en lenguaje de máquina

1.INGENIERIA
2.SISTEMAS
3.MICROPROCESADOR
4.MAQUINA
5.CUÑADOS

Escribe 5 instrucciones para la computadora Ejemplos: int, get, set

Recuerda enviar tus respuestas a tareascunado@gmail.com