Beruflich Dokumente
Kultur Dokumente
Instrucciones:
Este parcial es a libro abierto, puede consultar sus notas, programas, información disponible en la red, etc. Todos
los programas que realice deben ser enviados a icom@ib.cnea.gov.ar antes de finalizar el examen (30/09/2010
18:30). Llame a cada archivo apellido_ejN.c, utilizando su apellido y con N el número de ejercicio resuelto.
Comente sus programas adecuadamente describiendo el algoritmo desarrollado.
Implemente la aritmética de números complejos representados de esta manera, según los siguientes prototipos:
// Módulo de un complejo
double mod_Comp(double z[2]);
// Argumento de un complejo
double arg_Comp(double z[2]);
// Conjugado de un complejo
void conj_Comp(double z[2], double res[2]);
Utilizar en cada caso, siempre que sea posible, las funciones previas. En complejos_ej1.c se verifican algunas de
las operaciones, comprobando que las funciones anteriores devuelvan los resultados correctos.
Ejercicio 2 - Coeficiente de difusión
Una caminata al azar es un proceso en el cual una o más partículas no interactuantes se desplazan en un dominio
n-dimensional dando en cada paso temporal (Δt) saltos de longitud Δx en direcciones aleatorias. Uno de los casos
más simples y estudiados es el que considera una red cuadrada bidimensional donde en cada paso de tiempo los
desplazamientos permitidos son equiprobables y sólo cuatro: arriba, abajo, derecha, izquierda.
Las caminatas al azar están íntimamente relacionadas con la descripción microscópica de la difusión. Se puede
mostrar que si se toman las trayectorias de muchas partículas en caminatas al azar el valor medio del
desplazamiento cuadrático es proporcional al tiempo, y la constante de proporcionalidad está asociada al
coeficiente de difusión.
Si consideramos que las partículas originalmente están ubicadas en (0) = y se mueven en dos dimensiones,
lo anterior se traduce en que < ( ( ) − ) > = 2 , donde es el índice de partícula, <> es el promedio
Se pide simular el random walk de 1000 partículas en una red bidimensional cuadrada durante 10000 pasos
temporales, y calcular para cada tiempo el valor de D. Considerar que Δt = Δx = 1. Analizar si para valores
grandes de t (pasos temporales) el valor de D se estabiliza.
Para hacer el camino inverso y poder encontrar el valor de la magnitud física a partir de la salida del ADC es
necesario conocer la función de transferencia del transductor.
Si el transductor tiene un comportamiento lineal, alcanza con saber qué magnitudes físicas representan una
salida 0 y una a fondo de escala del ADC y aplicar una transformación lineal:
Mmax
M0
adc
MAX
Hay casos en que la función de transferencia no es lineal y no puede ser representada como una recta como en el
caso anterior. Una posible solución a esto es utilizar la técnica por puntos de apoyo o de linearización por tramos.
Esta técnica se basa en representar la función de transferencia como un conjunto de segmentos de recta, como
los que se muestran en la figura siguiente:
M
Mn
Mi
M0
adc
i n
Apuntando a resolver el problema anterior se solicita que se implementen las siguientes funciones (se solicita un
respeto estricto de los prototipos):
// Función que debe calcular el índice del punto con abscisa menor
// o igual al adc, para ello utiliza un algoritmo de búsqueda
// binaria. Esta es una función de soporte de la función ‘convierte’
int buscaApoyo(int adc, double apoyos[][2], int nApoyos);
En apoyos_ej3.c se encuentra un esqueleto que facilita la implementación y prueba de las funciones pedidas.