首页 > 解决方案 > 曲线拟合时如何限制 R 中的参数?

问题描述

我是 R 的新手,需要为我的高中 12 年级论文(是的,存在)的一些数据点拟合曲线。我有一组数据点,如下所示:

A(0.15, 0.6)
B(0.44, 1.06)
C(0.921, 1.22)
D(1.66, 1.5)
E(2.36, 1.58)
F(2.74, 1.52)
G(3.46, 1.68)

我想通过 y=a*log(b(xc))+d 形式的函数对它们进行建模。我该怎么做?我尝试了一些方法,但到目前为止我总是得到回应

Computation failed in 'stat_smooth()': Missing value or infinity produced when evaluating the model.

我怀疑这是因为 R 考虑了参数 a、b、c 和 d 的所有可能值,并且 b 和 c 可能因此导致一些问题,因为对数仅在正实数的域上定义(不包括 0) . 我有什么办法可以解决这个问题吗?我知道 b 必须是正数且非零,而且我知道 c 不能等于 x。但是,我不知道如何实现这一点。

如果您不知道如何帮助我在 R 中解决这个问题,那么如果您可以在 python 或 matlab 中编写替代方案,那就太酷了,因为我也对这两种语言有所了解。请记住,我必须使用高斯-牛顿算法。

任何支持将不胜感激!

标签: pythonrregressioncurve-fittingnon-linear-regression

解决方案


推荐阅读