如何使用MATLAB绘制平滑曲线

        MATLAB中绘制平滑曲线一般使用最小二乘法或者B样条插值。
        最小二乘法实际上是函数拟合,可以得到目标函数(这里为多项式)的系数,对outliers相对不敏感,缺点是需要预先设置目标函数的阶数,且有时不容易找到最优的目标函数形式。这里使用polyfit()函数进行多项式拟合,其他类似函数,如:lsqlin()不在讨论之列,用法有不同。
        B样条插值是一种插值方法,得不到目标函数,但可以最大限度地在光滑的前提下接近采样点,对outliers敏感,只是比一般的多项式插值好点。
        对照:plot()函数只是将采样点用直线连接在一起,结果是一条折线。


        下面通过一个与条形图结合的实例对最小二乘法(least square)与B样条插值(B spline)进行分析:

y1=[15.81292 16.43826 5.696203; 10.91314 8.493151 5.379747; 10.24499 7.945205 8.860759; 12.02673 13.15068 19.62025;...
    5.790646 15.89041 37.34177; 7.349666 9.041096 6.012658; 10.69042 10.13699 3.797468; 16.03563 10.68493 5.696203;...
    11.13586 8.219178 7.594937];
y11=[15.81292,10.91314,10.24499,12.02673,5.790646,7.349666,10.69042,16.03563,11.13586];
y12=[16.43826,8.493151,7.945205,13.15068,15.89041,9.041096,10.13699,10.68493,8.219178];
y13=[5.696203,5.379747,8.860759,19.62025,37.34177,6.012658,3.797468,5.696203,7.594937];
x=[1 2 3

你可能感兴趣的:(Matlab)