Funciones Por Partes o “A Tramos” en Matlab.

En numerosas ocasiones nos vemos en la necesidad de recurrir a Matlab® para resolver alguna situación de calculo, ya sea en una materia como métodos numéricos, procesamiento de señales, etc…y algunas de esas situaciones involucran por lo general las conocidas funciones por partes o a tramos, cómo en la figura 1.

fig 1. Funcion por partes en Matlab®.

fig 1. Funcion por partes en Matlab®.

Donde la gráfica presente en la figura 1, viene descrita por la señal o función de la ecuación 1.

blog

Realizar este tipo de gráfica en Matlab® es tan sencillo como se describe a continuación, inicialmente lo que necesitamos es difinir el vector de la variable independiente (como es usual a la hora de gráficar) lo que equivale a definir los valores o el rango de t en el ejemplo de la figura 1, es decir, ya sea utilizando la función linspace() o cualquier otro método para generar una vector que representa los valores de la variable independiente, ejemplo:

blog

Posteriormente, como sabemos, las instrucciones anteriores nos generaron un vector en un intervalo y una longitud que hayamos establecido, teniendo esto en cuenta, solo hay que recordar el concepto de la función por partes y algunos operadores lógicos de programación.

Para lograr el resultado de la función de la figura 1, escribiremos el código y lo explicaremos:

* Inicialmente, igual que se había mencionado antes, declaramos el vector de la variable independiente.

* Posteriormente solo basta asignar a la variable (vector) dependiente los valores respectivos, y esto se logra aplicando el concepto de los operadores de igualdad (y lógicos) al vector de la variable independiente, en este caso t.

blog

La primera parte de la asignación se lee (para los t menores o iguales a uno) este operación lógica nos arrojará un true o 1 lógico para los valores de t que cumplan esa condición específica y ese 1 se multiplicará por el valor correspondiente, que en este caso equivale a t^2, de lo contrario, para los valores que no son menores o iguales a uno, esa operación lógica nos retornará false o ‘0’ (cero) y anulará esa operación, pasando a la siguiente condición t>1 como ya sabemos, está condición se cumple y nos arroja un 1 lógico y el valor que se calcule en ese instante se guardará en el vector f.

Cuando el proceso de operaciones de comparación llega a su fin, el vector f ya tiene todos los valores necesarios para ser graficado  como se hace normalmente con la función plot(t,f) o con stem(t,f), obteniendo el resultado de la figura 1.

fig 3. Función por partes en Matlab®.

fig 3. Función por partes en Matlab®.

EJEMPLO FUNCIÓN POR TRAMOS CON CONDICIÓN MÚLTIPLE.

Escribiremos a continuación el desarrollo de la siguiente función:

blog

Para esto, nuevamente generamos en vector de tiempo t el cual será nuestra variable independiente, posteriormente construiremos las operaciones lógicas de comparación, y que estas a su vez multiplicaran a cada factor de la función en caso de ser válido, como se observa en el script.

blog

Como se puede observar , en el ultimo término, encontramos el operador &, este es el operador lógico AND y es obvio el haberlo usado, ya que preguntamos ¿t mayor o igual a -2 Y t menor o igual 2? si ambas condiciones se cumplen (arrojan un uno lógico) entonces la operación completa arrojará un 1 y validará la operación t^2 que corresponder, obteniendo la siguiente gráfica:

blog

Función por partes con condición múltiple.

En conclusión, podemos recalcar que la forma más optima de crear funciones por partes en Matlab es de este modo, usando las operaciones lógicas ya que ¿de todas formas, no es el método que usamos en la vida real?, hacer notar la importancia de los paréntesis para la agrupación de las operaciones lógicas para evitar resultados inesperados, y aun más importante, el buen uso del operador . (punto) para evitar excepciones en tiempo de ejecución o resultados no coherentes, diferentes a los esperados.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s