最小二乘法拟合问题

fxfeixue 2011-09-27 05:02:20
论坛的搜索功能出现问题,如果哪位兄弟问过类似问题且得到解答,还请告知,谢谢!

二维坐标系,一组X、Y值,通过最小二乘曲线拟合,结果与拟合前相去甚远,甚至都没有经过已知点,哪位朋友知道是为什么?稍后发个对比图,方便大家帮忙找原因。先谢谢啦!
...全文
514 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzwu 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fxfeixue 的回复:]

上面的图太大了,显示不全,发个小的
[/Quote]

这个图拟合得很好啊!
fxfeixue 2011-11-01
  • 打赏
  • 举报
回复
To:kerbcurb
不好意思,这段时间忙别的去了。好像是我的算法有问题,先结帖啦;我再研究研究,有问题再开新帖求教。
谢谢!
zhw0702 2011-10-21
  • 打赏
  • 举报
回复
可以发图啊~~[Quote=引用 1 楼 fxfeixue 的回复:]
晕,CSDN发不了图片,唉,只能碰运气了,希望高手能给指点一二!!!
[/Quote]
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复
上面给出的数据4次、5次、6次分别减小一次,实际上是3次、4次, 5次的,输入的时候看错
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复
线性:y = -0.793862 + 0.363228 * x

2次多项式:y = -0.332589 + 0.434507 * x + 0.000601 * x ^2

3次多项式:y = -0.268743 + 0.491193 * x + 0.001972 * x ^2 + 0.000007 * x^3

4次的系数:-0.268743025
0.491193208
0.001971979
0.000007028
5次的系数:-0.271438119
0.497513703
0.002263586
0.000010762
0.000000014
6次的系数:-0.260257066
0.489285312
0.001505056
-0.000008724
-0.000000172
-0.000000001
我觉得线性的和2次的比较有实际意义,次数再高物理意义不明确,除非你有其他相关信息
fxfeixue 2011-10-20
  • 打赏
  • 举报
回复
多谢啦!这是用几次多项式得到的数据呀?方便的话,能不能把你计算的结果数据发一份上来,我想跟我计算的做个对比,再次感谢!
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复
http://www.mwtee.com/home.php?mod=space&uid=18294&do=blog&quickforward=1&id=1613都在这里,包括没法成功的
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复

这是你的数据画的
fxfeixue 2011-10-20
  • 打赏
  • 举报
回复
当X坐标单调时,结果就比较正常,方便的话,试一下我的测试数据:
X=0, Y=0
X=0.519026, Y=0.0544603
X=1.62935, Y=0.763272
X=2.72214, Y=1.18275
X=3.279, Y=1.21957
X=2.60418, Y=0.801836
X=0.706563, Y=-0.0503116
X=-1.80764, Y=-1.2227
X=-7.42764, Y=-3.84335
X=-15.7223, Y=-7.61187
X=-28.9721, Y=-13.0633
X=-41.6561, Y=-17.7948
X=-52.7208, Y=-21.7082
X=-67.3244, Y=-26.4506
X=-101.557, Y=-37.2457
X=-142.688, Y=-50.61
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复
应该是多项式插值,但是我从你的图看不出来第3个、第5各点连成的线是另一条?还是说有的点构成一条
fxfeixue 2011-10-20
  • 打赏
  • 举报
回复
这么巧,和你前后脚,但怎么看不到你发的图片呀?
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复
我不知道如何上传图片,你看看这里http://www.mwtee.com/home.php?mod=space&uid=18294&do=album&id=121第一行从右往左
fxfeixue 2011-10-20
  • 打赏
  • 举报
回复
唉,终于可以上网了,我把我想要的效果传上来了,请kerbcurb帮忙看看,能知道是用什么方法做的吗?注意它的曲线走势,尤其是右上角,与最小二乘法拟合出来的结果差别很大。
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复
kerbcurb 2011-10-20
  • 打赏
  • 举报
回复
我根据你的图形,花了几张图,分别是线性、4、5、6、7次多项式最小二乘拟合,x起始坐标假设为0, 终点坐标假设为1, 50 point










fxfeixue 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 kerbcurb 的回复:]
我认为你可能画图有问题。

另外不知道你想达到一种什么样的结果,你是想现实的曲线更光滑一些?还是认为结果不满意?
如果你是用多项式最小二乘拟合,你可以根据多项式【已经求出的】,更密的画出图形,这个时候图形就会光滑的多,比如在两个已知点之间取50点,根据求出的多项式计算出函数值,并且画出来,这个时候,会显得很光滑。

如果不这样,你用什么方法画出来都是差不多的
[/Quote]

我是认为结果不满意,我明白你说的取多些点连接,会使曲线更光滑,上面图中的红色线的连接点是我举的例子,每两个点之间只增加了两个点,但从这增加的两个点已经能看出拟合后的曲线走势了,明天到单位我把通过GDI+绘制结果上传来,那是我想要的。
cnmhx 2011-10-18
  • 打赏
  • 举报
回复
不过原点是当然的!
kerbcurb 2011-10-18
  • 打赏
  • 举报
回复
三次样条的自变量的顺序必须是单调的【增或者减】。
关于3种边界条件,你搜一下,不过我印象中3次样条插值好像是有两种边界条件,自然边界和另一个,我记不清了,你还是搜一下“3次样条插值”吧,解释的会更详细
kerbcurb 2011-10-18
  • 打赏
  • 举报
回复
我认为你可能画图有问题。

另外不知道你想达到一种什么样的结果,你是想现实的曲线更光滑一些?还是认为结果不满意?
如果你是用多项式最小二乘拟合,你可以根据多项式【已经求出的】,更密的画出图形,这个时候图形就会光滑的多,比如在两个已知点之间取50点,根据求出的多项式计算出函数值,并且画出来,这个时候,会显得很光滑。

如果不这样,你用什么方法画出来都是差不多的
fxfeixue 2011-10-18
  • 打赏
  • 举报
回复
图中的大点儿是已知点,小点儿是用最小二乘法拟合出来的,最后连起来不是我想要的。
好像是我用错方法了,应该用三次样条曲线插值,这样插出来点、再连线,就是我想要的。从网上找到一个实现第一种边界条件的代码,应用起来,对X值无变化或忽大忽小的情况处理不好。
前几天无意间看到GDI+的DrawCurve函数绘制出来的曲线正是我的目标。

还有问题想请教kerbcurb:
三次样条是否只能对X值递增的序列有效,因为看到第1,2,3种边界条件都是假设:
X0<X1<...<Xn-1
另外,想知道三种边界条件的实际意义是什么?

谢谢!
加载更多回复(10)

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧