精华内容
下载资源
问答
  • 本发明涉及空间自由曲线拟合方法,特别涉及一种基于NURBS的空间自由曲线拟合方法。背景技术:空间曲线拟合在机器人和数控机床运动路径生成,点云处理等方面具有广泛的应用。空间曲线拟合主要的方法有拉格朗日拟合法...

    本发明涉及空间自由曲线拟合方法,特别涉及一种基于NURBS的空间自由曲线拟合方法。

    背景技术:

    空间曲线拟合在机器人和数控机床运动路径生成,点云处理等方面具有广泛的应用。空间曲线拟合主要的方法有拉格朗日拟合法,分段三次埃尔米特拟合法,圆弧样条曲线拟合拟合法,NURBS样条曲线拟合法等。但是拉格朗日插值法会出现龙格现象,且拟合误差较大分段;三次埃尔米特插值光滑性不高只有连续的一阶导数;圆弧样条曲线曲率呈跳跃式变化,说明光顺性较差,且用圆弧拟合缓和曲线适应性较差。而现有的NURBS曲线拟合法因为计算复杂,耗时长,对于机器人运动控制等需要较强实时性的场合不适用。

    技术实现要素:

    本发明的目的是提供一种基于NURBS的空间自由曲线拟合方法,旨在解决空间自由曲线拟合平滑性和实时计算问题。

    本发明的目的通过下述技术方案来实现:

    1、一种基于NURBS的空间自由曲线拟合方法,其特征在于,包括如下步骤:

    S1、获取一组离散点序列{Qk},k=0,1,...,n;

    S2、使用弦长参数化或者向心参数化法计算数据点对应的NURBS曲线参数;

    S3、计算NURBS节点矢量;

    S4、使用最小二乘法结合线性方程组计算NURBS曲线的控制点;

    S5、确定权因子,一般全部取1,最终得到NURBS曲线。

    2、根据权利要求1所述的一种基于NURBS的空间自由曲线拟合方法,其特征在于,所述步骤S2的弦长参数化包含如下步骤:

    S2.1、令d为相邻两个离散点的弦长(空间距离)之和,则有

    式中,Qk为离散点矢量;k=0,1,...,n;

    S2.2、则离散点对应的参数为

    3、根据权利要求1所述的一种基于NURBS的空间自由曲线拟合方法,其特征在于,所述步骤S2的向心参数化包含如下步骤:

    S2.1、令

    式中,Qk为离散点矢量;k=0,1,...,n;

    S2.2、则离散点Qk对应的参数为

    4、根据权利要求1所述的一种机器人关节空间平滑轨迹规划方法,其特征在于,所述步骤S3包含如下步骤:

    S3.1、令

    式中,m+1为数据点{Qk},k=0,1,...,m的数目;n+1为控制点Pk,k=0,1,...,n数目;p为NURBS样条曲线次数;

    S3.2、则有NURBS样条曲线的节点矢量U=[u0 u1 ... un+p+1]为

    式中,n为控制点数目减1;p为NURBS样条曲线次数;为数据点Qi对应的参数;α=jd-i;i=int(jd),int(m)表示取小于或者等于m的最大整数。

    5、根据权利要求1所述的一种机器人关节空间平滑轨迹规划方法,其特征在于,所述步骤S4包含如下步骤:

    S4.1、则根据最小二乘拟合法的要求,即要NURBS样条曲线C(u)满足如下条件:

    ①Q0=C(0),Qm=C(1);

    ②其余数据点{Qk},k=1,2,...,m-1与曲线上的对应点的误差平方和最小

    S4.2、根据式(6),令

    式中,

    S4.3、式(7)的目标函数f是关于n-1个变量Pk,k=1,2,...,n-1的标量函数,要使目标函数f最小,即要使f是关于n-1个变量Pk,k=1,2,...,n-1的偏导数都为零,即有

    式中,l=1,2,...,n-1;

    由式(8)可以化简得

    式中,l=1,2,...,n-1;

    S4.4、可以得到含n-1个未知数和n-1个方程的线性方程组

    (NTN)P=R (10)

    式中,

    P=[P1 … Pn-1]T;

    由于采用步骤S3的节点矢量定义方式,保证了每个节点区间至少包含一个数据点对应的参数使得线性方程组的系数矩阵为正定的稀疏矩阵,使用高斯消去法即可求解,解得NURBS样条曲线的控制点Pk,k=0,1,...,n。

    本发明相对于现有技术具有如下的优点及效果:

    本发明所采用的NURBS样条曲线,与拉格朗日拟合法,分段三次埃尔米特拟合法,圆弧样条曲线拟合拟合法等方法生成的曲线相比,具有高阶导数连续的特点,平滑性更好。而且拟合算法计算简单,适用于机器人运动控制能实时性要求高的场合。

    附图说明

    图1是本发明实施例的基于NURBS的空间自由曲线拟合方法流程示意图。

    具体实施方式

    下面结合实施例及附图对本发明作进一步的详细描述,但本发明的实施方式不限于此。

    现以拟合某六自由度垂直关节串联机器人运动路径为对象,按照以下步骤进行基于NURBS的空间自由曲线拟合:

    1、一种基于NURBS的空间自由曲线拟合方法,其特征在于,包括如下步骤:

    S1、获取一组离散点序列{Qk},k=0,1,...,n;

    S2、使用弦长参数化或者向心参数化法计算数据点对应的NURBS曲线参数;

    S3、计算NURBS节点矢量;

    S4、使用最小二乘法结合线性方程组计算NURBS曲线的控制点;

    S5、确定权因子,一般全部取1,最终得到NURBS曲线。

    2、根据权利要求1所述的一种基于NURBS的空间自由曲线拟合方法,其特征在于,所述步骤S2的弦长参数化包含如下步骤:

    S2.1、令d为相邻两个离散点的弦长(空间距离)之和,则有

    式中,Qk为离散点矢量;k=0,1,...,n;

    S2.2、则离散点对应的参数为

    3、根据权利要求1所述的一种基于NURBS的空间自由曲线拟合方法,其特征在于,所述步骤S2的向心参数化包含如下步骤:

    S2.1、令

    式中,Qk为离散点矢量;k=0,1,...,n;

    S2.2、则离散点Qk对应的参数为

    4、根据权利要求1所述的一种机器人关节空间平滑轨迹规划方法,其特征在于,所述步骤S3包含如下步骤:

    S3.1、令

    式中,m+1为数据点{Qk},k=0,1,...,m的数目;n+1为控制点Pk,k=0,1,...,n数目;p为NURBS样条曲线次数;

    S3.2、则有NURBS样条曲线的节点矢量U=[u0 u1 ... un+p+1]为

    式中,n为控制点数目减1;p为NURBS样条曲线次数;为数据点Qi对应的参数;α=jd-i;i=int(jd),int(m)表示取小于或者等于m的最大整数。

    5、根据权利要求1所述的一种机器人关节空间平滑轨迹规划方法,其特征在于,所述步骤S4包含如下步骤:

    S4.1、则根据最小二乘拟合法的要求,即要NURBS样条曲线C(u)满足如下条件:

    ①Q0=C(0),Qm=C(1);

    ②其余数据点{Qk},k=1,2,...,m-1与曲线上的对应点的误差平方和最小

    S4.2、根据式(6),令

    式中,

    S4.3、式(7)的目标函数f是关于n-1个变量Pk,k=1,2,...,n-1的标量函数,要使目标函数f最小,即要使f是关于n-1个变量Pk,k=1,2,...,n-1的偏导数都为零,即有

    式中,l=1,2,...,n-1;

    由式(8)可以化简得

    式中,l=1,2,...,n-1;

    S4.4、可以得到含n-1个未知数和n-1个方程的线性方程组

    (NTN)P=R (10)

    式中,

    P=[P1 … Pn-1]T;

    由于采用步骤S3的节点矢量定义方式,保证了每个节点区间至少包含一个数据点对应的参数使得线性方程组的系数矩阵为正定的稀疏矩阵,使用高斯消去法即可求解,解得NURBS样条曲线的控制点Pk,k=0,1,...,n。

    上述实施例为本方面较佳的实施方式,但本方明的实施方式并不受上述实施例的限制,其他的任何背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

    展开全文
  • 分段曲线拟合方法研究,可以写成一段程序,自动分段拟合
  • 车道线曲线拟合方法

    千次阅读 2020-04-30 19:24:20
    车道线曲线拟合方法 一.车道线拟合算法 背景技术:在车辆行驶过程中,为了更好的了解并预测周围的环境信息,对车道线的曲线拟合是必要的。将采集来的车道线数据进行曲线拟合可以很好的估计车道线的参数信息,得知...

    车道线曲线拟合方法

    一.车道线拟合算法

    背景技术:在车辆行驶过程中,为了更好的了解并预测周围的环境信息,对车道线的曲线拟合是必要的。将采集来的车道线数据进行曲线拟合可以很好的估计车道线的参数信息,得知偏移量、倾斜角、曲率半径等信息,从而预测车道线的走向,为驾驶员或车辆自动控制系统提供帮助。现有的主流算法是将采集的车道线数据投影到鸟瞰图后直接用最小二乘法做三次曲线的拟合。这样做的优点是简单快捷,但缺点包括:视频中同一条车道线在连续几帧的图像中拟合的结果有较大的差别,结果不稳定,远端有摆动的情况。

    经典拟合算法

    一种车道线曲线拟合方法。本方法的步骤主要包括五步:

    第一步从视频中获取当前帧和前2‑5帧图像中各条车道线的像素坐标,并将它们投影到鸟瞰图上;

    第二步对于每条车道线,利用当前帧和前2‑5帧的鸟瞰图坐标用最小二乘法进行三次曲线拟合;

    第三步对于每条车道线,保留第二步中结果的一部分参数以及计算时用到的系数矩阵;

    第四步在第二步中保留的参数的基础上,联立所有帧中的所有车道线,用最小二乘法做最终的拟合,其中计算所需的矩阵由第三步中保留的参数和矩阵直接得到;

    第五步通过第四步的计算结果,得到当前帧各条车道线的最终拟合结果。本发明用于车道线曲线拟合。

    车道线检测实验笔记

    二. 基于Catmull_Rom样条曲线的车道线检测

    1. 样条曲线模型引入

    Catmull_Rom样条曲线拟合是曲线插值技术的一种,该插值技术能经过所给的所有控制点。BY THE WAY,很多插值技术可以参考Catmull_Rom样条曲线拟合方法需要至少四个控制点,公式如下:
    在这里插入图片描述

    其中,t属于[0,1](也就是0-1中每个t值可能对应所求曲线中的某点,其取值越多,曲线越密)。实际上,四个控制点,曲线只会经过其中两个控制点,如现在有控制点A,B,C,D,则最后的曲线拟合结果将如下:

    在这里插入图片描述

    得到的事BC之间的拟合曲线。那么若要得到ABCD的拟合曲线应该怎么办呢。实际上,引入两个新的控制点A’,D’即可,A’由AB计算而得,D’由CD计算而得,例如,A’计算如下:

    A’.x = A.x + (A.x - B.x)

    A’.y = A.y + (A.y - B.y)

    B’点计算类似。于是,由A’ABC可以得到AB曲线,由ABCD可以得到BC曲线,由BCDD’可以得到CD曲线,经过三次计算,可以得到ABCD曲线。

    在一张空白图上,计算经过(50,50),(90,120),(70,200)三点的Catmull_Rom样条曲线。

    贝塞尔曲线只会穿过首尾两个控制点而不过中间的控制点,在某些场合希望曲线穿过所有控制点的话可以使用catmull-rom spline(简称CR-Spline)

    CR-Spline需要至少4个控制点,首尾两个控制点为辅助点,曲线不会穿过,其余控制点在t=[0,1]之间曲线会穿过(我喊作路径点),t=0时值等于第2个顶点,而t=1时值等于倒数第2个顶点
    在这里插入图片描述

    为了接口友好,通常都会约定传递给插值函数的参数为曲线所经过的路径点而不包含辅助点,两个辅助点可以根据已有的路径点计算出来。

    一般情况计算两个辅助点只需要分别在首尾方向作延伸就行了:p0=p1+(p1-p2),pN+1=pN+(pN-pN-1)

    如果传入的控制点首尾相等形成闭合环,那么不用计算,直接取值p0=pN-1,pN=p1就行

    1. 基于Catmull_Rom样条曲线的车道线检测

    2.1. 基本思路

    有了Catmull_Rom样条曲线的基础,那么车道线检测实际上就是找到合适的控制点!

    给出基于Catmull_Rom样条曲线的车道线检测的基本方法(除去预处理过程):

    (1)Hough变换直线检测,将两条主车道线检测出来,直线记为L1,L2;

    (2)判断是车道线是直线还是曲线;

    (3)若车道线是曲线,找到三个控制点P1,P2,P3;

    (4)通过三个控制点,拟合Catmull_Rom样条曲线,得到结果

    2.2. 实验示例

    按照此特性,若从上往下检测(即从(x = 0,y = 0)开始 x++,y++到(x = w,y = h)),直线的Hough检测结果将会基本吻合实际结果,即在检测结果点的周围,都将有实际点的存在;而曲线的Hough检测结果,将会先出现检测结果周围没有实际点,检测结果点周围才会有实际点存在。

    定义:检测结果点吻合:若检测点周围八领域内存在实际点,则代表检测点结果吻合。

    于是该问题转化为:从图顶向下搜索,能否找到P3点,使得P3点上部分一段区域(给定一个长度阈值alph1)检测结果点都不吻合(引入容错因子,防止噪声theta),P3点下部分一段区域(同样给定一个长度阈值alph2)检测结果点吻合。若能找到P3点,则该车道线是曲线,否则,该车道线是直线!

    找到控制点P1,P2,P3:

    P3控制点:实际上,步骤(2)中已经找到了其中一个控制点P3,P3点可以作为直线部分和曲线部分的分界点,P3以上部分拟合曲线,P3一下部分保留Hough变换的直线检测结果;

    P1控制点:我们注意到,可以取远端两车道的消失点作为控制点P1。
    在这里插入图片描述

    具体搜索方法:

    1>找到Hough变换得到的两直线的交点O。

    2>从O点所在行向下搜索,找到P1。(从左往右搜索,第一个遇到的点即为P1点)

    P2控制点:得到了P1,P3两点,则取P1,P3中间的一行搜索两车道的P2点!

    经过三个控制点P1,2,3,使用Catmull_Rom样条曲线拟合得到结果:
    在这里插入图片描述

    在这里插入图片描述

    结论:

    (1)从结果上来看,能得到曲线,拟合效果并不是很好,但是提升空间很大,比如增多控制点会让曲线拟合更为精准!

    (2)控制点寻找的方法仍需要斟酌,因为道路的情况及其复杂,所以需要针对可想的所有情况进行模拟!

    在这里插入图片描述

    展开全文
  • 车道线曲线拟合方法一.车道线拟合算法背景技术:在车辆行驶过程中,为了更好的了解并预测周围的环境信息,对车道线的曲线拟合是必要的。将采集来的车道线数据进行曲线拟合可以很好的估计车道线的参数信息,得知偏移...

    车道线曲线拟合方法

    一.车道线拟合算法

    背景技术:在车辆行驶过程中,为了更好的了解并预测周围的环境信息,对车道线的曲线拟合是必要的。将采集来的车道线数据进行曲线拟合可以很好的估计车道线的参数信息,得知偏移量、倾斜角、曲率半径等信息,从而预测车道线的走向,为驾驶员或车辆自动控制系统提供帮助。现有的主流算法是将采集的车道线数据投影到鸟瞰图后直接用最小二乘法做三次曲线的拟合。这样做的优点是简单快捷,但缺点包括:视频中同一条车道线在连续几帧的图像中拟合的结果有较大的差别,结果不稳定,远端有摆动的情况。

    经典拟合算法
    一种车道线曲线拟合方法。本方法的步骤主要包括五步:

    第一步从视频中获取当前帧和前2‑5帧图像中各条车道线的像素坐标,并将它们投影到鸟瞰图上;

    第二步对于每条车道线,利用当前帧和前2‑5帧的鸟瞰图坐标用最小二乘法进行三次曲线拟合;

    第三步对于每条车道线,保留第二步中结果的一部分参数以及计算时用到的系数矩阵;

    第四步在第二步中保留的参数的基础上,联立所有帧中的所有车道线,用最小二乘法做最终的拟合,其中计算所需的矩阵由第三步中保留的参数和矩阵直接得到;

    第五步通过第四步的计算结果,得到当前帧各条车道线的最终拟合结果。本发明用于车道线曲线拟合。

    车道线检测实验笔记

    二. 基于Catmull_Rom样条曲线的车道线检测

    1. 样条曲线模型引入

    Catmull_Rom样条曲线拟合是曲线插值技术的一种,该插值技术能经过所给的所有控制点。BY THE WAY,很多插值技术可以参考Catmull_Rom样条曲线拟合方法需要至少四个控制点,公式如下:

    811fa8f6fb3517593e7da3f3682784d5.png

    其中,t属于[0,1](也就是0-1中每个t值可能对应所求曲线中的某点,其取值越多,曲线越密)。实际上,四个控制点,曲线只会经过其中两个控制点,如现在有控制点A,B,C,D,则最后的曲线拟合结果将如下:

    130f155cca7edd9676308836ea134cc5.png

    得到的事BC之间的拟合曲线。那么若要得到ABCD的拟合曲线应该怎么办呢。实际上,引入两个新的控制点A',D'即可,A'由AB计算而得,D'由CD计算而得,例如,A'计算如下:

    A'.x = A.x + (A.x - B.x)

    A'.y = A.y + (A.y - B.y)

    B'点计算类似。于是,由A'ABC可以得到AB曲线,由ABCD可以得到BC曲线,由BCDD'可以得到CD曲线,经过三次计算,可以得到ABCD曲线。

    在一张空白图上,计算经过(50,50),(90,120),(70,200)三点的Catmull_Rom样条曲线。

    贝塞尔曲线只会穿过首尾两个控制点而不过中间的控制点,在某些场合希望曲线穿过所有控制点的话可以使用catmull-rom spline(简称CR-Spline)

    CR-Spline需要至少4个控制点,首尾两个控制点为辅助点,曲线不会穿过,其余控制点在t=[0,1]之间曲线会穿过(我喊作路径点),t=0时值等于第2个顶点,而t=1时值等于倒数第2个顶点

    f316ccda099c64b5a9cfe7e2390626ed.png

    为了接口友好,通常都会约定传递给插值函数的参数为曲线所经过的路径点而不包含辅助点,两个辅助点可以根据已有的路径点计算出来。

    一般情况计算两个辅助点只需要分别在首尾方向作延伸就行了:p0=p1+(p1-p2),pN+1=pN+(pN-pN-1)

    如果传入的控制点首尾相等形成闭合环,那么不用计算,直接取值p0=pN-1,pN=p1就行

    2. 基于Catmull_Rom样条曲线的车道线检测

    2.1. 基本思路

    有了Catmull_Rom样条曲线的基础,那么车道线检测实际上就是找到合适的控制点!

    给出基于Catmull_Rom样条曲线的车道线检测的基本方法(除去预处理过程):

    (1)Hough变换直线检测,将两条主车道线检测出来,直线记为L1,L2;

    (2)判断是车道线是直线还是曲线;

    (3)若车道线是曲线,找到三个控制点P1,P2,P3;

    (4)通过三个控制点,拟合Catmull_Rom样条曲线,得到结果

    2.2. 实验示例

    按照此特性,若从上往下检测(即从(x = 0,y = 0)开始 x++,y++到(x = w,y = h)),直线的Hough检测结果将会基本吻合实际结果,即在检测结果点的周围,都将有实际点的存在;而曲线的Hough检测结果,将会先出现检测结果周围没有实际点,检测结果点周围才会有实际点存在。

    定义:检测结果点吻合:若检测点周围八领域内存在实际点,则代表检测点结果吻合。

    于是该问题转化为:从图顶向下搜索,能否找到P3点,使得P3点上部分一段区域(给定一个长度阈值alph1)检测结果点都不吻合(引入容错因子,防止噪声theta),P3点下部分一段区域(同样给定一个长度阈值alph2)检测结果点吻合。若能找到P3点,则该车道线是曲线,否则,该车道线是直线!

    找到控制点P1,P2,P3:

    P3控制点:实际上,步骤(2)中已经找到了其中一个控制点P3,P3点可以作为直线部分和曲线部分的分界点,P3以上部分拟合曲线,P3一下部分保留Hough变换的直线检测结果;

    P1控制点:我们注意到,可以取远端两车道的消失点作为控制点P1。

    42bf6aa359e31db9368eb3d3d96ebac7.png

    具体搜索方法:

    1>找到Hough变换得到的两直线的交点O。

    2>从O点所在行向下搜索,找到P1。(从左往右搜索,第一个遇到的点即为P1点)

    P2控制点:得到了P1,P3两点,则取P1,P3中间的一行搜索两车道的P2点!
    经过三个控制点P1,2,3,使用Catmull_Rom样条曲线拟合得到结果:

    fa16955a585d573e4627bca6d33f9173.png

    205c9a1de763a13da401306cf06747ee.png

    结论:

    (1)从结果上来看,能得到曲线,拟合效果并不是很好,但是提升空间很大,比如增多控制点会让曲线拟合更为精准!

    (2)控制点寻找的方法仍需要斟酌,因为道路的情况及其复杂,所以需要针对可想的所有情况进行模拟!

    b96e0eeaa94e8b8c236aefa5605251e5.png
    展开全文
  • matlab 万能实用的非线性曲线拟合方法

    万次阅读 多人点赞 2018-08-13 09:43:41
    在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有离散参数非线性拟合方法   第一步:得到散点数据 根据你的实际...

            在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有离散参数非线性拟合的方法


     

    第一步:得到散点数据

    根据你的实际问题得到一系列的散点

    例如:

    x=[3.2,3.6,3.8,4,4.2,4.8,5,5.4,6.2,6.4,6.6,6.9,7.1]';%加上一撇表示对矩阵的转置
    y=[0.38,0.66,1,0.77,0.5,0.66,0.83,1,0.71,0.71,1,0.87,0.83]';
    


    第二步:确定函数模型

    根据上述的实际散点确定应该使用什么样的曲线,或者说是想要模拟的曲线

    t=[3.2,3.6,3.8,4,4.2,4.8,5,5.4,6.2,6.4,6.6,6.9,7.1]';
    tt=[0.38,0.66,1,0.77,0.5,0.66,0.83,1,0.71,0.71,1,0.87,0.83]';
     
    plot(t,tt,'.');%得到散点图
    

    散点图如下所示:

    我们已知现存的几种典型的(也是绝大多数情况下的函数模型)



     

    选定一个与散点图像相匹配的函数模型,在此例中我们选择典型的S型曲线模型y= 1/(a+b*e^(-x)),其实此处的函数模型可以任意。


     

    第三步:确定选用函数模型中的未知参数

          首先了解一下matlab中的inline函数,inline是用来定义内联函数的
    比如说:

     

    y=inline('sin(x)','x') %第一个参数是表达式,第二个参数是函数变量
    y(0) %计算sin(0)的值
    y(pi) %计算sin(pi)的值
    q=quad(y,0,1); %计算sin(x) 在0到1上的积分
    

           之后,我们在代码中进行函数的定义

    x=[3.2,3.6,3.8,4,4.2,4.5,4.8,5,5.3,5.4,5.6,5.8,6,6.2,6.4,6.6,6.9,7.1]';
    y=[0.38,0.66,1,0.77,0.5,0.33,0.66,0.83,0.33,1,0.33,0.5,0.33,0.71,0.71,1,0.87,0.83]';
     
    myfunc = inline('1./(beta(1)+beta(2).*exp(-x))','beta','x');%三个参数分别为:函数模型(注意需要使用点除和点乘),待定系数,自变量
     
    beta0 = [0.2,0.2]';%待定系数的预估值
    beta = nlinfit(x,y,myfunc,beta0);%
    



     

    其中,beta返回了非线性拟合之后的待定系数,beta(1)和beta(2)表示待定系数,可以为任意数量的扩展beta(n),也就说明了选择函数模型的自由性,甚至可以有100个参数!

    beta0表示的是函数模型中待定系数的预估值,可以任意设定


     

            matlab 中的nlinfit(x,y,f,a)函数:用于拟合非线性表达式的函数
    f:符号函数句柄,如果是以m文件的形式调用的时候,别忘记加@.这里需要注意,f函数的返回值是和y匹对的,即拟合参数的标准是(f-y)^2取最小值,具体看下面的例子
    a:最开始预估的值(预拟合的未知参数的估计值)。如上面的问题如果我们预估A为1,B为2,则a=[1 2]
    x:我们已经获知的x的值
    y:我们已经获知的x对应的y的值(
    这部分不懂的在matlab中help命令进行了解


     

    求解出beta的大小:beta(1) = 1.1562  beta(2) = 15.1875;


     

    画图:使用plot()函数

    t=[3.2,3.6,3.8,4,4.2,4.8,5,5.4,6.2,6.4,6.6,6.9,7.1]';
    tt=[0.38,0.66,1,0.77,0.5,0.66,0.83,1,0.71,0.71,1,0.87,0.83]';
     
    plot(t,tt,'.');
    hold on%保证同时显示
     
    x = 0:0.01:8;
    y = 1./(1.1562+15.1875.*exp(-x));
     
    plot(x,y);
    



     

    结果:是不是很棒!~,另外可以自行加上对应的横纵坐标内容,这里就不多说了。


     

    总结一下matlab非线性拟合散点图的过程:得到散点数据=>确定函数模型=>求解函数模型的待定系数=>得到拟合函数的具体形式=>画出拟合图像

    =========================================================================================

    用过Matlab的拟合、优化和统计等工具箱的网友,会经常遇到下面几个名词:

    SSE(和方差、误差平方和):The sum of squares due to error
    MSE(均方差、方差):Mean squared error
    RMSE(均方根、标准差):Root mean squared error
    R-square(确定系数):Coefficient of determination
    Adjusted R-square:Degree-of-freedom adjusted coefficient of determination

    下面我对以上几个名词进行详细的解释下,相信能给大家带来一定的帮助!!

    一、SSE(和方差)
    该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下

     

    SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。接下来的MSE和RMSE因为和SSE是同出一宗,所以效果一样

    二、MSE(均方差)
    该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下

     

    三、RMSE(均方根)
    该统计参数,也叫回归系统的拟合标准差,是MSE的平方根,就算公式如下

     

    在这之前,我们所有的误差参数都是基于预测值(y_hat)和原始值(y)之间的误差(即点对点)。从下面开始是所有的误差都是相对原始数据平均值(y_ba)而展开的(即点对全)!!!

    四、R-square(确定系数)
    在讲确定系数之前,我们需要介绍另外两个参数SSR和SST,因为确定系数就是由它们两个决定的
    (1)SSR:Sum
    of squares of the regression,即预测数据与原始数据均值之差的平方和,公式如下

    (2)SST:Total sum of squares,即原始数据和均值之差的平方和,公式如下

    细心的网友会发现,SST=SSE+SSR,呵呵只是一个有趣的问题。而我们的“确定系数”是定义为SSR和SST的比值,故

     

    其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0
    1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好。


    展开全文
  • 对于曲线拟合我们接触最多的就是一元线性回归。其实很多数据可能并不是直线关系,而是需要去探索其他的曲线拟合方式。今天我们来看看如何通过SPSS进行探索拟合方式的选择。这里有很多模型可供选择。可以先进性线性...
  • 曲线拟合方法的选择目 录摘要1前言21 问题提出32 插值介绍42.1拉格朗日公式求解42.1.1 算法分析52.1.2 程序设计52.1.3 计算结果82.1.4 计算量分析82.1.5 图形绘制与分析82.2 逐次线性插值公式求解92.2.1 算法分析102...
  • 车道线曲线拟合方法一.车道线拟合算法背景技术:在车辆行驶过程中,为了更好的了解并预测周围的环境信息,对车道线的曲线拟合是必要的。将采集来的车道线数据进行曲线拟合可以很好的估计车道线的参数信息,得知偏移...
  • 常见数值逼近方法:插值方法和曲线拟合方法等。 1. 插值方法 如果观测数据的误差较小,则可将其作为准确值来处理,即观测数据(x,y)(x,y)(x,y)和函数f(x)f(x)f(x)之间存在如下关系: f(xi)=yi,(i=0,1,2,⋯ ,n) f(x_i...
  • 我之前看了个贝塞尔曲线拟合法,是需要前一个点后一个点的信息的,我现在用findcontours函数获取的边界数据点不知道里面的顺序是怎么样的,所以想知道有什么对顺序没有要求的曲线拟合方法
  • matlab曲线拟合方法和函数拐点查找

    千次阅读 2020-01-10 12:52:23
    polyfit 曲线拟合函数 a=polyfit(X,F,7); %曲线拟合 输入:X 为所有离散点的横坐标的取值 F 为所有离散点的纵坐标的取值 7 为多项式拟合的最高次数(根据自己需要选择); 输出:a 为拟合曲线后自变量的系数...
  • MATALB中曲线拟合的三种方法 本人对MATLAB工具也是处在入门阶段,一下文档如有不当及错误希望大家多多包涵与指正。 首先先要感谢B站的两位大佬,一下两个链接是关于第二和第三种方法的视频 ...seid=...
  • 摘要为拟合疲劳寿命服从威布尔分布的小样本P-S-N(失效概率-应力-循环次数)曲线,提出了小样本疲劳寿命试验数据统计分析与P-S-N曲线拟合方法。根据疲劳寿命均值和标准差与应力水平的线性关系,基于已知的最高级应力水平...
  • 传统的图像对比度增强技术容易造成图像的局部区域过分增强或增强不足等问题, 因此提出了一种结合不可分小波分析和曲线拟合的图像对比度增强方法。该方法以标准清晰图像的均值和标准差作为图像对比度增强的理想目标, ...
  • matlab 万能实用的线性曲线拟合方法

    万次阅读 多人点赞 2017-05-05 09:02:52
    在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有离散参数线性拟合方法 第一步:得到散点数据 根据你的实际问题...
  • 为了在小子样条件下拟合出精度较高的P-S-N曲线,本文提出基于样本信息重构并符合疲劳寿命等效原理的极大似然法和基于样本信息重构的最小二乘法。样本信息重构有效解决了在部分相邻的应力水平下样本的对数寿命标准差...
  • 一、实验内容已知一组实验数据如下表,求它的拟合曲线。 x(i) 1 2 3 4 5 f(i) 4 4.5 6 8 8.5 w(i) 2 1 3 1 1 二、程序清单与运行结果 M文件代码如下:function S=mypolyfit(X,F,W,m,n) % mypolyfit输出通过最小...
  • 费了一下午时间,终于把曲线拟合出来了,顺道也学习了使用Matlab进行曲线拟合方法,把学习所得记录下来,和大家共享。 一、 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能...
  • 在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有离散参数非线性拟合方法 1 得到散点数据 根据你的实际问题得到一系列的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,721
精华内容 1,088
关键字:

曲线拟合方法