全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2853 2
2013-07-19
请问这样的动态迭代过程用什么样的procedure比较好?谢谢!
每一步所有关于 g,h,nestep,ntdecsq和hv[i+1]都是带入更新后的v[i+1]和t[i+1]得到的。如果v[i+1]和t[i+1]不需要更新,直接记录v[i]和t[i]。
data zero;
set zero;
e=10**(-6);
v0=0;                    
ntstep=-g/h;                             
ntdecsq=(g/h)*g;            g,h,nestep,ntdecsq和hv0都是关于v0的函数(具体的函数表达式省略了)
hv0=-sum(of h1-h10);
t1=1;  
if ntdecsq<e then v1=v0;  else v1=v0+t1*ntstep;                     
run;

data one;
set zero;              
ntstep=-g/h;                             
ntdecsq=(g/h)*g;            g,h,nestep,ntdecsq和hv1都是关于v1和t1的函数   
hv1=-sum(of h1-h10);      
t2=0.8*t1;
if ntdecsq<e then v2=v1;                                       
else v2=v1+t2*ntstep;                  
run;

data two;
set one;         
ntstep=-g/h;                             
ntdecsq=(g/h)*g;            g,h,nestep,ntdecsq和hv2都是关于v2和t2的函数      
hv2=-sum(of h1-h10);  
t3=0.8*t2;
if ntdecsq<e then v3=v2;                                       
else v3=v2+t3*ntstep;  
run;

依此类推看是否需要更新v[i+1]为v[i+1]=v[i]+t[i+1]*ntstep,以及更新t[i+1]为t[i+1]=0.8*t[i].
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-7-19 01:09:42
貌似可以在一个data step里用array
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-7-19 01:40:48
boe 发表于 2013-7-19 01:09
貌似可以在一个data step里用array
我想能不能在iml里用什么do until或者do while或者其他条件语句之类的,但是我对iml不熟,不知道这样能不能行的通?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群