I went ahead and applied my (minimal) suggestions - code is here.
Before:
y(100)=[-0.11882343279003697, 0.20699682299721942, -1.7155271222248394]
Total execution time 25.8274428 seconds.
After:
y(100)=[-0.11882343279003697, 0.20699682299721942, -1.7155271222248394]
Total execution time 0.4131553 seconds.