【问题标题】:Fitting y = a + exp(bt) to two points将 y = a + exp(bt) 拟合到两个点
【发布时间】:2016-06-24 15:41:30
【问题描述】:

我想将 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} 对产生一个唯一的答案。

我哪里错了?

罗伯托

【问题讨论】:

  • 这可能会更好地发布在math.stackexchange.com 上?
  • 我投票结束这个问题,因为它是关于 Mathematics 而不是编程或软件开发。
  • 我觉得很好。

标签: exponential simultaneous equations


【解决方案1】:

代数不正确。

y = a + exp(bt)

两边减去a:

(y-a) = exp(bt)

取两边的自然对数:

ln(y-a) = bt

【讨论】:

  • 当然!如此简单,但我陷入了思维定势。谢谢,达菲莫。
【解决方案2】:

Log(x + y) 不等于 Log(x) + Log(y)

您对 ln 的初始实现是错误的。

@duffymo 有很好的日志实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    相关资源
    最近更新 更多