GNU Octave es un software que presenta un lenguaje de programación de alto nivel , diseñado principalmente para cálculos numéricos . Octave ayuda a resolver problemas lineales y no lineales numéricamente y a realizar otros experimentos numéricos utilizando un lenguaje que es principalmente compatible con MATLAB . También se puede utilizar como lenguaje orientado a lotes . Dado que es parte del Proyecto GNU , es software libre bajo los términos de la Licencia Pública General GNU .
Desarrollador (es) | John W. Eaton y muchos otros [1] |
---|---|
Versión inicial | 1988 |
Lanzamiento estable | 6.2.0 [2] / 20 de febrero de 2021 |
Versión de vista previa | 6.0.90a / 28 de agosto de 2020 [3] |
Repositorio | |
Escrito en | C , C ++ , Fortran [4] |
Sistema operativo | Windows , macOS , Linux , BSD |
Disponible en | 19 idiomas [ cita requerida ] |
Tipo | Computación científica |
Licencia | GNU GPLv3 |
Sitio web | gnu |
Otras alternativas gratuitas a MATLAB incluyen Scilab y FreeMat . [5] [6] [7] [8] Octave es más compatible con MATLAB que Scilab, [5] [9] [10] y FreeMat no se ha actualizado desde junio de 2013. [11]
Historia
El proyecto se concibió alrededor de 1988. [12] Al principio, se pretendía que fuera un complemento de un curso de diseño de reactores químicos. El desarrollo real fue iniciado por John W. Eaton en 1992. La primera versión alfa data del 4 de enero de 1993 y el 17 de febrero de 1994 se lanzó la versión 1.0. La versión 4.0.0 se publicó el 29 de mayo de 2015.
El programa lleva el nombre de Octave Levenspiel , ex profesor del autor principal. Levenspiel era conocido por su habilidad para realizar cálculos rápidos en el reverso del sobre . [13]
Historia de desarrollo
Hora | Acción |
---|---|
1988/1989 | Primeras discusiones (libro y software) |
Febrero de 1992 | Inicio del desarrollo |
Enero de 1993 | Noticias en Web (Versión 0.60) |
Febrero de 1994 | Primera publicación (versión 1.0.0 a 1.1.1) [14] |
Diciembre de 1996 | Segunda publicación (versión 2.0.x) con puerto de Windows ( Cygwin ) [15] |
Marzo de 1998 | Versión 2.1 |
Noviembre de 2004 | Versión 2.9 (versión DEV de 3.0) [16] |
Diciembre de 2007 | Publicación de la versión 3.0 (Milestone) [17] |
Junio de 2009 | Publicación de la versión 3.2 (Milestone) [18] |
8 de febrero de 2011 | Versión 3.4.0 (Milestone) [19] |
22 de febrero de 2012 | Publicación de la octava 3.6.1 (hito) [20] [21] |
31 de diciembre de 2013 | Publicación de Octave 3.8.0 (GUI experimental) [22] [23] [24] |
29 de mayo de 2015 | Versión 4.0.0 (GUI estable y nueva sintaxis para OOP ) [25] [26] [27] [28] |
14 de noviembre de 2016 | Versión 4.2.0 (gnuplot 4.4+) [29] [30] [31] [32] |
30 de abril de 2018 | Versión 4.4.0 (nuevo objetivo para el kit de herramientas GUI QT, el kit de herramientas FLTK no está obsoleto y no hay un calendario para su eliminación, aunque ya no tiene prioridad) [33] [34] [35] |
1 de marzo de 2019 | Publicación de Octave 5.1.0 (se prefiere QT5, Qt 4.8 mínimo), soporte hiDpi [36] |
31 de enero de 2020 | Publicación de Octave 5.2.0 (se prefiere QT5) [37] |
26 de noviembre de 2020 | Publicación de Octave 6.1.0 (se prefiere QT5, Qt 4.x en desuso para eliminar en 7) [38] |
20 de febrero de 2021 | Publicación de Octave 6.2.0 (se prefiere QT5), corrección de errores, compatibilidad mejorada con la sintaxis de matlab [39] |
Desarrollos
Además de usarse en computadoras de escritorio para computación científica personal, Octave se usa en la academia y la industria. Por ejemplo, Octave se usó en una computadora paralela masiva en el Pittsburgh Supercomputing Center para encontrar vulnerabilidades relacionadas con adivinar números de seguridad social. [40]
La aceleración con OpenCL o CUDA también es posible con el uso de GPU. [41]
Detalles técnicos
- Octave está escrito en C ++ utilizando la biblioteca estándar de C ++ .
- Octave utiliza un intérprete para ejecutar el lenguaje de secuencias de comandos de Octave.
- Octave es extensible usando módulos cargables dinámicamente.
- El intérprete de Octave tiene un motor de gráficos basado en OpenGL para crear diagramas, gráficos y tablas y para guardarlos o imprimirlos. Alternativamente, gnuplot se puede utilizar para el mismo propósito.
- Octave incluye una interfaz gráfica de usuario (GUI) además de la interfaz de línea de comandos (CLI) tradicional ; consulte #Interfaces de usuario para obtener más detalles.
Octave, el idioma
El lenguaje Octave es un lenguaje de programación interpretado. Es un lenguaje de programación estructurado (similar a C ) y admite muchas funciones de biblioteca estándar de C comunes , y también ciertas llamadas y funciones del sistema UNIX . [42] Sin embargo, no admite la transmisión de argumentos por referencia. [43]
Los programas de Octave constan de una lista de llamadas a funciones o un script . La sintaxis se basa en matrices y proporciona varias funciones para operaciones matriciales. Es compatible con varias estructuras de datos y permite la programación orientada a objetos . [44]
Su sintaxis es muy similar a MATLAB, y la programación cuidadosa de un script permitirá que se ejecute tanto en Octave como en MATLAB. [45]
Debido a que Octave está disponible bajo la Licencia Pública General GNU , se puede cambiar, copiar y usar libremente. [13] El programa se ejecuta en Microsoft Windows y la mayoría de Unix y Unix-como sistemas operativos , incluyendo Linux y macOS . [46] [47]
Características notables
Completar comando y nombre de variable
Escribir un carácter TAB en la línea de comando hace que Octave intente completar los nombres de variables, funciones y archivos (similar a la finalización de tabulaciones de Bash ). Octave usa el texto antes del cursor como la parte inicial del nombre para completar. [48]
Historial de comandos
Cuando se ejecuta de forma interactiva, Octave guarda los comandos escritos en un búfer interno para que se puedan recuperar y editar.
Estructuras de datos
Octave incluye una cantidad limitada de soporte para organizar datos en estructuras. En este ejemplo, vemos una estructura "x" con elementos "a", "b" y "c" (un número entero, una matriz y una cadena, respectivamente):
octava : 1 > x . a = 1 ; x . b = [ 1 , 2 ; 3 , 4 ]; x . c = "cadena" ; octava : 2 > x . a ans = 1 octava : 3 > x . b ans = 1 2 3 4octava : 4 > x . c ans = octava de cuerda : 5 > x x = { a = 1 b = 1 2 3 4 c = cadena }
Operadores booleanos de cortocircuito
Los operadores lógicos ' &&
' y ' ||
' de Octave se evalúan en forma de cortocircuito (como los operadores correspondientes en el lenguaje C ), en contraste con los operadores elemento por elemento ' ' y ' '.&
|
Operadores de incremento y decremento
Octave incluye los operadores de incremento y decremento de tipo C ' ++
' y ' --
' tanto en sus formas de prefijo como de sufijo. Octave también realiza asignaciones aumentadas , por ejemplo, ' x += 5
'.
Relájese-proteja
Octave admite una forma limitada de manejo de excepciones modelada según el ' unwind_protect' de Lisp . La forma general de un bloque unswind_protect se ve así:
desenrollar_proteger cuerpo desenrollar_proteger_limpiar limpieza end_unwind_protect
Como regla general, GNU Octave reconoce como terminación de una ' block
' palabra clave ' end
' determinada (que es compatible con el lenguaje MATLAB) o una palabra clave más específica ' '. Como consecuencia, un bloque ' ' puede terminarse con la palabra clave ' ' como en el ejemplo, o con la palabra clave más portable ' '.end_block
unwind_protect
end_unwind_protect
end
La parte de limpieza del bloque siempre se ejecuta. En caso de que la parte del cuerpo genere una excepción , la limpieza se ejecuta inmediatamente antes de propagar la excepción fuera del bloque ' unwind_protect
'.
GNU Octave también admite otra forma de manejo de excepciones (compatible con el lenguaje MATLAB):
intentar cuerpocaptura manejo de excepcionesfinal
Esta última forma se diferencia de un unwind_protect
bloque " " en dos formas. Primero, exception_handling solo se ejecuta cuando body genera una excepción . En segundo lugar, después de la ejecución de exception_handling, la excepción no se propaga fuera del bloque (a menos rethrow( lasterror )
que se inserte explícitamente una instrucción ' ' dentro del código de exception_handling ).
Listas de argumentos de longitud variable
Octave tiene un mecanismo para manejar funciones que toman un número no especificado de argumentos sin límite superior explícito. Para especificar una lista de cero o más argumentos, utilice el argumento especial varargin
como último (o único) argumento de la lista.
función s = plus ( varargin ) si ( nargin == 0 ) s = 0 ; else s = varargin { 1 } + plus ( varargin { 2 : nargin }); fin fin
Listas de devolución de longitud variable
Se puede configurar una función para devolver cualquier número de valores utilizando el valor de retorno especial varargout
. Por ejemplo:
función varargout = multiasign ( datos ) para k = 1 : nargout varargout { k } = data (:, k ); fin fin
Integración C ++
También es posible ejecutar código Octave directamente en un programa C ++. Por ejemplo, aquí hay un fragmento de código para llamar rand([10,1])
:
#include ... ColumnVector NumRands ( 2 ); NumRands ( 0 ) = 10 ; NumRands ( 1 ) = 1 ; octave_value_list f_arg , f_ret ; f_arg ( 0 ) = octave_value ( NumRands ); f_ret = feval ( "rand" , f_arg , 1 ); Matriz unis ( f_ret ( 0 ). Matrix_value ());
El código C y C ++ se puede integrar en GNU Octave creando archivos oct o usando archivos MEX compatibles con MATLAB .
Compatibilidad con MATLAB
Octave se ha creado teniendo en cuenta la compatibilidad con MATLAB y comparte muchas características con MATLAB:
- Matrices como tipo de datos fundamentales.
- Soporte integrado para números complejos.
- Potentes funciones matemáticas integradas y amplias bibliotecas de funciones.
- Extensibilidad en forma de funciones definidas por el usuario.
Octave trata la incompatibilidad con MATLAB como un error ; por lo tanto, podría considerarse un clon de software , que no infringe los derechos de autor del software según el caso judicial de Lotus v. Borland .
Los scripts de MATLAB del repositorio FileExchange de MathWorks en principio son compatibles con Octave. Sin embargo, aunque a menudo los usuarios los proporcionan y cargan bajo una licencia BSD de código abierto adecuada y compatible con Octave , los Términos de uso de fileexchange prohíben cualquier uso además del MATLAB patentado por MathWorks . [49] [50] [51]
Compatibilidad de sintaxis
Hay algunas adiciones de sintaxis intencionadas, aunque menores :
- Las líneas de comentario pueden ir precedidas del carácter # y del carácter%;
- Se admiten varios operadores basados en C ++ , - , + = , * =, / =;
- Se puede hacer referencia a los elementos sin crear una nueva variable mediante indexación en cascada, por ejemplo, [1:10] (3);
- Las cadenas se pueden definir con el carácter de comillas dobles "así como con el carácter de comillas simples";
- Cuando el tipo de variable es simple (un número de punto flotante de precisión simple), Octave calcula la " media " en el dominio simple (MATLAB en dominio doble ) que es más rápido pero da resultados menos precisos;
- Los bloques también se pueden terminar con palabras clave de estructura de control más específicas , es decir, endif, endfor, end while, etc .;
- Las funciones se pueden definir dentro de los scripts y en el indicador de Octave;
- Presencia de un bucle de hacer hasta (similar a hacer mientras en C).
Compatibilidad de funciones
Muchas, pero no todas, de las numerosas funciones de MATLAB están disponibles en GNU Octave, algunas de ellas accesibles a través de paquetes en Octave Forge . Las funciones disponibles como parte de los paquetes principales de Octave o Forge se enumeran en línea .
Se incluye una lista de funciones no disponibles en la función Octave __unimplemented.m__ . Las funciones no implementadas también se enumeran en muchos paquetes de Octave Forge en Octave Wiki .
Cuando se llama a una función no implementada, se muestra el siguiente mensaje de error:
octava : 1 > guía de alerta : la 'guía' función es no todavía implementado en Octave Por favor, lea < http : // www . octava . org / desaparecido . html > a aprender cómo se puede contribuir falta funcionalidad . error : 'guía' indefinido cerca de la línea 1 columna 1
Interfaces de usuario
Octave viene con una interfaz gráfica de usuario (GUI) oficial y un entorno de desarrollo integrado (IDE) basado en Qt . Ha estado disponible desde Octave 3.8, [52] y se ha convertido en la interfaz predeterminada (sobre la interfaz de línea de comandos ) con el lanzamiento de Octave 4.0. [53] Fue bien recibido por el colaborador de EDN, quien dijo que "[Octave] ahora tiene una GUI muy funcional". [54]
También se han desarrollado varias interfaces gráficas de terceros, como ToolboX para la educación en codificación.
Aplicaciones GUI
Con el código Octave, el usuario puede crear aplicaciones GUI [1] . A continuación se muestran algunos ejemplos:
Botón, control de edición, casilla de verificación
# crear una figura y un panel en ella f = figura ; # crear un botón (estilo predeterminado) b1 = uicontrol ( f , "cadena" , "Botón A" , "posición" , [ 10 10 150 40 ]); # crear un control de edición e1 = uicontrol ( f , "estilo" , "editar" , "cadena" , "texto editable" , "posición" , [ 10 60 300 40 ]); # crear una casilla de verificación c1 = uicontrol ( f , "estilo" , "casilla de verificación" , "cadena" , "casilla de verificación" , "posición" , [ 10 120 150 40 ]);
Caja de texto
prompt = { "Ancho" , "Alto" , "Profundidad" }; valores predeterminados = { "1.10" , "2.20" , "3.30" }; rowcols = [ 1 , 10 ; 2 , 20 ; 3 , 30 ]; se atenúa = InputDlg ( pronta , "Enter" Dimensiones de la caja , rowscols , por defecto );
Cuadro de lista con cuadros de mensaje.
my_options = { "Un artículo" , "otro" , "otro más" }; [ sel , ok ] = listdlg ( "ListString" , my_options , "SelectionMode" , "Multiple" ); if ( ok == 1 ) msgbox ( "Seleccionaste:" ); para i = 1 : numel ( sel ) msgbox ( sprintf ( "\ t% s" , my_options { sel ( i )})); endfor else msgbox ( "Usted canceló." ); terminara si
Botones de radio
# crear una figura y un panel en ella f = figura ; # crear un grupo de botones gp = uibuttongroup ( f , "Posición" , [ 0 0.5 1 1 ]) # crear botones en el grupo b1 = uicontrol ( gp , "estilo" , "radiobutton" , "cadena" , "Opción 1 " , " Posición " , [ 10 150 100 50 ]); b2 = uicontrol ( gp , "estilo" , " botón de radio " , "cadena" , "Opción 2" , "Posición" , [ 10 50 100 30 ]); # crear un botón que no esté en el grupo b3 = uicontrol ( f , "estilo" , " botón de radio " , "cadena" , "No en el grupo" , "Posición" , [ 10 50 100 50 ]);
Paquetes
Octave también tiene paquetes disponibles de forma gratuita. Estos paquetes se encuentran en Octave-Forge [2] . Los paquetes disponibles son:
- bim - Paquete para resolver ecuaciones diferenciales parciales de reacción de difusión y advección (DAR)
- bsltl : el paquete BSLTL es una colección gratuita de rutinas OCTAVE / MATLAB para trabajar con la técnica del láser biospeckle
- cgi - Interfaz de puerta de enlace común para Octave
- comunicaciones : comunicaciones digitales, códigos de corrección de errores (código de canal), funciones de código fuente, modulación y campos de Galois
- control - Herramientas de diseño de sistemas de control asistido por computadora (CACSD) para GNU Octave, basadas en la biblioteca SLICOT probada
- suavizado de datos : algoritmos para suavizar datos ruidosos
- base de datos : interfaz para bases de datos SQL, actualmente solo postgresql usando libpq
- marco de datos: caja de herramientas de manipulación de datos similar a los datos R
- dicom - Archivo de comunicaciones digitales en medicina (DICOM) io
- divand - divand realiza un análisis variacional n-dimensional (interpolación) de observaciones ubicadas arbitrariamente
- doctest : el paquete Octave-Forge Doctest encuentra bloques de código de ejemplo con formato especial dentro de los archivos de documentación
- econometría : funciones de econometría que incluyen técnicas basadas en MLE y GMM
- fem-fenics - paquete para la resolución de ecuaciones diferenciales parciales basadas en fenics
- financiero : simulación de Monte Carlo, rutinas de fijación de precios de opciones, manipulación financiera, funciones de trazado y herramientas adicionales de manipulación de fechas
- se adapta : el paquete Octave-FITS proporciona funciones para leer y escribir archivos FITS (Sistema de transporte de imágenes flexible)
- fpl : recopilación de rutinas para exportar datos producidos por elementos finitos o simulaciones de volumen finito en formatos utilizados por algunos programas de visualización
- Kit de herramientas de lógica difusa: un kit de herramientas de lógica difusa en su mayoría compatible con MATLAB para Octave (no se instala debido a un error de larga data [55] )
- ga - Código de optimización genética
- general - Herramientas generales para Octave
- generate_html : este paquete proporciona funciones para generar páginas HTML que contienen los textos de ayuda para un conjunto de funciones
- geometría : biblioteca para la computación geométrica que extiende las funciones de MatGeom
- gsl : enlaces de octava a la biblioteca científica GNU
- imagen : el paquete Octave-forge Image proporciona funciones para procesar imágenes
- adquisición de imágenes: el paquete de adquisición de imágenes Octave-forge proporciona funciones para capturar imágenes de dispositivos conectados
- control de instrumentos: funciones de E / S de bajo nivel para interfaces serie, i2c, paralelo, tcp, gpib, vxi11, udp y usbtmc
- intervalo : el paquete de intervalos para la aritmética de intervalos con valores reales permite evaluar funciones en subconjuntos de su dominio
- io : entrada / salida en formatos externos, por ejemplo, Excel
- level-set : rutinas para calcular la evolución temporal de la ecuación de nivel y extraer información geométrica de la función de nivel
- álgebra lineal: código adicional de álgebra lineal, incluidas las funciones generales de SVD y matrices
- lssa : un paquete que implementa herramientas para calcular descomposiciones espectrales de series de tiempo espaciadas irregularmente
- ltfat : la caja de herramientas de análisis de frecuencia / tiempo grande (LTFAT) es una caja de herramientas de MATLAB / octava para trabajar con análisis de tiempo-frecuencia, wavelets y procesamiento de señales
- mapeo : mapeo simple y funciones de archivo raster y .shp GIS
- mataveid : paquete de identificación del sistema para MATLAB y GNU Octave
- matavecontrol - Caja de herramientas de control para MATLAB y GNU Octave
- Varios : herramientas diversas que no encajarían en ningún otro lugar.
- mpi : enlaces de octava para funciones básicas de interfaz de paso de mensajes (MPI) para computación en paralelo
- msh : cree y administre mallas triangulares y tetraédricas para solucionadores PDE de elementos finitos o volúmenes finitos
- mvn : agrupamiento de distribución normal multivariante y funciones de utilidad
- nan : una caja de herramientas de estadísticas y aprendizaje automático para datos con y sin valores perdidos
- ncarray : acceda a uno o una colección de archivos NetCDF como una matriz multidimensional
- netcdf : una interfaz NetCDF compatible con MATLAB para Octave
- nurbs : colección de rutinas para la creación y manipulación de B-Splines racionales no uniformes (NURBS), basadas en la caja de herramientas NURBS de Mark Spink
- ocs : paquete para resolver ecuaciones de circuitos eléctricos transitorios y de CC
- octclip : este paquete permite a los usuarios realizar operaciones booleanas con polígonos utilizando el algoritmo de Greiner-Hormann
- octproj : este paquete permite a los usuarios llamar a funciones de PROJ
- Óptica : funciones que cubren varios aspectos de la óptica.
- optim : kit de herramientas de optimización no lineal
- optiminterp : una caja de herramientas de interpolación óptima para octava
- paralelo : paquete de ejecución en paralelo
- quaternion : paquete Quaternion para GNU Octave, incluye una clase quaternion con operadores sobrecargados
- cola : el paquete de cola proporciona funciones para las redes de cola y el análisis de cadenas de Markov
- secs1d : un simulador de deriva-difusión para dispositivos semiconductores 1d
- secs2d : un simulador de deriva-difusión para dispositivos semiconductores 2d
- secs3d : un simulador de deriva-difusión para dispositivos semiconductores 3d
- señal : herramientas de procesamiento de señal, incluidas funciones de filtrado, ventanas y visualización
- Sockets : funciones de socket para redes desde una octava
- sparsersb : interfaz para el paquete librsb que implementa el formato de matriz dispersa RSB para cálculos rápidos de matriz dispersa de memoria compartida
- splines : funciones adicionales de splines
- estadísticas - Funciones estadísticas adicionales para Octave
- stk - El STK es una (no tan) pequeña caja de herramientas para Kriging
- cadenas : funciones adicionales para la manipulación y el análisis de cadenas
- struct - Funciones adicionales de manipulación de estructuras
- simbólico : el paquete simbólico Octave-Forge agrega funciones de cálculo simbólico a GNU Octave
- tisean - Puerto de TISEAN 3
- tsa : conceptos estocásticos y métodos de máxima entropía para el análisis de series de tiempo
- vibraciones : la API de VIBes permite mostrar fácilmente los resultados (cajas, pavimentos) de los métodos de intervalo
- video : un contenedor para libavformat y libavcodec de ffmpeg, que implementa addframe, avifile, aviinfo y aviread
- vrml : gráficos 3D que utilizan VRML
- Windows : proporciona una interfaz COM y funcionalidad adicional en Windows
- zeromq - enlaces ZeroMQ para GNU Octave
Ver también
- Lista de software de análisis numérico
- Comparación de software de análisis numérico
- Lista de paquetes estadísticos
- Lista de bibliotecas numéricas
Referencias
- ^ Rik (10 de junio de 2015). "contributors.in" . Consultado el 14 de junio de 2015 .
- ^ "GNU Octave 6.2.0 lanzado" . 20 de febrero de 2021 . Consultado el 22 de febrero de 2021 .
- ^ "Índice de / gnu / octava" . alpha.gnu.org . Consultado el 14 de septiembre de 2020 .
- ^ "Edificio - Octava" . wiki.octave.org . GNU . Consultado el 1 de mayo de 2018 .
- ^ a b Trappenberg, Thomas (2010). Fundamentos de la neurociencia computacional . Prensa de la Universidad de Oxford. pag. 361. ISBN 978-0-19-956841-3.
- ^ Muhammad, A; Zalizniak, V (2011). Computación científica práctica . Woodhead Publishing . pag. 3 . ISBN 978-0-85709-226-7.
- ^ Megrey, Bernard A .; Moksness, Erlend (2008). Computadoras en la investigación pesquera . Springer Science & Business Media. pag. 345 . ISBN 978-1-4020-8636-6.
- ^ Kapuno, Raul Raymond (2008). Programación para ingenieros químicos con C, C ++ y MATLAB . Editores Jones & Bartlett. pag. 365. ISBN 978-1-934015-09-4.
- ^ Herman, Russell L. (2013). Un curso de métodos matemáticos para físicos . Prensa CRC. pag. 42. ISBN 978-1-4665-8467-9.
- ^ Wouwer, Alain Vande; Saucez, Philippe; Vilas, Carlos (2014). Simulación de modelos ODE / PDE con MATLAB, Octave y Scilab: aplicaciones científicas y de ingeniería . Saltador. págs. 114-115. ISBN 978-3-319-06790-2.
- ^ "FreeMat" . freemat.sourceforge.net . Consultado el 22 de febrero de 2020 .
- ^ "Acerca de GNU Octave" . www.gnu.org . GNU . Consultado el 1 de mayo de 2018 .
- ^ a b Eaton, John W. "Acerca de Octave" . Consultado el 28 de junio de 2009 .
- ^ https://www.gnu.org/software/octave/NEWS-1.html
- ^ https://www.gnu.org/software/octave/NEWS-2.html
- ^ https://www.gnu.org/software/octave/news/2012/12/31/news-archive.html
- ^ https://www.gnu.org/software/octave/NEWS-3.html
- ^ https://www.gnu.org/software/octave/NEWS-3.2.html
- ^ https://www.gnu.org/software/octave/NEWS-3.4.html
- ^ https://www.gnu.org/software/octave/NEWS-3.6.html
- ^ https://www.gnu.org/software/octave/news/release/2013/02/21/octave-3.6.4-released.html
- ^ https://www.gnu.org/software/octave/NEWS-3.8.html
- ^ https://www.gnu.org/software/octave/news/release/2013/12/31/octave-3.8.0-released.html
- ^ https://www.gnu.org/software/octave/news/release/2014/03/04/octave-3.8.1-released.html
- ^ https://www.gnu.org/software/octave/NEWS-4.0.html
- ^ https://www.gnu.org/software/octave/news/release/2015/05/29/octave-4.0.0-released.html
- ^ https://www.gnu.org/software/octave/news/release/2016/03/23/octave-4.0.1-released.html
- ^ https://www.gnu.org/software/octave/news/release/2016/07/02/octave-4.0.3-released.html
- ^ https://www.gnu.org/software/octave/news/2016/11/14/octave-4.2.0-released.html | text = Notas de la versión 4.2.0}}
- ^ https://www.gnu.org/software/octave/NEWS-4.2.html
- ^ https://www.gnu.org/software/octave/news/release/2017/02/24/octave-4.2.1-released.html
- ^ https://www.gnu.org/software/octave/news/release/2018/03/13/octave-4.2.2-released.html
- ^ https://www.gnu.org/software/octave/NEWS-4.4.html
- ^ https://www.gnu.org/software/octave/news/release/2018/04/30/octave-4.4.0-released.html
- ^ https://www.gnu.org/software/octave/news/release/2018/08/09/octave-4.4.1-released.html
- ^ https://www.gnu.org/software/octave/NEWS-5.1.html
- ^ https://www.gnu.org/software/octave/news/release/2020/01/31/octave-5.2.0-released.html
- ^ https://www.gnu.org/software/octave/news/release/2020/11/26/octave-6.1.0-released.html
- ^ https://www.gnu.org/software/octave/news/release/2021/02/20/octave-6.2.0-released.html
- ^ "Hallazgos de vulnerabilidad del número de seguridad social se basaron en supercomputación" . 8 de julio de 2009. Archivado desde el original el 29 de febrero de 2012.
- ^ https://devblogs.nvidia.com/parallelforall/drop-in-acceleration-gnu-octave/
- ^ "GNU Octave - Control de subprocesos" . 14 de noviembre de 2008. Archivado desde el original el 7 de enero de 2009 . Consultado el 28 de enero de 2009 .
- ^ "GNU Octave" . Consultado el 28 de enero de 2009 .
- ^ "Resumen de cambios importantes visibles para el usuario para la versión 3.2" . Consultado el 5 de enero de 2012 .
- ^ "Preguntas frecuentes: compatibilidad con MATLAB" . Consultado el 4 de abril de 2009 .
- ^ "Preguntas frecuentes: Obtener Octave" . Consultado el 4 de abril de 2009 .
- ^ https://octave.org/doc/interpreter/
- ^ Eaton, John W. "Dejando que Readline escriba por usted" . Manual de referencia de GNU Octave .
- ^ ¿Por qué no puedo usar código de File Exchange en Octave? ¡Se publica bajo una licencia BSD! en octave.org
- ^ términos de uso en mathworks.com "El contenido que envíe no debe competir directamente con los productos ofrecidos por MathWorks. El contenido enviado a File Exchange solo se puede usar con productos MathWorks".
- ^ Preguntas frecuentes sobre la transición de licencias de intercambio de archivos en mathworks.com
- ^ "Resumen de cambios importantes visibles para el usuario para la versión 3.8" .
- ^ "Resumen de cambios importantes visibles para el usuario para la versión 4.0" .
- ^ GNU Octave alcanza una nota alta - Steve Hageman, 7 de febrero de 2014
- ^ https://savannah.gnu.org/search/?words=fuzzy-logic-toolkit&type_of_search=bugs&Search=Search&exact=1#options
Otras lecturas
- Hansen, Jesper Schmidt (junio de 2011). GNU Octave. Guía para principiantes . Packt Publishing . ISBN 978-1-849-51332-6.
enlaces externos
- Página web oficial