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

x=0.22510.43160.57570.6320.7530.92y=8.712.415.216.618.724.3result中总是说Complexvaluecomp... 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.
这是什么意思,怎么解决,求高手解答
展开
 我来答
吓栋栋
2014-02-13 · TA获得超过2832个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:192万
展开全部

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

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

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

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

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

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

效果还是挺不错的。

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

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式