First, the code:
(* numerical solution of the double pendulum system in polar coordinates *) sol = Flatten[{v1, v2, θ1, θ2} /. NDSolve[{v1'[t] == -l^2/ 2 (3 g/l Sin[θ1[t]] + θ1'[t] θ2'[ t] Sin[θ1[t] - θ2[t]]), v2'[t] == -l^2/ 2 (g/l Sin[θ2[t]] + θ1'[t] θ2'[ t] Sin[θ1[t] - θ2[t]]), θ1'[t] == 6/(m l^2) ( 2 m v1[t] - 3 Cos[θ1[t] - θ2[t]] m v2[t])/( 16 - 9 Cos[θ1[t] - θ2[t]]^2), θ2'[t] == 6/(m l^2) ( 8 m v2[t] - 3 Cos[θ1[t] - θ2[t]] m v1[t])/( 16 - 9 Cos[θ1[t] - θ2[t]]^2), θ1[0] == π/2, θ2[0] == π/2, v1[0] == v2[0] == 0 } /. {g -> 9.81, l -> 1, m -> 1}, {v1, v2, θ1, θ2}, {t, 0, 20} ]] (* cartesian coordinates of pendulum ends *) x1k[t_, l_] := l Sin[sol[[3]][t]] y1k[t_, l_] := -l Cos[sol[[3]][t]] x2k[t_, l_] := l (Sin[sol[[3]][t]] + Sin[sol[[4]][t]]) y2k[t_, l_] := -l (Cos[sol[[3]][t]] + Cos[sol[[4]][t]]) (* corresponding plot *) ParametricPlot[ Evaluate[{{x1k[t, l], y1k[t, l]}, {x2k[t, l], y2k[t, l]}} /. {l -> 1}], {t, 0, 20}] As you can see, the function for the position of the second pendulum's end is very inaccurate, so the red curve is jagged instead of smooth. I have tried with specifying various options to NDSolve: AccuracyGoal, InterpolationOrder, MaxStepFraction, PrecisionGoal, but neither seemed to help.



NDSolve. Try setting the optionsPlotPoints -> 100, MaxRecursion -> 8onParametricPlot. $\endgroup$MaxRecursionlimits how much effort the plotting function may put into making it smooth. Some functions would take a very long time to make smooth. $\endgroup${t,0,20}interval intoPlotPointsnumber of equal parts and computes the function at each point. Many other systems will do only this much, and will typically give you some jaggedness. But Mathematica will look at each segment pair and if their angle is large enough (i.e. if they look jagged), it will subdivide them to make the plot smoother. Then it repeats this up to MaxRecursion times. $\endgroup$