Реализации алгоритмов/Метод прогонки: различия между версиями

Содержимое удалено Содержимое добавлено
Исправление ошибки в коде
Реализация на Python (перенесено из w:Метод прогонки)
Строка 30:
 
}
</source>
 
== [[w:Python|Python]] ==
<source lang="python">
 
def TDMA(a,b,c,f):
a, b, c, f = map(lambda k_list: map(float, k_list), (a, b, c, f))
 
alpha = [0]
beta = [0]
n = len(f)
x = [0] * n
 
for i in range(n-1):
alpha.append(-b[i]/(a[i]*alpha[i] + c[i]))
beta.append((f[i] - a[i]*beta[i])/(a[i]*alpha[i] + c[i]))
x[n-1] = (f[n-1] - a[n-2]*beta[n-1])/(c[n-1] + a[n-2]*alpha[n-1])
 
for i in reversed(range(n-1)):
x[i] = alpha[i+1]*x[i+1] + beta[i+1]
return x
</source>