在matlab中用custom equation 输入公式y=(b/log(a/x))^(1/c)怎么没法拟合曲线

x=0.2251 0.4316 0.5757 0.632 0.753 0.92
y=8.7 12.4 15.2 16.6 18.7 24.3
result 中总是说 Complex value computed by model function, fitting cannot continue.
Try using or tightening upper and lower bounds on coefficients.
这是什么意思,怎么解决,求高手解答

这是很正常的现象,我刚刚开始接触这个工具箱时,也经常出现这个问题。肯定是你没给你的变量设置上下线。

注意matlab虽然强大,但是也还是不能无限的计算。你必须给它一个计算范围,它只能在一个范围内去寻找拟合曲线

比如我知道一个自变量和一个因变量的函数关系是:

y=10^(a*x^2+b*x+c)

如果我不给出a,b,c的范围,让matlab自己去拟合的话,基本上也会出现你上面的情况。

但是我给出a,b,c的大概范围就能拟合出曲线了,拟合曲线如下:

效果还是挺不错的。

变量范围的设置在图中所示。

默认上限和下限是inf和-inf,在对比较复杂的曲线进行拟合时,需要设置。不然基本不会成功的。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答