Chebfun es un sistema de software libre/de código abierto escrito en MATLAB para el cálculo numérico con funciones de una variable real. Se basa en la idea de sobrecargar los comandos de MATLAB para vectores y matrices con comandos análogos para funciones y operadores. Así, por ejemplo, mientras que el comando SUM en MATLAB suma los elementos de un vector, el comando SUM en Chebfun evalúa una integral definida. De manera similar, el comando de barra invertida en MATLAB se convierte en un comando de Chebfun para resolver ecuaciones diferenciales. [1] [2] [3] [4] [5]
La base matemática de Chebfun son algoritmos numéricos que involucran interpoladores polinómicos por partes y polinomios de Chebyshev , y de ahí proviene el nombre "Cheb". El paquete tiene como objetivo combinar la sensación de los sistemas de computación simbólica como Maple y Mathematica con la velocidad de los números de punto flotante. [2] [3]
El proyecto Chebfun tiene su sede en el Instituto de Matemáticas de la Universidad de Oxford y fue iniciado en 2002 por Lloyd N. Trefethen y su alumno Zachary Battles. [1] La versión más reciente, la 5.7.0, se publicó el 2 de junio de 2017.
El 4 de marzo de 2013 se puso a disposición del público Chebfun2, un sistema de software que extiende Chebfun a dos dimensiones. Después de Chebfun2, Spherefun (extensión a la esfera unitaria) y Chebfun3 (extensión a tres dimensiones) se pusieron a disposición del público en mayo y julio de 2016.
Características
- Aproximación de funciones en 1D, incluidas funciones con saltos
- Aproximación de funciones bivariadas suaves (Chebfun2)
- Aproximación de funciones trivariadas suaves (Chebfun3)
- Aproximación de funciones suaves en la esfera unitaria (Spherefun)
- Cuadratura
- Búsqueda de raíces
- Optimización global 1D
- Búsqueda de raíces bivariadas y trivariadas
- Ecuaciones diferenciales ordinarias
- Ecuaciones diferenciales parciales
- Cálculo vectorial
Ejemplo de uso
Un usuario puede comenzar inicializando la variable x, en el intervalo [0,10], digamos.
>> x = chebfun ( 'x' ,[ 0 , 10 ]);
Esta variable ahora se puede utilizar para realizar cálculos adicionales, por ejemplo, calcular y trazar las raíces de una función:
>> f = sin ( x ) + sin ( x .^ 2 ); plot ( f ) >> r = roots ( f ); espera , plot(r,f(r),'.r') , espera
La integral definida se puede calcular con:
>> suma ( f ) respuesta = 2,422742429006079
Referencias
- ^ ab Battles, Zachary; Trefethen, Lloyd N. (2004). "Una extensión de MATLAB a funciones y operadores continuos" (PDF) . Revista SIAM sobre computación científica . 25 (5): 1743–1770. Bibcode :2004SJSC...25.1743B. doi :10.1137/S1064827503430126.
- ^ ab Trefethen, Lloyd N. (2007). "Cálculo numérico con funciones en lugar de números" (PDF) . Matemáticas en informática . 1 : 9–19. doi :10.1007/s11786-007-0001-y.
- ^ ab Pachón, Ricardo; Platte, Rodrigo B.; Trefethen, Lloyd N. (octubre de 2010). "Chebfuns suaves por partes" (PDF) . Revista IMA de Análisis Numérico . 30 (4): 898–916. doi :10.1093/imanum/drp008.
- ^ Driscoll, Tobin A.; Bornemann, Folkmar; Trefethen, Lloyd N. (diciembre de 2008). "El sistema Chebop para la solución automática de ecuaciones diferenciales" (PDF) . BIT Numerical Mathematics . 48 (4): 701–723. doi :10.1007/s10543-008-0198-4.
- ^ Townsend, Alex; Trefethen, Lloyd N. (2013). "Una extensión de Chebfun a dos dimensiones" (PDF) . Revista SIAM de informática científica . 35 (6): C495–C518. Código Bibliográfico :2013SJSC...35C.495T. doi :10.1137/130908002.
Enlaces externos
- Sitio web oficial
- Proyectos relacionados y sustituciones parciales en otros idiomas: [1]