对于matlab的拟合问题,可以使用cftool工具箱。
拟合结果是多种多样的。按你的要求,我试了一个,如下图:
这个拟合函数是一个幂函数,拟合结果为:
f(x) = a*x^b
a = 2.102e-015
b = 27.35
也就是:
y=2.102e-015*x^27.35
对于这个问题,对于cftool的使用,简单流程如下:
第一,在matlab命令窗口输入:
x=[2.755 3.035 3.184 3.212 3.236 3.293];
y=[0 0.05 0.1 0.15 0.2 0.3];
cftool
会弹出拟合工具箱窗口,点击Data,X Data和Y Data分别选x、y,然后点击Creat data set。
第二,点击Fitting,弹出窗口点击New fit,Type of fit就是你要拟合的函数类型。我这儿选了Power,即幂函数。然后点击Apply,工具箱窗口就会显现你的数据以及拟合好的函数曲线。
Fitting窗口的Results,会显示此次拟合的结果。
如果没有显示函数图象,点击一下Ploting,确保两条plot都选上了。
你自已可以试试其它函数类型,或者微调其它的参数。比如选择三次多项式:
但是这个不满足你单调函数的要求。多项式拟合效果会很好,但是不一定满足你单调的条件。
你可以试试别的函数,试试别的参数,挑选你觉得合适的。
具体的,细节的cftool的使用,我这儿就不赘述了。你可以在网上找到很多相关资料。
若有不解,欢迎追问。
x=[2.755 3.035 3.184 3.212 3.236 3.293];
y=[0 0.05 0.1 0.15 0.2 0.3];
plot( x, y, 'b.' );
hold on;
p = polyfit( x, y, 3 );
fy = polyval( p, x );
plot( x, fy, 'r-' );
用三次多项式拟合到的多项式参数(P)为:
8.2989 -73.8404 218.8846 -216.1098