Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. canonical[list_List] := Last@Sort@ Flatten[NestList[Reverse /@ # &,
  2. NestList[RotateLeft, list, Length[list] - 1], 1], 1]
  3.  
  4. nonCanonicalQ[vals_] := (vals != canonical[vals])
  5.  
  6. nonCanonicalQ[{5,4,3,2,1}] (* False: means that it's a canonical list *)
  7. nonCanonicalQ[{3,4,5,1,2}] (* True: means it's not a canonical list *)
  8.  
  9. sysDAE0 = {s[1]'[t] == 0, s[2]'[t] == 0, s[3]'[t] == 0, s[4]'[t] == 0,
  10. s[5]'[t] == 1, {s[1][0], s[2][0], s[3][0], s[4][0], s[5][0]} == {4, 3, 2, 1, 0}}
  11.  
  12. {solDAE} = NDSolve[{sysDAE0}~Join~{WhenEvent[Evaluate@nonCanonicalQ[varsOt],
  13. "StopIntegration"]}, vars, {t, -1000, 1000}];
  14. solDAE = vars /. solDAE
  15.  
  16. nonCanonicalQ[Through[solDAE[0]]] (* False *)
  17. nonCanonicalQ[Through[solDAE[100]]] (* True *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement