CubicFormula (p)
Calcular las raíces de un polinomio cúbico (de grado 3) utilizando la fórmula cúbica. El polinomio se dará como un vector de coeficientes. Esto es 4*x^3 + 2*x + 1 que corresponde al vector [1,2,0,4]. Devuelve un vector columna de tres soluciones. La primera solución siempre es la real como un cúbico siempre tiene una solución real.
Consulte Planetmath, Mathworld, o Wikipedia para obtener más información.
EulersMethod (f,x0,y0,x1,n)
Utilizar el método clásico de Euler para resolver numéricamente y'=f(x,y) de forma inicial x0, y0 pasan a x1 con n incrementos, devuelve y junto con x1. Excepto que especifique explícitamente que quiere utilizar el método clásico de Euler, piense en utilizar RungeKutta para resolver ODE.
Los sistemas se pueden resolver teniendo a y como un vector (columna) en cualquier parte. Es decir, y0 puede ser un vector en cuyo caso f será un número x y un vector del mismo tamaño para el segundo argumento y devolverá un vector del mismo tamaño.
Consulte Mathworld o Wikipedia para obtener más información.
EulersMethodFull (f,x0,y0,x1,n)
Utilizar el método clásico de Euler para resolver numéricamente y'=f(x,y) de forma inicial x0, y0 pasan a x1 con n incrementos, devuelve una matriz de 2 por n+1 con los valores x e y.Excepto que quiera utilizar explícitamente el método clásico de Euler, utilice mejor RungeKuttaFull para resolver ODE. Adecuado para enlazar con LinePlotDrawLine o LinePlotDrawPoints.
Ejemplo:
genius>LinePlotClear();genius>line = EulersMethodFull(`(x,y)=y,0,1.0,3.0,50);genius>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");
Los sistemas se pueden resolver teniendo a y como un vector (columna) en cualquier parte. Es decir, y0 puede ser un vector en cuyo caso f será un número x y un vector del mismo tamaño para el segundo argumento y devolverá un vector del mismo tamaño.
La salida para un sistema es todavía una matriz de n por 2 siendo la segunda entrada un vector. Si quiere dibujar la línea, asegúrese de utilizar fila de vectores, y aplanar la matriz con ExpandMatrix, y pulse sobre las columnas de la derecha. Ejemplo:
genius>LinePlotClear();genius>lines = EulersMethodFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,500);genius>lines = ExpandMatrix(lines);genius>firstline = lines@(,[1,2]);genius>secondline = lines@(,[1,3]);genius>LinePlotWindow = [0,10,-2,2];genius>LinePlotDrawLine(firstline,"color","blue","legend","First");genius>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");
Consulte Mathworld o Wikipedia para obtener más información.
Desde la versión 1.0.10 en adelante.
FindRootBisection (f,a,b,TOL,N)
Buscar la raíz de una función utilizando el método de la bisección. a y b son los límites iniciales del intervalo, f(a) y f(b) deben tener signos opuestos. TOL es la tolerancia deseada y N es el límite del número de iteraciones a ejecutar, 0 indica sin límites. La función devuelve un vector [success,value,iteration], donde success un booleano que indica el éxito, value es el último valor calculado, e iteration es el número de iteraciones realizadas.
FindRootFalsePosition (f,a,b,TOL,N)
Buscar la raíz de una función utilizando el método de la posición falsa. a y b son los valores iniciales del intervalo, f(a) y f(b) deben tener signos opuestos. TOL es la tolerancia deseada y N es el límite del número de iteraciones a ejecutar, 0 indica sin límites. La función devuelve un vector [success,value,iteration], donde success es un booleano que indica el éxito, value es el último valor calculado, e iteration es el número de iteraciones realizadas.
FindRootMullersMethod (f,x0,x1,x2,TOL,N)
Buscar la raíz de una función utilizando el método de Muller. TOL es la tolerancia deseada y N es el límite del número de iteraciones a ejecutar, 0 indica sin límites. La función devuelve un vector [success,value,iteration], donde success un booleano que indica el éxito, value es el último valor calculado, e iteration es el número de iteraciones realizadas.
FindRootSecant (f,a,b,TOL,N)
Buscar la raíz de una función utilizando el método de la secante. a y b son los límites iniciales del intervalo, f(a) y f(b) deben tener signos opuestos. TOL es la tolerancia deseada y N es el límite del número de iteraciones a ejecutar, 0 indica sin límites. La función devuelve un vector [success,value,iteration], donde success es un booleano que indica el éxito, value es el último valor calculado, e iteration es el número de iteraciones realizadas.
HalleysMethod (f,df,ddf,guess,epsilon,maxn)
Encontrar ceros utilizando el método de Halleys. Siendo f la función, df es la derivada de f, y ddf es la segunda derivada de f. La variable guess es la aproximación inicial. La función devuelve después dos valores sucesivos que están dentro de los límites que marca epsilon o después de maxn iteraciones en cuyo caso devuelve null indicando un fallo.
Consulte también NewtonsMethod y SymbolicDerivative.
Ejemplo para encontrar la raíz cuadrada de 10:
genius>HalleysMethod(`(x)=x^2-10,`(x)=2*x,`(x)=2,3,10^-10,100)
Consulte la Wikipedia para más información.
Desde la versión 1.0.18 en adelante.
NewtonsMethod (f,df,guess,epsilon,maxn)
Encontrar ceros utilizando el método de Newton. La variable f es la función y df es la derivada de f. La variable guess el supuesto inicial. La función devuelve después dos valores sucesivos que están dentro de los límites que marca epsilon o después de maxn iteraciones en cuyo caso devuelve null indicando un fallo.
Consulte también NewtonsMethodPoly y SymbolicDerivative.
Ejemplo para encontrar la raíz cuadrade de 10:
genius>NewtonsMethod(`(x)=x^2-10,`(x)=2*x,3,10^-10,100)
Consulte la Wikipedia para obtener más información.
Desde la versión 1.0.18 en adelante.
PolynomialRoots (p)
Calcular las raíces de un polinomio (de grado 1 a 4) utilizando una de las fórmulas para cada polinomio. El polinomio entregará un vector de coeficientes. Esto es 4*x^3 + 2*x + 1 que corresponde al vector [1,2,0,4]. Devuelve un vector columna de las soluciones.
La función llama a QuadraticFormula, CubicFormula, y a QuarticFormula.
QuadraticFormula (p)
Calcular las raíces de una polinomio cuadrático (de grado 2) utilizando la fórmula cuadrática. El polinomio será un vector de coeficientes. Es es 3*x^2 + 2*x + 1 que corresponde con el vector [1,2,3]. Devuelve un vector columna de las dos soluciones.
Consulte Planetmath, Mathworld, o Wikipedia para obtener más información.
QuarticFormula (p)
Calcular las raíces de un polinomio cuadrático (de grado 4) utilizando la fórmula cuadrática. El polinomio será un vector de coeficientes. Esto es 5*x^4 + 2*x + 1 que corresponde con el vector [1,2,0,0,5]. Devuelve un vector columna de las cuatro soluciones.
Consulte Planetmath, Mathworld, o Wikipedia para obtener más información.
RungeKutta (f,x0,y0,x1,n)
Utilizar el método clásico no adaptativo de cuarto orden Runge-Kutta para resolver numéricamente y'=f(x,y) que de forma inicial x0, y0 tienden a x1 con n incrementos, devuelve y en x1.
Los sistemas se pueden resolver teniendo a y como un vector (columna) en cualquier parte. Es decir, y0 puede ser un vector en cuyo caso f será un número x y un vector del mismo tamaño para el segundo argumento y devolverá un vector del mismo tamaño.
Consulte Mathworld o Wikipedia para obtener más información.
RungeKuttaFull (f,x0,y0,x1,n)
Utilizar el método clásico no adaptativo de cuarto orden Runge-Kutta para resolver numéricamente y'=f(x,y) que de forma inicial x0, y0 tienden a x1 con n incrementos, devuelve una matriz de 2 por n+1 con los valores x e y. Adecuado para enlazar con LinePlotDrawLine o LinePlotDrawPoints.
Example:
genius>LinePlotClear();genius>line = RungeKuttaFull(`(x,y)=y,0,1.0,3.0,50);genius>LinePlotDrawLine(line,"window","fit","color","blue","legend","Exponential growth");
Los sistemas se pueden resolver teniendo a y como un vector (columna) en cualquier parte. Es decir, y0 puede ser un vector en cuyo caso f será un número x y un vector del mismo tamaño para el segundo argumento y devolverá un vector del mismo tamaño.
La salida de un sistema todavía es una matriz de n por 2 siendo la segunda entrada un vector. Si quiere dibujar la línea, asegúrese de utilizar filas de vectores, y aplane la matriz con ExpandMatrix, y pulse a la derecha de las columnas. Ejemplo:
genius>LinePlotClear();genius>lines = RungeKuttaFull(`(x,y)=[y@(2),-y@(1)],0,[1.0,1.0],10.0,100);genius>lines = ExpandMatrix(lines);genius>firstline = lines@(,[1,2]);genius>secondline = lines@(,[1,3]);genius>LinePlotWindow = [0,10,-2,2];genius>LinePlotDrawLine(firstline,"color","blue","legend","First");genius>LinePlotDrawPoints(secondline,"color","red","thickness",3,"legend","Second");
Consulte Mathworld o Wikipedia para obtener más información.
Desde la versión 1.0.10 en adelante.