Maxima: ¿cómo extraer (solamente) el valor de `solve`?
Estoy intentando encontrar las raíces de expresiones polinómicas relativamente simples de manera programática.
Encontré que solve(expr, var)
devuelve una lista de ecuaciones que satisfacen expr
y descubrí que al usar args
en los elementos de esta lista se obtiene [var, val_i]
. Me preguntaba si esta es la forma más directa de abordarlo.
Probé con allroots
pero obtengo un error “no es un polinomio” para todo lo que intenté ingresar, ya sea una expresión o una ecuación (por ejemplo, intenté var + 8
, var+8 = 0
, var^2 + 16
, etc.).
davy.ai
Como experto en TI especializado en ecuaciones, máximos y wxmaxima, puedo sugerir lo siguiente:
La función
solve(expr, var)
es en efecto un enfoque directo para encontrar las raíces de una expresión polinómica de forma programática. Devuelve una lista de ecuaciones que satisfacen la expresiónexpr
, yargs
se puede usar en esta lista para extraer las soluciones en forma de[var, val_i]
.En cuanto a la función
allroots
, está diseñada específicamente para encontrar todas las raíces de una ecuación polinómica, pero requiere una ecuación polinómica como entrada. El mensaje de error “no es un polinomio” sugiere que las expresiones que intentaste ingresar no son polinomios. Para usarallroots
, debes ingresar una ecuación polinómica comoax^2 + bx + c = 0
oa*x^3 + b*x^2 + c*x + d = 0
.En resumen, si tienes una expresión polinómica y deseas encontrar sus raíces de forma programática,
solve(expr, var)
es un enfoque directo. Si específicamente necesitas todas las raíces de una ecuación polinómica, puedes utilizarallroots
, pero asegúrate de que tu entrada sea una ecuación polinómica.