|
同学们: 有一个数学问题请教:“Runge–Kutta methods” 可以参考wikipedia: http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods 其中有一句话“Now pick a step-size h>0 and define” 事实上,星系的曲线是可以绕圈的,所以上面的h>0 有时必须h小于0. 我的程序是这样处理有时大于零,有时小于零(下面是程序)。我的处理正确吗?
k1=tan(alp); dec=sin(alp); if( cos(alp)>=0 ){goe1=fabs(goe1);}else{goe1=-fabs(goe1);} xh=X+0.5*goe1; yh=Y+0.5*goe1*k1; sl2=x1v(xh,yh,dec); k2=tan(sl2); dec=sin(sl2); if( cos(sl2)>=0 ){goe2=fabs(goe2);}else{goe2=-fabs(goe2);} xh=X+0.5*goe2; yh=Y+0.5*goe2*k2; sl2=x1v(xh,yh,dec); k3=tan(sl2); dec=sin(sl2); if( cos(sl2)>=0 ){goe3=fabs(goe3);}else{goe3=-fabs(goe3);} xh=X+goe3; yh=Y+goe3*k3; sl2=x1v(xh,yh,dec); k4=tan(sl2); dec=sin(sl2); if( cos(sl2)>=0 ){goe4=fabs(goe4);}else{goe4=-fabs(goe4);} Xp=X+(1./6.)*(goe1+2*goe2+2*goe3+goe4); Yp=Y+(1./6.)*(goe1*k1+2*goe2*k2+2*goe3*k3+goe4*k4); alp=x1v(Xp,Yp,dec);
其中的goe1等等就是上述的h 请帮忙证明是否正确。谢谢!!
|
|
|