请问这样的动态迭代过程用什么样的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].