Octava GNU | |
---|---|
GNU Octave 3.8.0 ejecutándose desde la GUI | |
Tipo de | programa matematico |
Autor | John W. Eaton [d] |
Desarrollador | John W Eaton |
Escrito en | C++ |
Interfaz | Qt |
Sistema operativo | Linux , UNIX , Cygwin , Windows , Android [1] |
Primera edición | 1988 |
ultima versión | 7.1.0 [2] (6 de abril de 2022 ) |
Formatos de archivo legibles | Datos de GNU Octave Matrix (texto) [d] |
Formatos de archivo generados | Datos de GNU Octave Matrix (texto) [d] |
Licencia | Licencia Pública General GNU |
Sitio web | gnu.org/software/octava/ |
Archivos multimedia en Wikimedia Commons |
GNU Octave es un sistema de software libre para computación matemática [3] que utiliza un lenguaje de alto nivel compatible con MATLAB [4] .
Octave proporciona una interfaz de comando interactiva para resolver problemas matemáticos lineales y no lineales y otros experimentos numéricos. Además, Octave se puede utilizar para el procesamiento por lotes. El lenguaje Octave opera con aritmética de escalares, vectores y matrices reales y complejos, tiene extensiones para resolver problemas algebraicos lineales, encontrar las raíces de sistemas de ecuaciones algebraicas no lineales, trabajar con polinomios, resolver varias ecuaciones diferenciales, integrar sistemas de diferencial de primer orden y ecuaciones algebraicas diferenciales, integrando funciones en intervalos finitos e infinitos. Esta lista se puede expandir fácilmente usando el lenguaje Octave (o usando módulos cargados dinámicamente creados en C , C++ , Fortran , etc.).
Octave es un lenguaje de programación interpretado. Es similar a C y admite la mayoría de las funciones principales de la biblioteca estándar de C, así como los comandos básicos de Unix y las llamadas al sistema . Por otro lado, no admite pasar argumentos por referencia (una característica de diseño).
La sintaxis del lenguaje es muy similar a MATLAB , y los scripts bien escritos se ejecutarán tanto en Octave como en MATLAB .
La interfaz de línea de comandos de Octave está construida utilizando la biblioteca GNU Readline , que brinda acceso a las funciones habituales de este último, como finalización de teclas Tab ↹, historial de comandos y búsqueda incremental ( Ctrl+ R, Ctrl+ S), reasignación de teclas, etc. La GUI está actualizada. 3.8.0 se introdujo con adiciones (podría mostrar gráficos sin ellas).
Forja de octavaOctave Forge [5] es un administrador de paquetes de extensión para el sistema Octave.
Integración con C++Las expresiones de octava se pueden evaluar desde programas C++ . Para ello, se incluye en C++ una biblioteca especial octave/oct.h. Por ejemplo, un fragmento de código para calcular rand([9000,1]):
#incluir <octava/octava.h> … ColumnaVector NumRands ( 2 ); NumRands ( 0 ) = 9000 ; NumRands ( 1 ) = 1 ; octava_valor_lista f_arg , f_ret ; f_arg ( 0 ) = valor_octava ( NumRands ); f_ret = feval ( "rand" , f_arg , 1 ); Matriz unis ( f_ret ( 0 ). matrix_value ()); ActuaciónA fines de la década de 1990 (segunda serie de lanzamientos), el rendimiento de Octave es significativamente inferior al de MATLAB . [6] Sin embargo, a finales de la década de 2000 (tercera serie de lanzamientos), el rendimiento de estos paquetes "casi se igualó", y la diferencia restante se atribuye a la presencia de un intérprete-compilador (Just in Time - JIT ) en MATLAB , que no está en Octave . [7]
Computación paralelaLas principales soluciones para organizar la computación distribuida en el entorno de Octave son las bibliotecas bcMPI, MPI Toolbox for Octave (MPITB), octave-parallel_mpi y paralelo (anteriormente octave-parallel) diseñadas para sistemas de clúster, y el módulo packagelfun de la biblioteca general para proporcionar computación paralela a escala. una máquina" (en sistemas multinúcleo y masivamente paralelos).
Las primeras tres bibliotecas proporcionan una interfaz para la instalación real de la biblioteca MPI y, en la medida de lo posible, traducen a Octave (bcMPI - y a MATLAB ) la sintaxis de un subconjunto de llamadas MPI. En consecuencia, en estos casos, los cálculos se distribuyen solo en la medida en que los prepara el programador y se proporcionan dentro de las capacidades de la instalación del sistema MPI.
La biblioteca paralela, por otro lado, no requiere un entorno como MPI o PVM , pero proporciona distribución utilizando medios internos del paquete Octave .
Octave se escribió teniendo en cuenta la compatibilidad con MATLAB e implementa muchas de sus características:
Pero también hay algunas diferencias:
Proyecto GNU | ||
---|---|---|
Historia | ||
Licencias |
| |
Software _ |
| |
Alusiones personales | ||
Otros temas |
|
Software gratuito y de código abierto | |
---|---|
Lo principal |
|
Comunidad |
|
Organizaciones |
|
Licencias | |
Problemas | |
Otro |
|
|