SymPy - Произвольное количество символов

Я кодирую функцию, которая решает произвольное количество одновременных уравнений. Количество уравнений задается одним из параметров функции, и каждое уравнение строится из количества символов - столько символов, сколько существует уравнений. Это означает, что я не могу просто жестко закодировать уравнения или даже символы, необходимые для их составления; функция должна иметь возможность обрабатывать любое количество уравнений. Итак, мой вопрос: как мне составить список символов?

У меня есть одно возможное решение, но моя интуиция подсказывает мне, что это не будет очень эффективным.Пожалуйста, дайте мне знать, если есть лучший способ сделать это.

Я новичок в SymPy и все еще нащупываю дорогу. Насколько я понимаю, символы нужно определять с помощью строки. Следовательно, я могу создать серию строк, добавив к букве увеличивающееся число (скажем, «t0», «t1» и т. Д.), Добавить их в список, а затем создать символы, используя эти строки в качестве параметров. Эти символы сами будут храниться в списке и использоваться для составления уравнений.

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

Это лучший способ сделать это или есть более эффективный подход?

21
задан thornate 29 February 2012 в 03:19
поделиться