обратные вычисления в python prettytable
вот такой код
H = 10
print(H)
q = 0.8
print(q)
r = 21/q
print(r)
Ovr = q*r
print(Ovr)
L = H+Ovr
print(L)
Lv = L*.2
print(Lv)
Q = L/6
print(Q)
a = Q/(q*r*H)
print(a)
Все расчеты делаются последовательно и завязаны на первую позицию H = 10, которую можно изменять. А как, допустим, все завязать на L и начать с нее.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Просто выразите все переменные используя переменные q, r и L:
from prettytable import PrettyTable
def calc(L, q, r):
Ovr = q*r
H = L - Ovr # 21 - константа
Lv = L*.2
Q = L/6
a = Q/(q*r*H)
return [L, q, r, H, Lv, Q, a]
L = [12, 13, 24, 27, 31]
q = 0.8
r = 21/q
columns = ['L','q','r','H','Lv','Q','a']
tab = PrettyTable(field_names=columns, float_format=".2")
tab.add_rows([calc(l, q, r) for l in L])
print(tab)
результат:
+----+------+-------+-------+------+------+-------+
| L | q | r | H | Lv | Q | a |
+----+------+-------+-------+------+------+-------+
| 12 | 0.80 | 26.25 | -9.00 | 2.40 | 2.00 | -0.01 |
| 13 | 0.80 | 26.25 | -8.00 | 2.60 | 2.17 | -0.01 |
| 24 | 0.80 | 26.25 | 3.00 | 4.80 | 4.00 | 0.06 |
| 27 | 0.80 | 26.25 | 6.00 | 5.40 | 4.50 | 0.04 |
| 31 | 0.80 | 26.25 | 10.00 | 6.20 | 5.17 | 0.02 |
+----+------+-------+-------+------+------+-------+