In[]:=
f1[a_]:=a[[1]](1-a[[2]])+a[[2]]-a[[2]]^2;f2[a_]:=a[[1]]-0.5a[[1]]^2+2(1-a[[1]])a[[2]];av0={1.,1.};varex=Table[av[i][t],{i,2}];eqnlist={Derivative[1][av[1]][t]f1[varex],Derivative[1][av[2]][t]f2[varex],av[1][0]av0[[1]],av[2][0]av0[[2]]};solDEsuper=NDSolve[eqnlist,varex,{t,0,1.4}]
Out[]=
av[1][t]InterpolatingFunction[t],av[2][t]InterpolatingFunction[t]
In[]:=
f[a_]:=0.5(1-a[[2]])a[[1]]^2+(1-a[[1]])a[[2]]^2+a[[1]]a[[2]];f1[a_]:=Derivative[{1,0}][f][a];f2[a_]:=Derivative[{0,1}][f][a]av0={1.,1.};varex=Table[av[i][t],{i,2}];eqnlist={Derivative[1][av[1]][t]f1[varex],Derivative[1][av[2]][t]f2[varex],av[1][0]av0[[1]],av[2][0]av0[[2]]};solDEsuper=NDSolve[eqnlist,varex,{t,0,1.4}]
Out[]=
av[1][t]InterpolatingFunction[t],av[2][t]InterpolatingFunction[t]
In[]:=
f[a_List/;Element[a[[1]],Reals]]:=0.5(1-a[[2]])a[[1]]^2+(1-a[[1]])a[[2]]^2+a[[1]]a[[2]];f1[a_]:=Derivative[{1,0}][f][a];f2[a_]:=Derivative[{0,1}][f][a]av0={1.,1.};varex=Table[av[i][t],{i,2}];eqnlist={Derivative[1][av[1]][t]f1[varex],Derivative[1][av[2]][t]f2[varex],av[1][0]av0[[1]],av[2][0]av0[[2]]};solDEsuper=NDSolve[eqnlist,varex,{t,0,1.4}]
Out[]=
NDSolve[t][{av[1][t],av[2][t]}],[t][{av[1][t],av[2][t]}],av[1][0]1.,av[2][0]1.,{av[1][t],av[2][t]},{t,0,1.4}
′
av[1]
({1,0})
f
′
av[2]
({0,1})
f
(*f[x_Real,y_,z_,w_]:=0.5(1-y)x^2+(1-x)y^2+xy-zw;f1[x_,y_,z_,w_]:=Derivative[1,0,0,0][f][x,y,z,w];f2[x_,y_,z_,w_]:=Derivative[0,1,0,0][f][x,y,z,w];*)f[x_Real,y_]:=0.5(1-y)x^2+(1-x)y^2+xy;f1[x_,y_]:=Derivative[1,0][f][x,y];f2[x_,y_]:=Derivative[0,1][f][x,y]av0={1.,1.};varex={x[t],y[t]}eqnlist={Derivative[1][x][t]f1[Sequence@@varex],Derivative[1][y][t]f2[Sequence@@varex],x[0]av0[[1]],y[0]av0[[2]]};solDEsuper=NDSolve[eqnlist,varex,{t,0,1.4}]
Out[]=
{x[t],y[t]}
Out[]=
x[t]InterpolatingFunction[t],y[t]InterpolatingFunction[t]
In[]:=
args={a1_Real,a2_Real};f[Sequence@@args]:=(a=Table[Extract[args,i],{i,2}];0.5(1-a[[2]])a[[1]]^2+(1-a[[1]])a[[2]]^2+a[[1]]a[[2]])av0={1.,1.};varex=Table[av[i][t],{i,2}];eqnlist={Derivative[1][av[1]][t]Derivative[1,0][f][Sequence@@varex],Derivative[1][av[2]][t]Derivative[0,1][f][Sequence@@varex],av[1][0]av0[[1]],av[2][0]av0[[2]]};solDEsuper=NDSolve[eqnlist,varex,{t,0,1.4}]
Out[]=
NDSolve[t][av[1][t],av[2][t]],[t][av[1][t],av[2][t]],av[1][0]1.,av[2][0]1.,{av[1][t],av[2][t]},{t,0,1.4}
′
av[1]
(1,0)
f
′
av[2]
(0,1)
f
