Подгонка y = a + exp(bt) к двум точкам
Я хотел бы подогнать y = a + exp(bt) к точкам (1,1) и (2,5). Поэтому я беру натуральный логарифм уравнения и применяю его к обеим точкам:
ln (y1) = ln (a) + bt1
ln (y2) = ln (a) + bt2
С (1,1) = (t1, y1) и (2,5) = (t2, y2), чтобы:
ln (1) = ln (a) + b
ln (5) = ln (a) + 2b
Вычитание дает b = ln(5) = 1.609. Я подключаю это обратно к моей линеаризованной системе и получаю ln (a) = -1,609, поэтому a = 0,2. Все идет нормально. Работают ли эти числа в исходных уравнениях?
a = y1 - exp (bt1) -> 0.2 = 1 - exp(1.609) = 1 - 5 = -4 НЕПРАВИЛЬНО!
a = y2 - exp (bt2) -> 0.2 = 5 - exp(2 * 1.609) = 5 - 25 = -20 ТАКЖЕ НЕПРАВИЛЬНО!
Я бы подумал, что даже если исходные уравнения были нелинейными, взятие логарифмов изменило бы их на два линейных уравнения с двумя переменными {ln(a), b}. Теоретически это должно дать уникальный ответ для пары {a,b}.
Куда я иду не так?
Роберто
2 ответа
Log(x + y) не равно Log(x) + Log(y)
Ваша первоначальная реализация ln неверна.
У @duffymo хорошая реализация log.
Алгебра неверна.
y = a + exp(bt)
Вычтите с обеих сторон:
(y-a) = exp(bt)
Возьмите натуральный логарифм обеих сторон:
ln(y-a) = bt