In[]:=
ff[args__]:=(a={{{args}[[1]],{args}[[2]]},{{args}[[3]],{args}[[4]]}};Max[Eigenvalues[a]]);av0={{1.,1.},{1.,1.}};varex0=Flatten[{av0}];nder1[f_]:=(Derivative@@Flatten[{{1,0},{0,0}}])[f];nder2[f_]:=(Derivative@@Flatten[{{0,1},{0,0}}])[f];varexf=Flatten[{Table[av[i][t],{i,2}],Table[1.0,{i,3,4}]}];varexNDsolve=Table[av[i][t],{i,2}];eqnlist={Derivative[1][av[1]][t]nder1[f][Sequence@@varexf],Derivative[1][av[2]][t]nder2[f][Sequence@@varexf],av[1][0]av0[[1,1]],av[2][0]av0[[1,2]]};solDEsuper=NDSolve[eqnlist/.f->ff,varexNDsolve,{t,0,0.1}]
Out[]=
av[1][t]InterpolatingFunction[t],av[2][t]InterpolatingFunction[t]
In[]:=
Clear[nder1,nder2];ff[args__]:=(a={{{args}[[1]],{args}[[2]]},{{args}[[3]],{args}[[4]]}};flag={args}[[5]];Print[flag];flag*Max[Eigenvalues[a]](*If[flag==1,Max[Eigenvalues[a]],0]*));av0={{1.,1.},{1.,1.}};flag0=1;varex0=Flatten[{av0,flag0}];nder1[f_]:=(Derivative@@Flatten[{{{1,0},{0,0}},0}])[f];nder2[f_]:=(Derivative@@Flatten[{{{0,1},{0,0}},0}])[f];varexf=Flatten[{Table[av[i][t],{i,2}],Table[1.0,{i,3,4}],flag0}];varexNDsolve=Table[av[i][t],{i,2}];eqnlist={Derivative[1][av[1]][t]nder1[f][Sequence@@varexf],Derivative[1][av[2]][t]nder2[f][Sequence@@varexf],av[1][0]av0[[1,1]],av[2][0]av0[[1,2]]};solDEsuper=NDSolve[eqnlist/.f->ff,varexNDsolve,{t,0,0.1}]
System`Private`DerivativeX[5]
System`Private`DerivativeX[5]
Out[]=
av[1][t]InterpolatingFunction[t],av[2][t]InterpolatingFunction[t]
In[]:=
nder2[ff][Sequence@@varex0]
System`Private`DerivativeX[5]
Out[]=
0
In[]:=
ff[Sequence@@varex0]
1
Out[]=
2.
In[]:=
eqnlist
Out[]=
[t][av[1][t],av[2][t],1.,1.,1],[t][av[1][t],av[2][t],1.,1.,1],av[1][0]1.,av[2][0]1.
′
av[1]
(1,0,0,0,0)
f
′
av[2]
(0,1,0,0,0)
f