Inf computed by model function, fitting cannot continue.

img


这是我的数据,所用公式为:
y=exp(C*(((1+2300*x)/0.353)^n-(1/0.353)^n))
拟合参数C和n
用cftool工具箱拟合,提示
Inf computed by model function, fitting cannot continue.Try using or tightening upper and lower bounds on coefficients.
该怎么处理呀。

问题提示你的模型函数计算出了无穷大(Inf),这导致拟合无法继续进行。出现这种情况,一般是由于参数设置不当导致的。
你的模型函数,拟合参数 C 和 n 都没有上下界的限制,这也容易导致出现无穷大的情况。需要你对拟合参数的范围进行限制。
操作如下:

打开 cftool 工具箱,按照提示将数据输入进去。

选择「Model」选项卡,在「Custom Equation」中输入你的模型函数 y = exp(C * (((1+2300*x)/0.353)^n-(1/0.353)^n))。

定义拟合参数 C 和 n 的初始值,可以根据经验或者先前的研究结果来设置。然后在「Coefficient Bounds」中分别为 C 和 n 指定一个较小的下限和一个较大的上限,比如 -10 和 10。点击「Fit」按钮,等待拟合结果。

如果出现无穷大的提示,就代表拟合出现了问题。此时建议重新调整拟合参数的范围,或者更改模型的形式以避免出现无穷大。

如有帮助给个采纳谢谢

这个错误提示表明拟合函数在某些参数组合下返回了无限大或非法值。可以尝试以下方法解决这个问题:

设置参数的上下限。在拟合过程中,为了保证输出结果的合理性,可以设置参数的上下限。在 MATLAB 的 Curve Fitting Toolbox 中,可以通过在 "Fit Options" 下的 "Lower Bound" 和 "Upper Bound" 栏输入相应值来设置。

检查数据的范围。检查数据是否有异常值或超出了拟合函数定义域,这可能导致拟合出现问题。可以将数据范围缩小一些,或者对异常值进行处理。

改变拟合函数。如果以上方法仍无法解决问题,可以尝试使用其他形式的拟合函数,或者修改现有的拟合函数。在修改拟合函数时,需要明确每个参数的物理意义以及其取值范围。

更改拟合方法。除了最小二乘法,还有其他拟合方法,例如非线性最小二乘法、贝叶斯拟合等。可以尝试使用其他拟合方法,比较哪种方法更适合当前问题。