24小时热门版块排行榜    

查看: 2106  |  回复: 6

agent99

禁虫 (正式写手)

物化程序猿

[求助] 稳定的高阶多项式拟合

我在implement一个新的量子化学方法,里面需要高阶多项式拟合(原作者用的是20阶)。他用的是mathematica,但我们老板让我写成程序,这样可以整合到我们实验室的library里方便调用。因为计算量很大(除了这个拟合以外还有很多大计算量的步骤)所以我用的fortran。现在其他部分没有问题,就是20阶多项式拟合总是不稳定。请问高手如何解决这个问题?定重谢!

我尝试过的解决办法:
1.采用32位(相当于C的long double)精度,但是并没有彻底解决问题,某些时候还是会不稳定。
2.用Gaussian-Hermite法取代拉格朗日方法,对于某些简单的情况有帮助,但有些情况还是不行。
回复此楼
理论与计算化学,化学物理,生物物理
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chembetsey

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-02-28 00:20:13
agent99: 金币+5, 有帮助 2013-02-28 04:04:12
多项式拟合是个线性问题,可用多元线性回归方法解决,稳定的方法是奇异值分解SVD。
2楼2013-02-27 09:25:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-02-28 00:20:28
agent99: 金币+5, 有帮助 2013-02-28 04:04:25
这是个算法问题,与FORTRAN语言本身无关。
3楼2013-02-27 20:12:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

agent99

禁虫 (正式写手)

物化程序猿

引用回帖:
2楼: Originally posted by chembetsey at 2013-02-26 13:25:14
多项式拟合是个线性问题,可用多元线性回归方法解决,稳定的方法是奇异值分解SVD。

谢谢,我试过SVD的,但是因为我要求的精度很高,SVD貌似做不到。比如那些高次项,两三个数量级的误差都会造成最后结果偏差很大(拟合得到的系数最后要乘在一系列复杂的函数上)
理论与计算化学,化学物理,生物物理
4楼2013-02-28 03:43:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

agent99

禁虫 (正式写手)

物化程序猿

引用回帖:
3楼: Originally posted by nono2009 at 2013-02-27 00:12:20
这是个算法问题,与FORTRAN语言本身无关。

请问有什么好的算法吗?我试过SVD,但是因为我要求的精度很高,SVD貌似做不到。比如那些高次项,两三个数量级的误差都会造成最后结果偏差很大(拟合得到的系数最后要乘在一系列复杂的函数上)
理论与计算化学,化学物理,生物物理
5楼2013-02-28 03:47:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chembetsey

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
agent99: 金币+5, ★★★很有帮助 2013-03-05 03:21:29
那就是模型的问题了,和计算无关。
你可以试试分段拟合,或是样条函数。
高次多项式拟合实际中用的很少,超过10次,基本没人用了。因为受点的位置影响太大。
6楼2013-02-28 07:23:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

agent99

禁虫 (正式写手)

物化程序猿

引用回帖:
6楼: Originally posted by chembetsey at 2013-02-27 11:23:19
那就是模型的问题了,和计算无关。
你可以试试分段拟合,或是样条函数。
高次多项式拟合实际中用的很少,超过10次,基本没人用了。因为受点的位置影响太大。

样条插值不行,因为那个方法需要一个多项式来描述所有这些点的信息...
我再和老板商量商量怎样解决这个问题吧,仍然很感谢!
理论与计算化学,化学物理,生物物理
7楼2013-03-05 03:21:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 agent99 的主题更新
信息提示
请填处理意见