나는 임의의 수의 연립 방정식을 푸는 함수를 코딩하고 있습니다. 방정식의 수는 함수의 매개 변수 중 하나에 의해 설정되며 각 방정식은 방정식만큼 많은 기호로 구성됩니다. 즉, 방정식을 간단히 하드 코딩 할 수 없으며 방정식을 조합하는 데 필요한 기호까지만 하드 코딩 할 수는 없습니다. 함수는 여러 방정식을 처리 할 수 있어야합니다. 그래서, 제 질문은, 어떻게 상징의 목록을 생산합니까?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
그것은 또한 문자 :'symbols ('a : g')'에서 작동합니다. – asmeurer
sympy에서 이것은 튜플이 아니라 목록입니다.약간의 차이가 있습니다. 원칙적으로 목록의 요소에 대해 사물을 정의 할 수 없습니다. a0 = t + 1은 오류를 줄 것입니다. – user836925