关于Origin的多项式拟合

ScienceSoft
ScienceSoft
ScienceSoft
238
文章
64
评论
3月 27, 201522:23:00
评论

Origin软件提供了多种非线性拟合工具,可以在“分析”菜单栏下找到。其中的多项式拟合对于许多不规则的函数曲线有比较好的拟合功能,一般需要选择合适的阶数才能达到比较好的拟合效果。下面针对一个实际例子,说明在应用多项式拟合功能时需要注意的问题。以某两列数据为例(好友梅子提供),其图形如下图:

关于Origin的多项式拟合

上图中空白圆点为给定的数据点,而红线为多项式拟合得到的曲线,其项数取为9阶,对应的多项式表达式为:

Y =-0.19458+1.80324E-4*X-5.26164E-9*X^2-7.17185E-13*X^3+4.99335E-17*X^4

-1.3961E-21*X^5+2.11857E-26*X^6-1.83728E-31*X^7+8.59577E-37*X^8-1.68907E-42*X^9

相关系数R^2=0.99179,与给定数据点拟合很好。但使用该表达式时需要特别注意,在X比较大的情况下,多项式的高次项将会对计算结果产生较大的影响。图中的红点是采用上述表达式得到的对应X点处的Y值,在X=80000时,函数值即与实验点和曲线发生了较大偏离。很明显,这是由于小数点舍入误差的原因造成的,因此,这个表达式还不能应用。否则在取较大X值时将产生发散现象。对于这个问题,有两种处理方法:

1、加大多项式中小数点后的位数,从而保证精度;

2、适当降低多项式的阶数,将高次项的影响降低,从而得到合理的曲线。

第一种方法这里不再述及,给出第2种处理方法。如下图:

关于Origin的多项式拟合

从上图可以看出,按阶数=6得到的表达式可以应用。用Fortran计算得到的离散点(红点)与实验数据吻合的也较好。附Fortran程序:

program test

implicit none

integer  x,y,time,tmax

real   ft,A,b1,b2,b3,b4,b5,b6

parameter(A=-0.36515,B1=2.84281E-4,B2=-2.36972E-8,B3=7.33018E-13,B4=-1.07321E-17,B5=7.56699E-23,B6=-2.07544E-28)

open(unit=10,file='ft.txt')

tmax=100000

do time=0,tmax,10000

ft=A+B1*(time)+B2*(time)**2.0+B3*(time)**3.0+B4*(time)**4.0+B5*(time)**5.0+B6*(time)**6.0

write(10,*) time,ft

enddo

close(10)

end

从上面的实例可以看出,在进行多项式拟合时,多项式阶数的选择是比较关键的。

 

via:http://blog.sina.com.cn/s/blog_5ffd41cf0100h8i1.html

weinxin
我的微信公众号
分享科研软件、科研方法,为你的科研助力。
ScienceSoft
  • 本文由 发表于 3月 27, 201522:23:00
  • 转载请务必保留本文链接:https://www.sciencesoft.cn/origin-polynomial-fitting/
Fortran 语法备忘录 (高级) 编程软件

Fortran 语法备忘录 (高级)

混合语言编程  Mixed-Language-Programming 用Fortran调用C++语言的程序 例如一个简单的C++语言程序,求直角三角形斜边长度的达哥拉斯公式:保存为crout.cpp文...
福利:intel Fortran教育版免费申请 编程软件

福利:intel Fortran教育版免费申请

使用Fortran编程的同学用得最多的编译器恐怕就是intel Fortran了,但是这个编译器超级贵,于是到处找破解版,现在intel公司提供给学生申请免费教育版的机会,当然前提是你要有教育邮箱,国...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: