我正在尝试使用Matlab验证我的工程工作。我有一系列x和y数据,我已经在Log-Log Graph上绘制了这些数据。
结果是曲线。
我需要做的是将曲线拟合应用于此图形,并显示拟合方程式是什么?
我在这里尝试了其他答案并尝试使用polyfit和polyval,但他们并没有真正做我需要的东西,但我缺乏的是立即理解。
亲切的问候
答案 0 :(得分:0)
将polyfit
应用于logx
和logy
而不是x
和y
,然后使用适合的结果应用polyval
log(x)
并在结果上使用exp()
来获得实际拟合y
:
logx = log(x);
logy = log(y);
fitp = polyfit(logx, logy, n);
newy = exp(polyval(fitp, log(newx)));
答案 1 :(得分:0)
在对数空间中拟合可能是不合需要的。您最有可能希望显示最适合数据的等式,而不是数据转换。结果,我将拟合线性数据,然后根据需要将其转换为可视化。如果这是可以接受的,polyfit和polyval应该可行。
如果您认为在日志空间中的拟合很重要,我之前使用过lsqcurvefit,但这需要优化工具箱以及您想要适合哪种函数的一些想法(即您的数据最好用10表示) ^ x或x ^ 2?)。还有曲线拟合工具箱,如果存在可以通过GUI交互式识别但不易于识别的问题,可能值得研究。这提供了一个“适合”的功能,也可能有用。