Подгонка 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
Другие вопросы по тегам