I have developed a fairly complicated (by my standards) Maple routine that makes heavy use (again by my standards) of the numeric methods dverk78 and rkf45. Recently I posted about differences I seemed to be seeing between running this on Linux and on windows. I was in error; the difference seems to be between Maple 13 and Maple 11. Maple 13 gives the same answers on Linux and on Windows. Here is a small part of my code. Notice that first the solutions of a differential equation are computed using dverk78, and then a second system is solved which computes the derivative of P(t) with respect to its initial condition. Digits:=25;gradPhi4:= proc (P0,Gamma,Omega,lambda); > A:= 1e-7; > B:= 1e4; > ics:= P(0)=P0, L(0)=B*lambda, W(0)=0; > sys_Ode:= diff(P(t),t)= A*Gamma*P(t)*(L(t)-P(t))-A*Omega*W(t)*P(t),diff(L(t),t)= -P(t),diff(W(t),t)=P(t); > sol:= dsolve([sys_Ode,ics],type=numeric,method=dverk78,abserr=1e-15,output=listprocedure); > P:=rhs(sol[3]); L:=rhs(sol[2]); W:=rhs(sol[4]); > PhiP0:= proc (N,t,Y,YP); > YP[1]:=A*Gamma*Y[1]*(L(t)-P(t))+A*Gamma*P(t)*(Y[2]-Y[1])-A*Omega*Y[3]*P(t)-A*Omega*W(t)*Y[1]; > YP[2]:=-Y[1]; > YP[3]:=Y[1]; > end: > icP0:= array([1,0,0]): > dvarsP0:= [PP0(t),LP0(t),WP0(t)]: > dsolP0:= dsolve (numeric, number=3, procedure=PhiP0, start=0, initial=icP0, procvars=dvarsP0, abserr=1e-15,output=listprocedure); It was suggested that the differences were produced by differences in rounding off together with an ode system that is very sensitive to initial conditions. I don't THINK that is the case as I tried rounding off the initial values and the results were the same to many decimal places. I of course am left wondering if the results of Maple 13 are "right" and those of Maple 11 are "wrong," or is it the other way around?

Please Wait...