用Python实现内推外插法

用Python实现内推外插法

ID:42696915

大小:37.00 KB

页数:5页

时间:2019-09-20

用Python实现内推外插法_第1页
用Python实现内推外插法_第2页
用Python实现内推外插法_第3页
用Python实现内推外插法_第4页
用Python实现内推外插法_第5页
资源描述:

《用Python实现内推外插法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用Python实现内推外插法"""Author:ZDate:2015-12-3"""importnumpyasnpclassnode(object):def__init__(self):self.power=[]self.a=[]defset(self,ar,p):foriinxrange(len(ar)):self.a.append(ar[i])self.power.append(p[i])defprintf(self):print'a[]is:',foriinxrange(np.array(self.a).shape[0]):printself

2、.a[i],print''print'power[]is:',foriinxrange(np.array(self.power).shape[0]):printself.power[i],print''#############################basefunctionarea#####################defparse(self,string):"""parsestr"string"intolist"a"and"power""a"meansthefactorofx"power"meanstheindexofx"""se

3、lf.power=[]self.a=[]string=string.replace('','')eq=string.find('=')new_string=string[(eq+1):]index=new_string.find('x')while(index!=-1):ifnew_string[index-1]=='*'andnew_string[index-2].isdigit():i=index-2num=""whilei>=0andnew_string[i].isdigit():num=new_string[i]+numi=i-1ifi>=

4、0andnew_string[i]=='-':num='-'+numself.a.append(float(num))else:self.a.append(1.)ifnew_string[index+1]=='^':num=0.i=index+2whilei

5、('x',index+1)ifnew_string[-1]!='x':ll=len(new_string)-1num=""whilell>=0andnew_string[ll].isdigit():num=new_string[ll]+numll=ll-1ifll>=0andnew_string[ll]=='-':num='-'+numself.a.append(float(num))self.power.append(0.)defget_fun_value(self,num):ret=0.foriinxrange(np.array(self.a)

6、.shape[0]):ret+=self.a[i]*pow(num,self.power[i])returnret#######################toolfunctionarea##############defMin_push_forward(self,start,step):ifself.get_fun_value(start)

7、:x3=x2+stepy3=self.get_fun_value(x3)ify2>y3:x1=x2x2=x3else:breakreturnx1,x3defMin_insert_forword(self,lef,rig,max_epochs,min_error):epoch=0whileTrue:mid1=(3.*lef-rig)/2.mid2=(lef+rig)/2.y1=self.get_fun_value(mid1)y2=self.get_fun_value(lef)y3=self.get_fun_value(mid2)y4=self.get

8、_fun_value(rig)ify1<=y2andy1<=y3andy1<=y4:lef=mid1rig=lefelif

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。