Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- canonical[list_List] := Last@Sort@ Flatten[NestList[Reverse /@ # &,
- NestList[RotateLeft, list, Length[list] - 1], 1], 1]
- nonCanonicalQ[vals_] := (vals != canonical[vals])
- nonCanonicalQ[{5,4,3,2,1}] (* False: means that it's a canonical list *)
- nonCanonicalQ[{3,4,5,1,2}] (* True: means it's not a canonical list *)
- sysDAE0 = {s[1]'[t] == 0, s[2]'[t] == 0, s[3]'[t] == 0, s[4]'[t] == 0,
- s[5]'[t] == 1, {s[1][0], s[2][0], s[3][0], s[4][0], s[5][0]} == {4, 3, 2, 1, 0}}
- {solDAE} = NDSolve[{sysDAE0}~Join~{WhenEvent[Evaluate@nonCanonicalQ[varsOt],
- "StopIntegration"]}, vars, {t, -1000, 1000}];
- solDAE = vars /. solDAE
- nonCanonicalQ[Through[solDAE[0]]] (* False *)
- nonCanonicalQ[Through[solDAE[100]]] (* True *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement