cout0L={4.0,4.0,4.0,4.0};cout0R={4.0,4.0,4.0,4.0};​​alphaR0={{0.2,0.8,0,0},{0.9,0.1,0,0},{0,0,0.3,0.7},{0,0,0.9,0.1}};alphaL0={{0.08,0.9,0.01,0.01},{0.9,0.08,0.01,0.01},{0.01,0.01,0.08,0.9},{0.01,0.01,0.9,0.08}};​​nderaL[i1_,i2_,m_,f_]:=(Derivative@@Flatten[{0,0,ConstantArray[0,m],ConstantArray[0,m],Normal[SparseArray[{{i1,i2}->1},{m,m}]],ConstantArray[0,{m,m}],0,ConstantArray[0,m],ConstantArray[0,m],ConstantArray[0,{m,m}],ConstantArray[0,{m,m}]}])[f];​​ffoutsuper[args__]:=(alphaL={{args}[[11;;14]],{args}[[15;;18]],{args}[[19;;22]],{args}[[23;;26]]};alphaR={{args}[[27;;30]],{args}[[31;;34]],{args}[[35;;38]],{args}[[39;;42]]};Max[Re[Eigenvalues[alphaL.alphaR]]]​​);​​ffoutsuper[Sequence@@Flatten[{1,0.1,cout0L,cout0R,alphaL0,alphaR0,0.1,cout0L,cout0R,alphaL0,alphaR0}]]​​Timing[nderaL[2,1,4,f][Sequence@@Flatten[{1,0.1,cout0L,cout0R,alphaL0,alphaR0,0.1,cout0L,cout0R,alphaL0,alphaR0}]]/.fffoutsuper]​​
1.
{20.0479,0.191315
′
Re
[1.]}
cout0L={4.0,4.0,4.0,4.0};cout0R={4.0,4.0,4.0,4.0};​​alphaR0={{0.2,0.8,0,0},{0.9,0.1,0,0},{0,0,0.3,0.7},{0,0,0.9,0.1}};alphaL0={{0.08,0.9,0.01,0.01},{0.9,0.08,0.01,0.01},{0.01,0.01,0.08,0.9},{0.01,0.01,0.9,0.08}};​​nderaL[i1_,i2_,m_,f_]:=(Derivative@@Flatten[{0,0,ConstantArray[0,m],ConstantArray[0,m],Normal[SparseArray[{{i1,i2}->1},{m,m}]],ConstantArray[0,{m,m}],0,ConstantArray[0,m],ConstantArray[0,m],ConstantArray[0,{m,m}],ConstantArray[0,{m,m}]}])[f];​​ffoutsuper[args__]:=(alphaL={{args}[[11;;14]],{args}[[15;;18]],{args}[[19;;22]],{args}[[23;;26]]};alphaR={{args}[[27;;30]],{args}[[31;;34]],{args}[[35;;38]],{args}[[39;;42]]};Max[Re[Eigenvalues[(alphaL.alphaR)^2]]]​​);​​ffoutsuper[Sequence@@Flatten[{1,0.1,cout0L,cout0R,alphaL0,alphaR0,0.1,cout0L,cout0R,alphaL0,alphaR0}]]​​Timing[nderaL[2,1,4,f][Sequence@@Flatten[{1,0.1,cout0L,cout0R,alphaL0,alphaR0,0.1,cout0L,cout0R,alphaL0,alphaR0}]]/.fffoutsuper]​​
0.703956
$Aborted
alphaL
{{#11,#12,#13,#14},{#15,#16,#17,#18},{#19,#20,#21,#22},{#23,#24,#25,#26}}(*whyarethesenotnumbers?BecauseDerivativetriestoevaluatesymbolically?ItneedstoNOTdothathere*)
ffoutsuper[Sequence@@Flatten[{1,0.1,cout0L,cout0R,alphaL0,alphaR0,0.1,cout0L,cout0R,alphaL0,alphaR0}]]
0.703956
alphaL
{{0.08`,0.9`,0.01`,0.01`},{0.9`,0.08`,0.01`,0.01`},{0.01`,0.01`,0.08`,0.9`},{0.01`,0.01`,0.9`,0.08`}}(*numbers,astheyshouldbe*)