Octava GNU

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 29 de junio de 2017; las comprobaciones requieren 18 ediciones .
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 ) ( 2022-04-06 )
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.).

Detalles técnicos

El lenguaje Octava

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 .

Algunas características

Interfaz

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 octava

Octave 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ón

A 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 paralela

Las 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 .

Compatibilidad con MATLAB

Octave se escribió teniendo en cuenta la compatibilidad con MATLAB e implementa muchas de sus características:

  • matrices como principales tipos de datos;
  • soporte incorporado para números complejos;
  • potentes funciones matemáticas integradas y grandes bibliotecas de funciones;
  • extensibilidad, gracias a la capacidad de crear funciones personalizadas.

Pero también hay algunas diferencias:

  • los comentarios pueden comenzar con el carácter # o el %;
  • admite operadores similares a C++ ++, --, +=, *=, /=;
  • los elementos se pueden abordar sin crear una nueva variable, por ejemplo [1:10](3);
  • Los datos de tipo cadena se pueden especificar con el carácter """ o el carácter "'".

Literatura

Enlaces

Notas

  1. Octave: aplicaciones de Android en Google Play . Consultado el 18 de febrero de 2013. Archivado desde el original el 9 de marzo de 2014.
  2. Lanzamiento de GNU Octave 7.1.0 . Archivado desde el original el 9 de abril de 2022. Consultado el 10 de abril de 2022.
  3. Octava . Consultado el 24 de agosto de 2009. Archivado desde el original el 22 de noviembre de 2017.
  4. Acerca de Octava . Consultado el 22 de enero de 2011. Archivado desde el original el 25 de enero de 2021.
  5. Fragua de octavas . Fecha de acceso: 27 de febrero de 2018. Archivado desde el original el 28 de febrero de 2018.
  6. Eddelbüttel…
  7. Chaves et al. …