In[]:=
ff[args__]:=(a={{{args}[[1]],{args}[[2]]},{{args}[[3]],{args}[[4]]}};fhelper[a]);fhelper[a_]:=Max[Re[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[]=
NDSolve[t]
,[t]
,av[1][0]1.,av[2][0]1.,{av[1][t],av[2][t]},{t,0,0.1}
′
av[1]
|
′
av[2]
|
In[]:=
nder2[ff][Sequence@@varex0]
Out[]=
0.5[4.]
′
Re
In[]:=
ff[args__]:=(a={{{args}[[1]],{args}[[2]]},{{args}[[3]],{args}[[4]]}};fhelper[a]);fhelper[a_]:=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]
