Ich bin ein Anfänger bei Python. Ich habe den folgenden Code, der nichts zurückgibt.Thomas Algorithmus Python
Hat jemand eine Antwort, warum? Wenn ich den Code ausführe, passiert buchstäblich nichts.
Suche nach der Größe der Matrix und bestimmen n
def thomas(a,b,c,d):
a= [1,3,1.5,4.5,4.5]
b= [-6,-4.5,-7.5,-7.5,-4.5]
c= [3,3,3,3,3]
d= [0,0,100,0,0]
n = len(b)
#print n # Used for debugging
# Test the size of a and c
if len(a) != n-1:
print ('Wrong index size for a.\n A should have an index of'), n-1, '\n
Your a has ', len(a)
exit()
if len(c) != n-1:
print ('Wrong index size for c.\n C should have an index of'), n-1, '\n
Your c has', len(c)
exit()
# Converting to float and appending 0.0 to c
for i in range(0,len(a)):
a[i] = float(a[i])
for i in range(0,len(b)):
b[i] = float(b[i])
for i in range(0,len(c)):
c[i] = float(c[i])
for i in range(0,len(d)):
d[i] = float(d[i])
c.append(0.0) # Hack to make the function to work
# Calculate p and q
p = []; q= []
p.append(c[0]/b[0]); q.append(d[0]/b[0])
for j in range(1,n):
pj = c[j]/(b[j] - a[j-1]* p[j-1])
qj = (d[j] - a[j-1]*q[j-1])/(b[j] - a[j-1]* p[j-1])
p.append(pj); q.append(qj)
#print p,q # Used for debugging the code!
# Back sub
x = []; x.append(q[n-1])
for j in range(n-2,-1,-1):
xj = q[j] - p[j]*x[0] # Value holder
x.insert(0,xj) # Building the list backwards
# Return the value
return x
Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) gilt hier. Wir können Ihnen nicht effektiv helfen, bis Sie Ihren MCVE-Code veröffentlicht und das Problem genau beschrieben haben. Wir sollten in der Lage sein, Ihren gesendeten Code in eine Textdatei einzufügen und das beschriebene Problem zu reproduzieren. Vielleicht brauchen Sie nur ein einzeiliges Hauptprogramm, das dies aufruft, aber wir müssen uns sicher sein. – Prune
Ihr 'exit'-Aufruf liegt außerhalb des 'if' und wird immer ausgeführt – Copperfield
Thx für die Antwort, aber auch ohne den' exit' passiert noch nichts .... –