How can I make this implementation of Euler's method more efficient?
Naming is confusing indeed. What is sy, om, etc?
I do not understand a need for eqDict and subVal. Using init directly is much more straightforward:


for example,

 result = [ init0[i] + h*f[i].subs(init0) for i in xrange(init0) ]
 init0 = [ x for x in result]



Updating subVal at the end of the function is meaningless.
It is very unclear why the Euler step is repeated 6 times for one time step.
Is there a reason to pass mesh, if the code only uses mesh[0]?
The description should mention that the function only addresses autonomous systems.