Реализации алгоритмов/Метод прогонки: различия между версиями
Содержимое удалено Содержимое добавлено
Anisart (обсуждение | вклад) Исправление ошибки в коде |
Anisart (обсуждение | вклад) Реализация на 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>
|