Estoy codificando una función que resuelve un número arbitrario de ecuaciones simultáneas. El número de ecuaciones se establece mediante uno de los parámetros de la función y cada ecuación se construye a partir de una serie de símbolos, tantos símbolos como ecuaciones hay. Esto significa que no puedo simplemente codificar las ecuaciones, o incluso los símbolos necesarios para armar las ecuaciones; la función necesita ser capaz de manejar cualquier cantidad de ecuaciones. Entonces, mi pregunta es, ¿cómo puedo producir una lista de símbolos?SymPy - Número arbitrario de símbolos
Tengo una posible solución, pero mi instinto me dice que no va a ser muy eficiente. Por favor, avíseme si hay una mejor manera de hacerlo.
Soy nuevo en SymPy y sigo sintiendo lo que quiero decir. Por lo que puedo ver, los símbolos deben definirse con una cadena. Por lo tanto, puedo producir cadenas de serie agregando un número incremental a una letra (digamos 't0', 't1', etc.), agregarlas a una lista y luego crear los símbolos usando esas cadenas como parámetros. Esos símbolos se almacenarían en una lista y se usarían para producir las ecuaciones.
def solveEquations(numEquations):
symbolNameList = []
symbolList = []
equationList = []
for i in range(numEquations):
name = 't' + str(i)
symbolNameList.append(name)
symbolList.append(Symbol(name))
for i in range(numEquations):
equation = 0
for sym in symbolList:
equation += sym ** i # Or whatever structure the equation needs
equationList.append(equation)
#Then go on to solve the equations...
¿Es esta la mejor manera de hacerlo, o hay un enfoque más eficiente?
Gracias! Eso se ve realmente simple. – thornate
También funciona para letras: 'symbols ('a: g')'. – asmeurer
solo una nota aquí, que en sympy esta es una tupla y no una lista ...existiendo una ligera diferencia, principalmente, uno no puede definir cosas para los elementos de una lista: a0 = t + 1 dará un error. – user836925