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
Domain: {{0.,0.1}}
Output: scalar
[t],av[2][t]InterpolatingFunction
Domain: {{0.,0.1}}
Output: scalar
[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
Domain: {{0.,0.1}}
Output: scalar
[t],av[2][t]InterpolatingFunction
Domain: {{0.,0.1}}
Output: scalar
[t]
In[]:=
nder2[ff][Sequence@@varex0]
System`Private`DerivativeX[5]
Out[]=
0
In[]:=
ff[Sequence@@varex0]
1
Out[]=
2.
In[]:=
eqnlist
Out[]=

′
av[1]
[t]
(1,0,0,0,0)
f
[av[1][t],av[2][t],1.,1.,1],
′
av[2]
[t]
(0,1,0,0,0)
f
[av[1][t],av[2][t],1.,1.,1],av[1][0]1.,av[2][0]1.
​