Я кодирую функцию, которая решает произвольное число одновременных уравнений. Количество уравнений задается одним из параметров функции, и каждое уравнение построено из числа символов - столько символов, сколько есть уравнений. Это означает, что я не могу просто закодировать уравнения или даже символы, необходимые для объединения уравнений; функция должна иметь возможность обрабатывать любое количество уравнений. Итак, мой вопрос: как мне составить список символов?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...
Это лучший способ сделать это, или существует более эффективный подход?
Спасибо! Это выглядит очень просто. – thornate
Он также работает для букв: 'символы ('a: g')'. – asmeurer
просто заметьте здесь, что в sympy это кортеж, а не список ...существует небольшая разница, в основном, одна из них не может определить вещи для элементов списка: a0 = t + 1 даст ошибку. – user836925