Matlab使用cftool拟合曲线

在命令框中输入cftool,进入编辑

Matlab使用cftool拟合曲线_第1张图片

 选择对象:

Matlab使用cftool拟合曲线_第2张图片

 拟合结果:

Matlab使用cftool拟合曲线_第3张图片

选择函数:

Matlab使用cftool拟合曲线_第4张图片

需要注意的是:拟合的函数要与实际点相符合,一般来说x随y线性变化的就用线性函数拟合,x随y大幅度变化就用指数函数拟合等等。Matlab中含有多项自带函数工具箱提供的拟合类型有

Custom Equations:用户自定义的函数类型;
Exponential:指数逼近,有2种类型, a∗exp (b∗x)a*exp(b*x)a∗exp(b∗x) 、 a∗exp(b∗x)+c∗exp(d∗x)a*exp(b*x) + c*exp(d*x)a∗exp(b∗x)+c∗exp(d∗x);
Fourier:傅立叶逼近,有7种类型,基础型是 a0+a1 ∗ cos(x∗w)+b1∗sin(x∗w)a0+a1*cos(x*w)+b1*sin(x*w)a0+a1∗cos(x∗w)+b1∗sin(x∗w);
Gaussian:高斯逼近,有8种类型,基础型是 a 1 ∗ e x p ( − ( ( x − b 1 ) / c 1 ) 2 ) a1*exp(-((x-b1)/c1)^2)a1∗exp(−((x−b1)/c1)2);
Interpolant:插值逼近,有4种类型,Nearest neighbor、Linear、Cubic、Shape-preserving(PCHIP);
Linear Fitting:线性拟合;
Polynomial:多形式逼近;
Power:幂逼近,有2种类型,a∗xba*x^ba∗xb、a∗xb+ca*x^b+ca∗xb+c;
Rational:有理数逼近;
Smoothing Spline:平滑逼近;
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a 1 ∗ s i n ( b 1 ∗ x + c 1 ) a1*sin(b1*x + c1)a1∗sin(b1∗x+c1);
Weibull:只有一种,a∗b∗x (b−1)∗exp(−a∗xb)a*b*x^(b-1)*exp(-a*x^b)a∗b∗x(b−1)∗exp(−a∗xb);
————————————————
版权声明:本文为CSDN博主「wendy_ya」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/didi_ya/article/details/119042304

 拟合曲线图:Matlab使用cftool拟合曲线_第5张图片

这里根据点的分布,可以认为是指数函数,这里使用Exponential进行拟合得到的曲线图如下,从红框中不难看出r的值接近于“1”,并且拟合的阶数也不大,避免了过拟合的情况。

Matlab使用cftool拟合曲线_第6张图片

其次还可以画出预测边界图以及残差图进行参考,如下所示:

Matlab使用cftool拟合曲线_第7张图片

 作图方法如下:

Matlab使用cftool拟合曲线_第8张图片

 Matlab使用cftool拟合曲线_第9张图片

总结:cftool是matlab中一个十分好用的工具箱,使用者可以先输入自变量(x)和因变量(y),这时候出现了点的分布,根据点的分布选择合适的函数进行拟合,需要注意的是拟合函数的阶数不能太大,一般不超过7(询问过授课老师),否则可能出现过拟合。希望能够帮助到你喔

你可能感兴趣的:(matlab,开发语言)