首页 > 解决方案 > 将数据的不同部分拟合到 R 中的不同模型

问题描述

我有一个私人项目,试图挖掘我父亲 1972 年的旧论文,并重现他推导出的计算解决方案。他的项目是研究氧化铝陶瓷过渡态的动力学。收集数据后,他推导出了过渡动力学曲线的以下模型(参见他论文中的附图)。

修正的约翰逊方程

如果图片没有通过,数据会形成形状曲线。在拐点 t* 的左侧,数据符合方程

y = A * exp(K*t)

在拐点右侧,数据符合方程

y = 1 - B * exp(-J * t^n)

他使用 Fortran 68 编写了一个 fortran 程序,该程序为此进行动态建模和最小二乘拟合。我正在尝试“更新”他的代码,看看我是否可以在 R 中更有效地做到这一点。所以有两个问题:

  1. 绘制他的模型的最佳方法是什么?即如何以这种方式绘制两个方程。我觉得我可以用基础 R 蛮力做到这一点,但我不确定它是否会在两个方程之间顺利过渡。
  2. 在他的模型中,系数 A、K、B、J 和 n 以及拐点 t* 是未知的,并通过最小二乘法进行了优化。他通过蛮力在fortran中进行建模。R 中是否有 glm 或类似的解决方案可以优雅地解决这个问题?

以下是他生成的数据示例:

y <- c(20,30,40,50,55,60,65,70,80,90,100,110,120,150)
t <- c(0.05,0.11,0.185,0.31,0.375,0.445,0.52,0.63,0.8,0.92,0.97,0.98,0.99,0.999)

标签: r

解决方案


推荐阅读