Categorías
MATLAB Octave tutorial

Curso de introducción a Octave-MATLAB para ingenieros químicos (2ª ed.)

Volvemos este año con la segunda edición del curso gratuito de Octave / MATLAB para ingeniería química. De nuevo, la motivación de este curso es mostrar a los estudiantes una alternativa, libre, gratuita y factible a MATLAB que puedan utilizar una vez comience su vida profesional. Para ello se resolverán diversos problemas, con especial atención al diseño de reactores químicos, un área de conocimiento que requiere del uso de métodos numéricos para su simulación, sin olvidar otros campos de interés.

Horarios y aulas:

  • Lunes 27 de octubre de 15:30 a 18:00 h en el laboratorio L18 (Ed. Poli. I)
  • Martes 28 de octubre de 15:30 a 18:00 h en el aula A3/INF2 del Aulario III
  • Miércoles 29 de octubre de 15:30 a 18:00 h en el laboratorio L17  (Ed. Poli. I)
  • Jueves 30 de octubre de 15:30 a 18:00 h en el laboratorio L17 (Ed. Poli. I)

¿Por qué GNU Otave y no MATLAB?

  • Es altamente compatible y similar a MATLAB, siendo esta última la opción con la que se imparten los cursos de programación a los estudiantes de grado pero que tiene un coste de 69 € para estudiantes y de ~15000 €si lo quieren utilizar en su vida profesional
  • Es software libre y 100% gratuito, disponible para Windows y Linux
  • Octave UPM, por ejemplo, es una adaptación de GNU Octave que se emplea para la docencia de Informática en la Escuela de Ingenieros de Caminos, Canales y Puertos de la UPM y ha sido desarrollado por el Dr. Israel Herraiz
Entorno de programación (similar a MATLAB)
Entorno de programación de Octave UPM (similar a MATLAB)

Actualización: La nueva versión de GNU Octave ya incorpora interfaz gráfica (descargar para Windows)

El curso es gratuito y de acceso libre, todo el material utilizado durante el mismo será también publicado para aquellos que no puedan asistir. No obstante, recomendamos este curso ya que su intención es más práctica que teórica y además estaremos a vuestra disposición para ayudaros a encontrar fallos en vuestros scripts así como resolver dudas puntuales que tengáis. Recomendamos que vengáis con vuestro portátil para poder trabajar siempre que queráis con Octave UPM en vuestro ordenador.

¿Por dónde empezar?

Los requisitos del curso serán tener conocimientos básicos de programación y de reactores químicos. Para el que quiera ir repasando:

Temario:

El temario del curso se dividirá en 4 sesiones de 2,5 horas cada una y se adaptará con la respuesta de los asistentes:

  • Sesión I (2,5 h):
    • Introducción a Octave UPM
      • Buenas prácticas de programación
      • Repaso: Operaciones y comandos básicos de Matlab-Octave
      • Resolución de ecuaciones diferenciales ordinarias

      • Sesión II (2,5 h):
        • Modelado y simulación de RDTAs mediante ejemplos ordenados de menor a mayor grado de dificultad:
          • Llenado de un tanque.
          • Llenado de un tanque con aporte de calor
          • RDTA y reacciones en serie (isotermo)
          • Modelado de un RDTA no isotermo

    • Sesión III (2,5 h):
      • Modelado y simulación de RFPs mediante ejemplos de complejidad progresiva
      • Reacción en fase gas sobre catalizador de óxido de aluminio
      • Craqueo de acetona
      • Craqueo térmico de hidrocarburos (incluyendo balances de materia, energía y cantidad de movimiento).

  • Sesión IV (2,5 h):
    • Introducción a aplicaciones de Octave/Matlab en Ingeniería Biomédica: modelo epidemiológico, tratamiento de imágenes médicas, ayuda al diagnóstico médico, modelización y simulación de sistemas fisiológicos.
    • Resolución de un problema con sucesión de varios reactores RFP en serie
    • Modelado y simulación de la puesta en marcha de un RCTA (comportamiento dinámico)

¿Cómo podrían afectar los recortes a la propagación del virus del Ébola?

ebola-simulacion-CAChemE

 

function main
% Modelo simple SEIR epidemiológico
% del virus del Ébola
% Oct. 2014 - CAChemE.org


% Condiciones iniciales

N = 100; % Población total

y0 = [N, 1, 0, 0, 0]; % [S, E, I, R, D]

% Discretización de la variable independiente

tiempo_simulacion = 350; % días
t  = [0, tiempo_simulacion];

% Llamamos al ode para resolver las eq. diferenciales   
[t,y] = ode45(@DiffEqs, t, y0);


function dydt =  DiffEqs(t,y)
  %Modelo simple epidemiológico para la
  % propagación del virus del Ébola

  % Recuperamos las variables dependientes de entrada
  S = y(1);
  E = y(2);
  I = y(3);
  R = y(4);
  D = y(5);

  Nn = S + E + I + R; % Total de personas vivas

  
  %---------------------------------------------------------------
  % Constantes del modelo
  %---------------------------------------------------------------

  sigma = 1./9; %  Velocidad de convertirse en contagioso una vez expuesto
  gamma_factor = 1./8.5; % Velocidad de recuperación o fallecimiento
  f = 0.4; % Fracción de gente que no supera la enfermedad (40%)

  % A mayor nº de recortes, mayor nº de personas contagiadas por infectado
  recortes_sanidad = 1.4;

  R_0 = recortes_sanidad;

  beta_factor = R_0*gamma_factor; % Velocidad con la que se propaga la infec.

  % Definimos las ecuaciones diferenciales
  dSdt = -beta_factor*(S/Nn)*I;
  dEdt = +beta_factor*(S/Nn)*I - sigma*E;
  dIdt = sigma*E - gamma_factor*I;
  dRdt = (1.0-f)*gamma_factor*I;
  dDdt = f*gamma_factor*I;
  dydt =  [dSdt, dEdt, dIdt, dRdt, dDdt]';

end


% Obtenemos y nombramos las variables dependientes de salida del ode45
S = y(:,1); %  S es el nº de personas sin infectar
E = y(:,2); %  E es el nº de portadores del virus no contagiosos (aún)
I = y(:,3); %  I es el nº de personas sintomáticas e infecciosas
R = y(:,4); %  R es el nº de personas recuperadas
Ds = y(:,5); %  D es el nº de personas fallecidas

% Creamos la figura para representar los resultados
figure(1)

% Representamos las curvas de evolución con respecto al tiempo
plot(t, [(E + I), I, R, Ds, S])


% Añadimos leyenda a los datos
legend('% infectados', ...
      '% infectados contagiosos', ...
      '% recuperados', ...
      '% fallecidos', ...
      '% población sana ')

title('Variación de la velocidad de propagación del virus del ebola.')
xlabel('tiempo / días')
ylabel('porcentaje de población')

end

 

 

Instructor: Sergio Quesada


El curso será impartido por Sergio Quesada Dorigné, Ingeniero Químico por la Universidad de Alicante e Ingeniero Biomédico por la Universidad Politécnica de Valencia y la Universidad de Valencia.

 

 

¿A quién va orientado este curso?

Si bien el curso está orientado a alumnos de grado de 3º de Ingeniería Química (de ahí el horario de tarde que se ha seleccionado), en el curso se hará una introducción a la programación con Octave / MATLAB por ordenador. Si eres estudiante de otro año y no tienes problemas con las clases ¡eres más que bienvenido/a!. Si, por el contrario, te hubiera gustado asistir pero el horario del curso es incompatible con el tuyo, háznoslo saber con un comentario.

CAChemE entregará certificados de asistencia a quienes lo soliciten y cumplan con los requisitos (asistencia mínima al 80 % de horas). No obstante, este curso no es convalidable por créditos de libre configuración.

¿Por qué es gratuito?

Este curso es posible gracias a la financiación del la Escuela Politécnica Superior de la Universidad de Alicante. Si te interesan este tipo de cursos de formación de ingeniería química por ordenador, házselo saber al delegado de tu curso para presentar una solicitud por la vía correspondiente.

Aprende más sobre Ingeniería de Procesos Químicos por ordenador

Suscríbete a nuestro canal de YouTube o síguenos en Facebook o Twitter.

 

Categorías
MATLAB Octave

Curso básico de modelado de reactores químicos en MATLAB-Octave UPM

Aquí recogemos el material del curso gratuito que tuvo lugar durante la primera y segunda semana de diciembre de 2013 para alumnos de grado de Ingeniería Química. Octave UPM que es la alternativa a MATLAB más interesante para los que busquen máxima compatibilidad.

[box]Accede a los contenidos actualizados de la segunda edición de este curso

Horario y aulas 

Horario de 16 a 18 h para los siguientes días de diciembre, y en las aulas de informática de la EPS:

  • martes 3 (L25);
  • miercoles 4 (L18);
  • jueves 5 (L13);
  • martes 10 (L25);
  • miercoles 11 (L25);
  • jueves 12 (L13);

¡Aquellos alumnos que asistan a un 80% del curso, recibirán un certificado de asistencia!
¿Por qué Octave UPM y no MATLAB?

  • Octave UPM es una adaptación de GNU Octave que se emplea para la docencia de Informática en la Escuela de Ingenieros de Caminos, Canales y Puertos de la UPM y ha sido desarrollado por Israel Herraiz (@herraiz)
  • Es altamente compatible con MATLAB.
  • Es software libre y gratuito, disponible para Windows y Linux
Entorno de programación (similar a MATLAB)
Entorno de programación de Octave UPM (similar a MATLAB)

Actualización: La nueva versión de GNU Octave ya incorpora interfaz gráfica (descargar para Windows)

El curso es gratuito y de acceso libre, todo el material utilizado durante el mismo será también públicado para aquellos que no puedan asistir. No obstante, recomendamos este curso ya que su intención es más práctica que teórica y además estaremos a vuestra disposición para ayudaros a encontrar fallos en vuestros scripts así como resolver dudas puntuales que tengáis. Recomendamos que vengáis con vuestro portátil para poder trabajar siempre que queráis con Octave UPM en vuestro ordenador.

¿Por dónde empezar?

Los requisitos del curso serán tener conocimientos básicos de programación y de reactores químicos. Para el que quiera ir repasando:

Día 1:

Iniciacion al modelado de reactores quimicos com MATLAB – Octave (intro) por CAChemE

Día 2 y 3:

Simulación de reactores químicos con octave por CAChemE

Días 4 y 5:

Reactor flujo piston en MATLAB – Octave UPM – Craqueo térmico por CAChemE

Día 6:

Reactor de flujo piston con MATLAB Octave from CAChemE
Archivo principal:
pkg load odepkg

close all
clear all
clc

global k0 Ea R Seccion Qv1 alfa U Tw Tref d DCp DHref Cp Qv2

%Sacarosa(A) medioacido(B) glocosa(C) fructosa(D) indes(E)

%DATOS TERMODINAMICOS Y CINETICOS
%        A  B C D E 
alfa = [-1 -1 1 1 0
        -1 -1 0 0 2];

Cp = [62.0 75.2 80.0 80.0 80.0]; % kJ/kmol.K
PM = [342 18 180 180 180]; % Kg/Kmol

DHref = [-11000 -12000]; % kJ/kmol
Ea = 125300; % J/mol
R = 8.314; % kJ/kmol.K o J/mol.K
k0 = 0.0193/(exp(-Ea/R/(273+50)));
DCp = Cp*alfa'; % Equivalente a sum(Cp.*alfa)
Tref = 25+273; % K

% DATOS DE LOS REACTORES Y REFRIGERACION
Seccion = 0.1; % m2
d = (Seccion*4/pi)^0.5; % m
U = 1.0; % kJ/s·m2·K
Tw = 30+273; % K

% DATOS ALIMENTO
Talim = 50+273; % K
Qv0 = 0.4/60; % m3/s
Qv1 = 0.2/60; % m3/s
Qv2 = 0.3/60; % m3/s
Qv3 = 0.1/60; % m3/s

% EJECUTO PRIMER REACTOR Y TANTEANDO VOY A VER QUE LONGITUD DE REACTOR
% NECESITO PARA LLEGAR A LA SALIDA A C(3)=1.5M

C0 = [2 16.6 0.1 0 0]; % kmol/m3
L1 = 1; % no conocemos este valor, se pone 1 para empezar

y0 = [C0 Talim]; % Condiciones iniciales
[x1,Y1] = ode45(@fdif_rfp1,[0 L1],y0);

% REPRESENTACIÓN DE RESULTADOS
L_r1 = x1; % variable independiente
C_r1 = Y1(:,1:5);
T_r1 = Y1(:,6);
C_salida_r1 = Y1(end,1:5); % variable dependiente (C)
T_salida_r1 = Y1(end,6); % variable dependiente (Tª)

figure(1)
plot(L_r1,C_r1)

xlabel('L / m')
ylabel('C_j / kmol/m^3')
title('Variación de concentraciones en el RFP_1')
legend('Sacarosa', 'Agua acidulada', 'glucosa', 'Fructosa', 'indesada')

figure(2)
plot(L_r1,T_r1)
xlabel('L / m')
ylabel('T / K')
title('Variación de temperatura en el RFP_1')

Archivo de función:

function z=fdif_rfp1(x,y)

global k0 Ea R Seccion Qv1 alfa U Tw Tref d DCp DHref Cp

% Se asginan de nuevo las variables del vector de
% condiciones iniciales "y"

%Sacarosa(A) medioacido(B) glocosa(C) fructosa(D) indes(E)

C=y(1:5);
T=y(6);

n = C*Qv1; % Flujo molar;

% BALANCE DE MATERIA

k1 = k0*exp(-Ea/R/T);
k2 = exp(-5.64-220/T);

k = [k1 k2];

r(1) = k(1)*C(1);
r(2) = k(2)*C(1);

dndL(1) = Seccion*r*alfa(:,1);
dndL(2) = Seccion*r*alfa(:,2);
dndL(3) = Seccion*r*alfa(:,3);
dndL(4) = Seccion*r*alfa(:,4);
dndL(5) = Seccion*r*alfa(:,5);

dCdL = dndL/Qv1;

% % Equivalente pero mediante bucle:
%  for i=1:5;
%    z(i)=(Seccion/Qv1)*r*alfa(:,i);
%  end

% BALANCE DE ENERGIA 
for i=1:2;
    DH(i)=DHref(i)+DCp(i)*(T-Tref);
end

Q = U*pi*d*(Tw-T);

dTdL = (Q - Seccion*sum(r.*DH))/ sum(n'.*Cp);

z = [dCdL, dTdL]';

end

 

Categorías
MATLAB Octave podcast

¿MATLAB? Yo uso Octave UPM – Podcast #2

¿Buscas una alternativa a MATLAB libre y que sea compatible con tu trabajo ya hecho? ¿tienes problemas de licencias o te gustaría reducir el coste de las mismas?

En esta ocasión entrevistamos al desarrollador principal de Octave UPM, una de las alternativas más atractivas a MATLAB. Israel Herraiz (@herraiz) nos responde a todas las preguntas sobre este proyecto basado en GNU Octave que busca la máxima compatibilidad con MATLAB y le añade una entorno gráfico también similar.

Disclaimer: Después de este podcast no te quedarán casi excusas para no probar software libre «tipo MATLAB».

Secciones de la entrevista con links para obtener más información:

  • ¿Por qué Octave? [EN] GNU Octave, a great time saver.
  • [EN] Problemas de licencia con MATLAB y sus toolboxes diseñados para pasar por caja (ej. el toollbox de estadística necesario para funcionesciones triviales como random entre a y b).
  • GNU Octave (Wikipedia) – ¡Originalmente creado con la finalidad de calcular reactores para procesos Químicos!
  • ¿Por qué voy a querer una alternativa a MATLAB si funciona tan bien y es tan solicitado?
  • ¿Por qué Octave si es tan similar no se usa? Compatibilidad entre MATLAB y Octave (+1) y falta de una interfaz gráfica y entorno de programación,
  • Octave UPM: origen, motivación y objetivos.
  • Resultados y aceptación por alumnos de la UPM.
  • Octave está trabajando en una GUI también ¿se sabe algo?
  • Continuidad de Octave UPM y diferencias con GNU Octave.
  • Material libre para aprender a programar: MiriadaX (Wiki) y materiales de Guillem Borrell.

Actualización: La nueva versión de GNU Octave ya incorpora interfaz gráfica (descargar para Windows)

Y como siempre, si hay algo que te hubiera gustado añadir puedes comentárnoslo justo aquí abajo.

Música:

Agradecimientos a la EPS de Alicante, a los ing. técnicos de sonido y a Marisa por sus mensajes de error 😉

¿MATLAB? Yo uso Octave UPM de Israel Herraiz
Categorías
MATLAB Python

Enthought Canopy vs Anaconda – ¿Cúal es mejor?

¿Enthought Canopy o Anaconda? Ambas son distribuciones de Python que se presentan como alternativas a MATLAB. La ventaja que tienen es que simplifican enormemente la instalación de Python incluyendo los paquetes más populares.

[box]Actualización (2015): Anaconda de Continuum es a día de hoy la mejor opción para instalar Python 3. Ver vídeo de instalación

Spyder es el IDE más similar a MATLAB
Spyder es el entorno de desarrollo de Python más similar a MATLAB

A pesar de que el producto de Mathworks no tiene rival en ciertas áreas, Pyhton tiene una serie de ventajas muy importantes frente a MATLAB.

En cualquier caso en el 2013, no existía una selección clara de por dónde empezar. Canopy express (la versión gratuita) presentaba más paquetes que Anaconda pero una limitación de 32bit , mientras que Anaconda permitía trabajar directamente a 64bit.

Anaconda es una nuevo instalador de paquetes de Python multiplataforma

Pero en la actualidad (2015), el número de paquetes de Anaconda ha aumentado y a diferencia de Canopy express, Anaconda viene con Python 3 y es totalmente gratuito incluso para uso comercial. Su gestor de paquetes conda resuelve el problema de dependencias de forma elegante.

Canopy vs Anaconda - Canopy express ahora también a 64bit

Entonces, ¿qué es mejor Anaconda o Canopy Express?

Hasta hace unos años Enthought (Canopy) lideraba el sector, pero su licencia sólo permite el uso personal. Además, sigue sin dar soporte a Python 3 (cuando para el 2020 no habrá más soporte de Python 2.7).

Anaconda/conda  es la mejor opción con diferencia ya que sigue siendo totalmente gratuita tanto para usuarios como para empresas y ha liberado su código y licencia, soporta Python 3 e incluye ahora una interfaz gráfica.

 

Categorías
MATLAB Python

Python para ingenieros

Pese a que a día de hoy MATLAB es imbatible en ciertos campos, Python empieza a ser una alternativa real gracias a sus librerías llamadas NumPy / SciPy para operaciones númericas, Cython para optimizaciones de código a bajo nivel, IPython para trabajar de forma interactiva, Pandas para análisis de datos y matplotlib para gráficas etc.

[box]Actualización (2015): El panorama ha cambiado mucho en estos dos años. Python es la opción recomendada por Python en Nature y en varias universidades de prestigio.

Hoy en día, muchas de las ofertas de trabajo para ingenieros solicitan conocimientos de MATLAB. Debido a que empezar a trabajar con MATLAB sólo requiere conocimientos de álgebra y cálculo con matrices, es la herramienta utilizada en muchas de las universidades y escuelas de ingeniería. Hasta aquí MATLAB sólo da satisfacciones, todo es sencillo y con los toolboxes ilimitados apenas hay que programar nada más que scripts que hagan usos de estas funciones.

spyder-windows
Si vienes de MATLAB, Spyder es el entorno de programación (IDE por sus siglas en inglés) que te resultará más cómodo.

Llegas al mundo laboral y sin embargo las cosas cambian, una licencia comercial de MATLAB suele costar unos 15000 € de media. Por lo que las empresas que pueden afrontar ese coste exigen conocimientos elevados para recuperar la inversión.

Pero, si estás aquí, es porque has oído que Python empieza a ser una alternativa real para muchas de las funciones de MATLAB. Ya hemos hablado de las opciones para sustituir MATLAB y cómo Python es posiblemente la mejor alternativa a MATLAB.

Resumiendo mucho, Python es un lenguaje de programación mucho mejor que MATLAB puesto que es un lenguaje muy fácil de leer, escalable y que sirve para muchas más funciones que el cálculo científico.

¿Te hemos empezado a convencer? Pues espera, porque ahora viene lo mejor.

La instalación de Python para Windows es (o era), especialmente tediosa. Por eso, si quieres empezar con Python como ingeniero y no sabes cómo desde CAChemE te recomendamos tres opciones:

  • Anaconda: Alternativa a Canopy con instaladores para Windows, MacOS y Linux. Si bien es menos completo que Canopy, Anaconda tiene las librerías de Python más importantes. También tiene opciones comerciales para acelerar código pero la ventaja de Anaconda es que puedes usar Python 3 (versión más reciente y recomendable si estás empezando). En resumen, para instalar Python en Windows Anaconda es la mejor opción.

carousel_1

 

  • Python(x,y) y/o WinPython: Alternativa totalmente libre y gratuita orientada especialmente para ingenieros que quieren migrar de MATLAB a Python. De las anteriores es la que menos paquetes o librerías dispone pero es la forma más sencilla de empezar. Amabas son sólo para Windows siendo WinPython la opción más interesante puesto que no requiere instalación (portable) y la puedes llevar en tu memoria USB.

Python para Windows portable

  • Canopy: Conocida anteriormente como Enthought, dispone de instaladores para Windows, MAC y Linux totalmente automáticos. Además incluye la mayoría de librerías y un sistema para añadir o actualizar los paquetes de Python de forma automática.  A día de hoy no dispone de Python 3 por lo que recomendamos Anaconda (primera opción) que, a diferencia de Canopy, permite su uso en empresa de forma gratuita.

canopy-logo-white

En general, aprender Python requiere un poco más de esfuerzo ya que dependes de otras librerías. Pero es que con MATLAB (comercial) cada cosa nueva que quieres hacer te toca adquirir la licencia del toolbox correspondiente lo cual limita bastante a no ser que tú u tu empresa tengáis recursos infinitos.

Nosotros recomendamos dos materiales para aprender Python si se viene de MATLAB:

– El “curso” online que realizamos con Pybonacci (deberías pasarte por su blog para que veas todo lo que se puede hacer con Python)

– Y Software Carpentry:

Por último, una vez nos sentimos cómodos esta tabla viene muy bien para imitar la forma de trabajar en la que estamos acostumbrados en MATLAB:

Ya estás listo para empezar, si tienes alguna duda puedes preguntarlo en la comunidad de Python para ingenieros que tenemos en Google+.

Categorías
MATLAB Python SciLab

Python para usuarios de MATLAB

Si bien existen varias alternativas a MATLAB tales como Scilab y Octave, el uso de Python para sustituir MATLAB va ganando adeptos. Muchos ingenieros y científicos nos consultan respecto a cuales son las verdaderas ventajas Python como nuevo lenguaje de trabajo que consumirá un tiempo valioso de aprendizaje.

Python-Programming-Language

Antes de empezar, es importante destacar que MATLAB es una herramienta muy capaz y en algunos campos (aún) no tiene rival. El gran problema de MATLAB es el coste de las licencias junto a algunas inconsistencias de su lenguaje.

El coste de una licencia de MATLAB es a día de hoy de 2000€ más los toolboxes que se requieran (1000€/ud) más 5000€ para el compilador que nos permitirá comercializar nuestro trabajo.

¿Qué alternativas más sencillas y gratuitas existe para MATLAB?

  • Octave es el lenguaje más compatible con MATLAB pero tiene la «desventaja» de estar protegido con licencia GPL por lo que, sin entrar en detalle, deberás facilitar el código de tu aplicación (comercial o no) siempre que hagas un cambio en el original y alguien te lo solicite. Por otro lado, Octave carecía de GUI o interfaz gráfica hasta hace bien poco, lo lo hacía menos atractivo que MATLAB. La gran ventaja de Octave es que es el «mismo» lenguaje por lo que si tienes código hecho en MATLAB seguramente funciones «directamente» en Octave.
  • Scilab pese a ser de licencia similar a la GPL pero francesa (CECILL), no es compatible de forma directa con MATLAB. Sin embargo tiene la ventaja de tener una IDE muy similar a la de MATLAB y ofrece la única alternativa a Simulink llamada XCOS.

En resumen, si dispones de mucho código MATLAB heredado Octave es la mejor opción, pero si buscas algo similar a MATLAB-Simulink entonces SciLab es tu mejor apuesta. A pesar de que estas opciones salvan los costes licencias, Octave y Scilab tienen las mismas limitaciones técnicas que MATLAB.

GNU Octave es la mejor alternativa a MATLAB si se busca compatibilidad con el código ya desarrollado.

Entonces como ingeniero o científico te preguntarás,

¿Por qué es mejor aprender Python para sustituir MATLAB?

  • Python es uno de los lenguajes de programación más sencillos de aprender que existen y se enseña en universidades prestigiosas como el MIT.
  • Tanto Python como sus paquetes o librerías son gratuitos.
  • Están cubiertos por licencia BSD por lo que se permite su comercialización sin ningún tipo de restricción (no tendrás que facilitar el código si no lo deseas).
  • Es un lenguaje de programación bien diseñado, fácil de leer y escalable por lo que tu código será util para pequeñas pruebas como para usos industriales.
  • La integración con otras herramientas y lenguajes es casi siempre posible.
  • Multiplataforma, se puede ejecutar tanto en Linux como en MacOS como en Windows.
  • Existe una cantidad de información y documentación en internet incomparable con el resto de alternativas.
  • Su comunidad se compone desde aprendices a profesionales de diversos ámbitos (no sólo científico)
  • Ejemplo de ello es Nature y Google que lo recomiendan y utilizan.

En resumen, Python es un lenguaje que se usa simplemente para todo (web, bases de datos, redes, interfaces gráficas de usuario, juegos, gráficos, ciencia…)

Categorías
MATLAB Python

Alternativas a MATLAB: Python

Python es un lenguaje de programación sencillo y práctico, que te permite trabajar con mayor rapidez e integrar sistemas con mayor eficacia. Puedes aprender a usar Python y obtener beneficios casi inmediatos en la productividad y reducir los costes de licencia ya que es gratuito. Por todo ello Python se está convirtiendo (si no lo es ya) en una de las alternativas principales a la hora de remplazar a otros lenguajes de programación como MATLAB.

print("Hola mundo!")

¿Por qué Python?

Podemos resumir las ventajas de Python en los siguientes puntos:

  • Software libre y gratuito (con licencia BSD que son permisivas para empresas)
  • Es multiplataforma (Windows, MacOS y Linux)
  • Lenguaje de alto nivel conveniente para un desarrollo rápido
  • Su filosofía enfatiza la simplicidad y legibilidad de código
  • Posee núcleo de lenguaje relativamente pequeño con el apoyo de magníficas librerías (NumPy, SciPy, scikit-learn, pandas, IPython-Jupyter, matplotlib etc.)
  • Multiparadigma: varios estilos de programación son compatibles (imperativo, orientado a objetos, funcional)
  • Integración con C/C++/Fortran y R
  • Amplio espectro de programadores (ocasional <> desarrolladores)
  • Comunidad grande (científica también) y activa (PyCon, SciPy, EuroPython, PyData…)

Parece interesante, ¿cómo empiezo?

Una de los problemas y virtudes de Python es que se usa en muchísimos campos y, por tanto, si alguien quiere empezar la cantidad de información puede llegar a ser problemática. Así que primero busca (¡o pregunta!) si tus tareas habituales las puedes hacer con Python. Por ejemplo, nosotros demostramos que podíamos realizar los ejercicios formación en Ingeniería Química con Python y sus bibliotecas:

Para la instalación de Python, la distribución más interesante en estos momentos, seas científico o no, es Anaconda (http://continuum.io/anaconda); que es igual tanto para los usuarios de Windows, OS X e incluso para las distribuciones de Linux que tienen gestores de paquetes decentes. En general, es lo más parecido a instalar MATLAB (pero gratis y open source), ya que instalas todos los paquetes y puedes ponerte a trabajar 🙂

De hecho, Anaconda incluye un  IDE por defecto tipo MATLAB llamado Spyder:

spyder-windows
Si vienes de MATLAB, Spyder es el entorno de programación (IDE por sus siglas en inglés) que te resultará más cómodo.

Pero una de las cosas más interesantes  es IPython Notebook (Jupyter) que ahora incluye widgets para poder variar parámetros de forma muy sencilla.

En general, aprender Python requiere un poco más de esfuerzo ya que dependes de otras librerías. Pero es que con MATLAB (comercial) cada cosa nueva que quieres hacer te toca adquirir la licencia del toolbox correspondiente lo cual limita bastante a no ser que tú u tu empresa tengáis recursos infinitos.

Nosotros recomendamos dos materiales para aprender Python si se viene de MATLAB y no morir en el intento:

– El “curso” online que realizamos con Pybonacci (deberías pasarte por su blog para que veas todo lo que se puede hacer con Python)

aprender-python-ciencia-ingenieria

– Y Software Carpentry:

Por último, una vez nos sentimos cómodos esta tabla viene muy bien para imitar la forma de trabajar en la que estamos acostumbrados en MATLAB:

Ya estás listo para empezar, si tienes alguna duda puedes preguntarlo en la comunidad de Python para ingenieros que tenemos en Google+.

Actualización: Hemos escrito más cosas sobre Python desde que se publicó esta entrada, para saber más:

Categorías
MATLAB Octave SciLab Simulink XCOS

Alternativas a MATLAB: Scilab

Scilab (http://es.wikipedia.org/wiki/Scilab) es un software gratuito de código abierto para programación numérica que proporciona un entorno para aplicaciones de ingeniería y científicas muy similar a MATLAB.

Reuniendo necesidades industriales y avances científicos, Scilab cubre una amplia gama de áreas, como la aeroespacial, industria energética, química, biología, medicina, finanzas, etc…

Es un lenguaje de programación matemática de alto nivel con acceso a cientos de funciones, estructuras de datos avanzadas y funciones gráficas en 2D y 3D.

Puedes descargar Scilab a través del siguiente enlace:

http://www.scilab.org/products/scilab/download

Además Scilab contiene Xcos, un editor gráfico para el diseño de modelos de sistemas dinámicos híbridos, e incluso funcionalidades GUI, desde donde crear interfaces gráficas para el usuario.

La nueva interfaz de Scilab 5.4.0 es muy similar a MATLAB

Si bien muchas funcionalidades siguen aún en desarrollo, la comunidad (open source) consigue acercarse poco a poco las posibilidades que ofrecen los diversos toolboxes de MATLAB. Scilab debe de considerarse como una alternativa libre y gratuita que complementa a MATLAB no que compite contra ella.

Por otro lado, GNU Octave (http://www.gnu.org/software/octave/)es otro programa para cálculo numérico que se presenta como alternativa comercial. La principal ventaja de Octave frente a Scilab es que el primero busca ser lo más compatible al lenguaje de MATLAB original por lo que los scripts suelen ser prácticamente compatibles.