曲线拟合 曲率计算
麻烦高手帮忙做下曲线拟合,然后计算下最大和最小曲率,谢谢032-133-234-336-437-551-659-767-894-9133-10210-11340-1259...
麻烦高手帮忙做下曲线拟合,然后计算下最大和最小曲率,谢谢
0 32
-1 33
-2 34
-3 36
-4 37
-5 51
-6 59
-7 67
-8 94
-9 133
-10 210
-11 340
-12 590
-13 940
-14 1420
-15 2140
-16 3400
-17 5100
-18 7400
-19 10900
-20 17000
-21 25300
-22 36600
-23 53000
-24 76000
-25 126000
-26 175000
-27 235000
-28 340000
-29 490000
-30 830000
-31 1090000
-32 1800000
-33 2300000 展开
0 32
-1 33
-2 34
-3 36
-4 37
-5 51
-6 59
-7 67
-8 94
-9 133
-10 210
-11 340
-12 590
-13 940
-14 1420
-15 2140
-16 3400
-17 5100
-18 7400
-19 10900
-20 17000
-21 25300
-22 36600
-23 53000
-24 76000
-25 126000
-26 175000
-27 235000
-28 340000
-29 490000
-30 830000
-31 1090000
-32 1800000
-33 2300000 展开
1个回答
2013-09-26
展开全部
由于曲线比较诡异所以,这里采用三次插值的方法来做,这样可以是曲线比较平滑,三次插值是分段插值,使得曲线平滑,如果使用取对数后在进行最小二乘法来做的话那么得到的误差将会是十分大,
我是用MATLAB的曲线拟合工具箱来做的,结果只有用三次样条插值的方法拟合的曲线才比较令人满意,由于曲线拟合有多种理论,所以选择好的拟合方法很重要
通过拟合后的曲线,并进行一二次导数后,得到的最大曲率值为10.02334723在点x=-3.5570处,最小曲率为0在点x=-1处
补充下:
由于题目中给定的问题中可知,x ,y 之间的函数表达式是不知道的,也即是说x,y 之间可能有一个函数关系式,也可能是有一个分段函数的关系式,或者根本上就没有函数关系式,那么楼下所作的取对数后在进行最小二乘法拟合,那么说明楼下已经承认了x,y之间有一个指数函数的关系,这种做法我认为是不可取的,除非提问者已经说明了存在这个关系式,(其实我们知道,最小二乘法的原理就是知道了函数关系式,才来进行系数的拟合的,求出系数来)而且通过楼下的拟合可以看出,有大多数点没有被通过,数据没有被充分利用(在这种只有数据的情况下,数据就是我们唯一知道的信息,所以我们要充分利用),误差较大,而且由于x,y之间的数量及较大,取对数后减小了这种差别,在还原后那么误差就会进一步放大;因此在不知道x,y 之间的确切的函数关系式那么,用三次插值是比较好的,应为这有效利用了数据信息,并且图像时光滑的,这个满足数据所反应的信息,以及其变化趋势,正应为这样才能求出比较精确的曲率值
关于楼下所说的计算所取得最大曲率值和我的值不一样,我不知道楼主是怎么算的,我先说下我是怎么算的,根据分段插值得到多个分段的三次函数,然后用这些函数计算在相关段内等间距的离散点的一二次导数数值,这样可以得到以个关于曲率k的数组,找出这组数中的最大最小值,一二次导数是MATLAB计算出来的,所以不可能会错,最大值最小值当然也不会错。关于到底是使用什么方法来做拟合或是插值,我想我在上面已经说得够清楚了,因此不在此赘述!
作者说最大最小曲率值在图上貌似不再那点,我想说,由于想x,y的值相差太大,y的坐标刻度经过了缩放,x,y的坐标刻度不再是等距的了,因此图上一般是看不出来的!
还有我想楼下提醒下,就题论题,你不要扯得太远了,如果是那样的话这道题就知道一组数据没有任何其他条件,要你求曲率,按你的说法,什么精度,什么点可能存在的误差.....,这里没有那么多条件,是不是你就不能做啦,我想说当然不是,好了。
我是用MATLAB的曲线拟合工具箱来做的,结果只有用三次样条插值的方法拟合的曲线才比较令人满意,由于曲线拟合有多种理论,所以选择好的拟合方法很重要
通过拟合后的曲线,并进行一二次导数后,得到的最大曲率值为10.02334723在点x=-3.5570处,最小曲率为0在点x=-1处
补充下:
由于题目中给定的问题中可知,x ,y 之间的函数表达式是不知道的,也即是说x,y 之间可能有一个函数关系式,也可能是有一个分段函数的关系式,或者根本上就没有函数关系式,那么楼下所作的取对数后在进行最小二乘法拟合,那么说明楼下已经承认了x,y之间有一个指数函数的关系,这种做法我认为是不可取的,除非提问者已经说明了存在这个关系式,(其实我们知道,最小二乘法的原理就是知道了函数关系式,才来进行系数的拟合的,求出系数来)而且通过楼下的拟合可以看出,有大多数点没有被通过,数据没有被充分利用(在这种只有数据的情况下,数据就是我们唯一知道的信息,所以我们要充分利用),误差较大,而且由于x,y之间的数量及较大,取对数后减小了这种差别,在还原后那么误差就会进一步放大;因此在不知道x,y 之间的确切的函数关系式那么,用三次插值是比较好的,应为这有效利用了数据信息,并且图像时光滑的,这个满足数据所反应的信息,以及其变化趋势,正应为这样才能求出比较精确的曲率值
关于楼下所说的计算所取得最大曲率值和我的值不一样,我不知道楼主是怎么算的,我先说下我是怎么算的,根据分段插值得到多个分段的三次函数,然后用这些函数计算在相关段内等间距的离散点的一二次导数数值,这样可以得到以个关于曲率k的数组,找出这组数中的最大最小值,一二次导数是MATLAB计算出来的,所以不可能会错,最大值最小值当然也不会错。关于到底是使用什么方法来做拟合或是插值,我想我在上面已经说得够清楚了,因此不在此赘述!
作者说最大最小曲率值在图上貌似不再那点,我想说,由于想x,y的值相差太大,y的坐标刻度经过了缩放,x,y的坐标刻度不再是等距的了,因此图上一般是看不出来的!
还有我想楼下提醒下,就题论题,你不要扯得太远了,如果是那样的话这道题就知道一组数据没有任何其他条件,要你求曲率,按你的说法,什么精度,什么点可能存在的误差.....,这里没有那么多条件,是不是你就不能做啦,我想说当然不是,好了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询