Ejercicios · Bloque 2: Estructuras de Control y Listas
15 ejercicios resueltos paso a paso.
Bloque 2: Estructuras de Control y Listas · 2.1 Condicionales
1.
Implementar un algoritmo en Python que clasifique la estabilidad coloidal de una suspensión de nanopartículas a partir del potencial Zeta medido en milivoltios, distinguiendo entre regímenes de coagulación rápida, estabilidad moderada y alta estabilidad electrostática.
El potencial Zeta (|zeta|) determina la magnitud de la repulsión electrostática entre nanocoloides. Según el modelo DLVO, si |zeta| < 15 mV, las partículas coagulan rápidamente por predominio de las fuerzas atractivas de van der Waals;
si 15 mV <= |zeta| < 30 mV, la dispersión posee estabilidad moderada con tendencia a aglomerar a largo plazo;
si |zeta| >= 30 mV, la suspensión presenta alta estabilidad electrostática. Para implementar el algoritmo, extraemos la magnitud absoluta con abs(), evaluamos la cadena condicional con if-elif-else y emitimos el diagnóstico junto con una recomendación técnica.
Diseñar un sistema de control automático en Python para la corriente de túnel en un microscopio STM, comparando la corriente leída con la corriente consigna y ajustando la velocidad del lazo de realimentación (feedback) piezoeléctrico.
En un microscopio de efecto túnel (STM), la corriente de túnel I_t depende exponencialmente de la distancia punta-muestra. Para evitar colisiones catastróficas de la sonda atómica, el lazo de control calcula la desviación relativa respecto a la consigna I_set: error = (I_t - I_set) / I_set. Si el error supera +50%, la punta está peligrosamente cerca y debe retraerse a máxima velocidad (modo emergencia);
si el error está entre -10% y +10%, el sistema se encuentra en seguimiento estable;
si es menor a -50%, la punta está alejada y avanza a velocidad rápida. Programamos la toma de decisiones con condiciones encadenadas.
Desarrollar un evaluador del régimen de confinamiento cuántico en puntos cuánticos semiconductores de seleniuro de cadmio (CdSe), comparando el radio del nanocristal con los radios de Bohr del electrón, hueco y excitón.
En pozos cuánticos tridimensionales (quantum dots), el régimen físico de confinamiento depende del radio R del nanocristal frente a las dimensiones cuánticas características del material: el radio de Bohr del electrón a_e (3.0 nm), del hueco a_h (1.0 nm) y del excitón a_exc = a_e + a_h (4.0 nm). Si R < a_h y R < a_e, rige el confinamiento fuerte (ambos portadores confinados independientemente);
si a_h <= R < a_exc, se tiene confinamiento intermedio;
si R >= a_exc pero R < 10*a_exc, confinamiento débil; y para radios mayores, el comportamiento es de material masivo (bulk). Programamos la clasificación mediante condiciones relacionales encadenadas.
Diseñar un algoritmo de decisión para la purificación de nanopartículas magnéticas de magnetita (Fe3O4) mediante decantación magnética, evaluando la turbidez, el pH de la suspensión y el tiempo de exposición al imán de neodimio.
En la separación magnética de nanovehículos de magnetita para aplicaciones biomédicas, la eficiencia de separación depende del pH (que condiciona el potencial de superficie) y del tiempo de aplicación del campo magnético. Si el pH se encuentra entre 6.0 y 8.0 (cercano al punto isoeléctrico, favoreciendo la agregación reversible) y el tiempo con el imán supera los 120 segundos, la turbidez final debe descender por debajo de 5.0 NTU para considerar completado el proceso. Si la turbidez no baja pero el pH fue ácido (pH < 4), se requiere añadir surfactante antes de reintentar. Implementamos la lógica con operadores lógicos compuestos.
Programar un validador de seguridad criogénica para la presurización y llenado de nitrógeno líquido en el cryostat de un laboratorio de nanocaracterización, comprobando simultáneamente presión de línea, temperatura de cabezal y estado de venteo.
Las transferencias criogénicas de nitrógeno líquido (LN2) conllevan riesgos graves de sobrepresión si las válvulas de venteo se bloquean por congelación de humedad ambiental. El sistema de monitorización evalúa tres sensores: presión manométrica P (bar), temperatura de la línea T (K) y el sensor inductivo de apertura de venteo. Para autorizar la transferencia, P debe situarse entre 0.8 y 1.5 bar, T debe ser menor de 120 K (línea preenfriada) y el venteo debe estar operativo (True). Si la presión supera 2.0 bar, se activa la parada de emergencia y apertura de válvula de alivio.
Bloque 2: Estructuras de Control y Listas · 2.2 Bucles for
6.
Implementar el método numérico iterativo de Newton-Raphson para resolver la concentración de portadores libres en un nanocable semiconductor intrínseco, iterando hasta que la diferencia relativa entre pasos sucesivos sea menor que 1e-6.
En la física de semiconductores nanométricos, la relación no lineal entre el nivel de Fermi E_F y la densidad de estados se resuelve mediante aproximaciones sucesivas. Simplificamos el problema resolviendo la ecuación f(x) = exp(x) - 5*x = 0 mediante Newton-Raphson: x_{k+1} = x_k - f(x_k)/f'(x_k). Empleamos un bucle while con control de convergencia dual: parada por tolerancia relativa (|delta_x / x| < 1e-6) o por límite de seguridad en el número de iteraciones (50 ciclos) para evitar bucles infinitos en caso de divergencia.
Diseñar un script con bucles for anidados que genere la cuadrícula bidimensional de escaneo para una sonda de microscopía de fuerzas atómicas (AFM), recorriendo una matriz de 5x5 puntos sobre una ventana de 100x100 nanómetros.
En la adquisición de micrografías SPM (Scanning Probe Microscopy), la sonda piezoeléctrica barre la muestra fila a fila (eje X rápido) avanzando secuencialmente en el eje lento (eje Y). Para modelar esta trayectoria de muestreo espacial, empleamos dos bucles for anidados coordinados con range(). El bucle externo itera sobre las filas (coordenadas Y) y el interno sobre las columnas (coordenadas X). Calculamos las coordenadas nanométricas multiplicando los índices de la malla por el paso de discretización espacial: paso = tamano_ventana / (num_puntos - 1).
Desarrollar un filtro iterativo en Python que procese un perfil espectral descartando mediante continue todos los puntos con relación señal/ruido inferior a 3.0 y acumulando la integral del pico principal.
En el tratamiento de espectros de emisión por fluorescencia de nanoclusters metálicos, los detectores CCD generan lecturas con ruido térmico en las líneas base. Para calcular la intensidad integrada de forma precisa sin sumar ruido de fondo, evaluamos cada canal con un bucle for. Si la relación señal/ruido (SNR) de un punto es inferior al umbral estándar de Rose (SNR < 3.0), ejecutamos continue para saltar el cómputo y pasar directamente al siguiente canal. Solo sumamos los puntos que superan el umbral estadístico.
Programar un algoritmo de búsqueda con for y break que localice el primer valor de potencial químico en el que la reflectancia plasmónica cae por debajo del 10% (resonancia de plasmón de superficie), utilizando la cláusula else para certificar si el mínimo no fue alcanzado.
En biosensores plasmónicos basados en prismas de Kretschmann, la resonancia de plasmón superficial (SPR) se manifiesta como un mínimo pronunciado en la curva de reflectancia en función del ángulo o del potencial químico de superficie. Recorremos secuencialmente los datos experimentales con un bucle for. Cuando la reflectancia cae por debajo del umbral de acoplamiento (R < 0.10), guardamos el punto y salimos de inmediato con break. Si el bucle concluye todas las iteraciones sin activar el break, la cláusula else asociada al for emite una notificación de fallo de acoplamiento.
Implementar una simulación estocástica 1D mediante un bucle while que modele la difusión por saltos de una molécula sobre una terraza atómica, deteniéndose cuando la partícula alcance el borde de un escalón atómico situado a ±10 sitios de red.
La difusión superficial de adátomos y moléculas sobre cristales metálicos sigue un modelo de paseo aleatorio (random walk). En cada paso discreto de tiempo, la molécula salta hacia la izquierda (x = x - 1) o hacia la derecha (x = x + 1) con idéntica probabilidad del 50%. La simulación inicia en x = 0 y prosigue en un bucle while hasta que la molécula alcanza cualquiera de los dos bordes de terraza situados en x = +L o x = -L (barreras absorbentes). Contabilizamos el número total de saltos estocásticos necesarios para alcanzar el borde.
Bloque 2: Estructuras de Control y Listas · 2.3 Listas y Bucles while
11.
Implementar un algoritmo de suavizado por media móvil centrada de tres puntos sobre una lista de intensidades espectrales de difracción de rayos X, generando una nueva lista filtrada de dimensiones coherentes mediante slicing e iteración.
En el tratamiento de espectros XRD, las fluctuaciones estadísticas de conteo de fotones se reducen mediante un filtro de media móvil (moving average). Para cada punto interior i (desde 1 hasta N-2), la intensidad suavizada es la media aritmética de su vecino izquierdo, el punto central y su vecino derecho: y_suavizado[i] = (y[i-1] + y[i] + y[i+1]) / 3.
0. Implementamos el filtro recorriendo los índices interiores con un bucle for y la función range(1, len(y) - 1), calculando la media local y añadiendo el resultado a una nueva lista con append(), preservando intacta la lista original.
Desarrollar un programa que normalice al intervalo unitario [0, 1] una lista de intensidades de fotoluminiscencia de nanohilos semiconductores, restando la línea base mínima y dividiendo entre la amplitud neta del pico.
Para comparar la eficiencia cuántica de emisión entre muestras sintetizadas en distintos lotes, es necesario normalizar las curvas espectrales eliminando desviaciones de la línea base del detector: I_norm = (I - I_min) / (I_max - I_min). En Python, utilizamos las funciones nativas min() y max() sobre la lista de intensidades para obtener los extremos globales en O(N). Posteriormente, construimos la lista normalizada aplicando una comprensión de listas (list comprehension), que proporciona una sintaxis canónica, compacta y de óptimo rendimiento.
Diseñar un gestor de cola de procesamiento tipo FIFO (First-In, First-Out) para el carrusel de muestras de un microscopio electrónico de transmisión (TEM), implementando la inserción de muestras prioritarias y el despacho secuencial con métodos de lista.
En una instalación científica multiusuario de microscopía electrónica, las rejillas de muestras se gestionan mediante una cola de trabajo FIFO. Una muestra estándar se añade al final de la cola mediante el método append(). Si un investigador ingresa una muestra de emergencia o degradable, se inserta en la cabecera (índice 0) mediante insert(0, muestra). El despacho hacia la cámara de vacío se realiza extrayendo el primer elemento disponible mediante pop(0). Implementamos las operaciones controlando el tamaño residual de la cola con len().
Desarrollar un filtro de limpieza de datos en listas que elimine todos los valores nulos o centinelas negativos de saturación en una serie de resistividad eléctrica a 4 Kelvin, preservando el orden cronológico original mediante filtrado in situ o comprensión.
En experimentos criogénicos de superconductividad a temperaturas de helio líquido, los transitorios de ruido electromagnético provocan lecturas centinela negativas (-999.0) o nulas que distorsionan el análisis. Para depurar la serie sin alterar la cronología de los puntos válidos, creamos una lista limpia descartando las mediciones espurias mediante una comprensión condicional de listas: [x for x in datos if x > 0.0]. Contrastamos la longitud antes y después de la purga y calculamos la resistividad residual mínima.
Implementar la integración numérica por el método del trapecio sobre dos listas paralelas de coordenadas x (potencial en V) e y (corriente en microamperios) para calcular la carga eléctrica total transferida en un ciclo de desorción electroquímica.
La regla del trapecio compuesta aproxima la integral definida de una curva discretizada sumando las áreas de los trapecios formados por puntos adyacentes: Integral = Suma [ (x_{i+1} - x_i) * (y_i + y_{i+1}) / 2 ]. Dadas dos listas de idéntica longitud N, iteramos sobre los índices i desde 0 hasta N-
2. En cada subintervalo evaluamos el ancho delta_x y la altura media (y_i + y_{i+1})/
2. Acumulamos el área total para obtener la carga transferida en microculombios (µC).
Solo los usuarios registrados pueden acceder a las soluciones completas de los ejercicios y al reproductor interactivo de ejercicios y de teoría.
🎁
¡Promoción de lanzamiento!
El acceso es gratuito de por vida y sin necesidad de introducir datos de pago para los 100 primeros usuarios registrados. A partir de los 100 primeros costará 4,99 €/mes (+IVA) o 49,99 €/año (+IVA).
Regístrate gratis para obtener acceso inmediato a todos los recursos. Si ya estás registrado en matemas.com, entra con tu usuario y contraseña: