Предполагая, что b, c1 и c2 все положительные, у вас есть возрастающая функция, поэтому вы можете выполнить бинарный поиск по ней, чтобы найти b.Может существовать формула для непосредственного получения b, но она также должна работать достаточно быстро.Вот пример Python:
c1 = 0.0125
c2 = 0.0517
a = 0.155
def op(b, c1, c2):
return round(b, 3) + round(b * c1, 3) + round(b * c2, 3)
minb = 0
maxb = a
while (minb + 0.00001 < maxb):
b = (minb + maxb) / 2
estimate = op(b, c1, c2)
if estimate > a:
maxb = b
elif estimate < a:
minb = b
else:
break
print(b, op(b, c1, c2))