Rasgele sayıdaki eşzamanlı denklemleri çözen bir işlevi kodluyorum. Denklemlerin sayısı, fonksiyonun parametrelerinden biri tarafından belirlenir ve her bir denklem, bir dizi sembolden oluşur - denklemler olduğu kadar çok sembol. Bu, denklemleri, hatta denklemleri bir araya getirmek için gerekli sembolleri bile kodlayamıyorum anlamına gelir; fonksiyonun herhangi bir sayıda denklemi işleyebilmesi gerekir. Öyleyse, sorum şu, sembollerin bir listesini nasıl üreteceğim?SymPy - Sembollerin rastgele sayıları
Tek bir çözümüm var ama bağırsağımın çok verimli olmayacağını söyledi. Bunu yapmanın daha iyi bir yolu varsa lütfen bana bildirin.
SymPy'ye yeni geliyorum ve hala yolumu hissediyorum. Görebildiğim kadarıyla, Sembollerin bir dizgeyle tanımlanması gerekiyor. Bu nedenle, bir diziye artan bir sayı ekleyerek ('t0', 't1', vb.) Bir dizi dizesi oluşturabilir, bunları bir listeye ekleyebilir ve daha sonra bu dizeleri parametre olarak kullanarak sembolleri oluşturabilirim. Bu semboller bir listede saklanacak ve denklemleri üretmek için kullanılacaktır.
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...
Bunu yapmanın en iyi yolu bu mu yoksa daha etkili bir yaklaşım var mı?
Teşekkür! Bu gerçekten basit görünüyor. – thornate
Ayrıca harfler için çalışır: 'sembolleri ('a: g')'. – asmeurer
sadece bir not burada, bu sembette bu bir tuple ve bir liste değil ...küçük bir fark olmakla birlikte, temel olarak, bir listenin öğelerine bir şeyleri tanımlayamazsınız: a0 = t + 1 bir hata verecektir. – user836925