El código para interpolación en MATLAB

Por joe friedman
El código para interpolación en MATLAB
Jupiterimages/Creatas/Getty Images

MATLAB es un software matemático sofisticado que puede llevar a cabo aritmética, cálculo y cientos de otras aplicaciones matemáticas, incluyendo interpolación lineal o el arte de calcular un valor indirectamente sobre la base de otros datos. Si una tabla sólo te indica que el aire a 40 grados tiene una presión de 70 unidades y que el aire a 50 grados tiene una presión de 92 unidades, la interpolación es cómo encontrar la presión del aire a 44 grados.

El método directo

El método directo de interpolación implica varios pasos de cálculo. Usando el ejemplo de la introducción: "dt = 50 - 40" es el intervalo de temperaturas de la tabla. "dp = 92 - 70" es el rango de presiones de la tabla. "dt1 = (44-40) / dt" es la fracción de la gama de temperaturas para la temperatura en cuestión. "respuesta = dt1 * dp + 70" es la misma fracción a lo largo del rango de presión sumada a la presión más baja en la tabla; y es la respuesta. En este ejemplo, es 78,8 unidades de presión.

Interpolación lineal en MATLAB

MATLAB incluye una función que puede cumplir los cuatro cálculos de la sección anterior simultáneamente. Es la función "interp1" y hará tus cálculos sencillos. Utilizando el ejemplo anterior, proporciona a la función interp1 el intervalo de presión, el intervalo de temperatura y la temperatura en cuestión, y te dará la respuesta de la presión en un solo paso. Escribe el siguiente código en la línea de comando de MATLAB:

respuesta = interp1 ([40 50], [70 92], 44)

MATLAB responderá con "respuesta= 78.8000", que coincide con el resultado de la sección anterior.

Interpolación del vecino más próximo

La función interp1 de MATLAB ofrece varios métodos para realizar la interpolación. El lineal es el método por defecto. Sin embargo, supongamos que en lugar de sólo los números 40 y 50, tú tienes valores de temperatura para todos los números enteros entre 40 y 50. Supongamos también que tienes valores de presión que corresponden sólo a enteros para cada valor de temperatura en tu tabla. Si utilizas el método del "vecino más cercano", MATLAB no te dará un valor exacto; en su lugar te indica la respuesta más cercana en la tabla. El código en el siguiente formato logra esto:

respuesta = interp1 ([valores temp], [valores presión], 43.4, 'nearest')

Interpolación de curvas cúbicas

La curva cúbica es otro método que puede realizar la función interp1 o la función autónoma "spline". En lugar de dar un valor único al tercer argumento de la función, dale un rango de valores dentro del primer rango (las temperaturas en la tabla). La función spline devolverá un rango correspondiente dentro del segundo rango (presiones en la tabla). Puedes utilizar el código en el formato siguiente para extraer el rango de presiones correspondientes a un subintervalo de temperaturas:

respuesta = spline ([rango temp], [rango de presión], [subrango temp])