Perimeter of 3-by-4 Multi-Loop Lissajous Structure
​Authors: Housam Binous and Ahmed Bellagi

We compute the perimeter of a 3-by-4 multi-loop Lissajous structure using two different approaches: (1) the parametric definition of the Lissajous curve is defined and (2) Arc-length continuation (numerical differential approach).​​Method 1: Based on parametric definition of the Lissajous curve​The 3-by-4 multi-loop Lissajous structure is defined by:​
x(t)=cos(3t)
and
y(t)=sin(4t)
​The exact perimeter is given by:
P=
t
1
∫
t
0
2
x
t
+
2
y
t
dt
where:
t
1
=0 and
t
2
=2π
.or equivalently
P=
2π
∫
0
9Sin
2
(3t)
+16
2
Cos(4t)
dt
​​​Method 2: Arc-Length Continuation Method​The second approach is based on the definition of arc length, where the perimeter is computed as the total length of a parametric curve.To do so, we use the following implict equation structure:
x=4
3
u
-3u
and
2
y
=1-
2
(8
4
u
-8
2
u
+1)
​​Both calculations yield
P=21.2372
Method based on parametric definition of the Lissajous curve
A=1.;(*amplitudeforx*)​​B=1.;(*amplitudefory*)​​a=3;(*frequencyforx*)​​b=4;(*frequencyfory*)​​delta=Pi/2;(*phase-shift*)​​​​x[t_]:=ASin[at+delta]​​y[t_]:=BSin[bt]
In[]:=
t1=t/.FindMinimum[{(x[t])^2,y[t]>=0},{t,7},AccuracyGoal->10][[2]]
Out[]=
6.80678
In[]:=
t0=t/.FindMinimum[{(x[t])^2,y[t]>=0},{t,0},AccuracyGoal->10][[2]]
Out[]=
0.523599
In[]:=
t1-t0(*commonperiodis2π*)
Out[]=
6.28319
In[]:=
%/Pi
Out[]=
2.
In[]:=
p=ParametricPlot[{x[t],y[t]},{t,t0,t1},PlotStyle->{Thick,Darker@Red},FrameLabel->{Style["x",16],Style["y",16]},PlotLabel->"Lissajous Curve",AspectRatio->1,PlotRange->{{-1.5,1.5},{-1.5,1.5}},Frame->True,GridLines->Automatic,AspectRatio->1];
In[]:=
Show[p,Graphics[{Darker@Blue,PointSize[0.025],Point[{x[t],y[t]}/.t->(t0+0.0)],Point[{x[t],y[t]}/.t->(t1-0.0)]}]]
Out[]=
In[]:=
dx[t_]:=D[x[t],t]​​dy[t_]:=D[y[t],t]​​​​​​ds[t_]:=Sqrt[dx[t]^2+dy[t]^2]​​​​​​L=NIntegrate[ds[t],{t,t0,t1},AccuracyGoal->20];​​​​Print["Perimeter = ",L]
Perimeter = 21.2372
In[]:=
(*alternativelyonecanusethefollowingcommand*)​​N[NIntegrate[Sqrt[9Sin[3t]^2+16Cos[4t]^2],{t,0,2Pi},WorkingPrecision->50,AccuracyGoal->30,PrecisionGoal->30,MaxRecursion->30],10]
Out[]=
21.23721523
Method based on arc - length continuation
In[]:=
Clear[x,y]
In[]:=
(*implicitequationstructure*)​​eq1=x[s]==4u[s]^3-3u[s];​​eq2=y[s]^2==1-(8u[s]^4-8u[s]^2+1)^2;
In[]:=
eq3=x'[s]^2+y'[s]^2==1(*auxiliaryequation*)
Out[]=
2
′
x
[s]
+
2
′
y
[s]
1
In[]:=
Solve[4u^3-3u==0,u]
Out[]=
{u0},u-
3
2
,u
3
2

In[]:=
sol=FindRoot[{x==4u^3-3u,y^2==1-(8u^4-8u^2+1)^2}/.u->0.5Sqrt[3],{x,0.5},{y,0.5},AccuracyGoal->20]
Out[]=
{x-4.44089×
-16
10
,y0.866025}
In[]:=
SOL=Quiet@First@NDSolve[{eq1,eq2,eq3,x[0]==0,y[0]==(y/.sol),u[0]==0.5Sqrt[3],x'[0]==0.01,y'[0]==0.0,u'[0]==-0.01},{x,y,u},{s,0,22},PrecisionGoal->15]
Out[]=
xInterpolatingFunction
Domain: {{0.,22.}}
Output: scalar
,yInterpolatingFunction
Domain: {{0.,22.}}
Output: scalar
,uInterpolatingFunction
Domain: {{0.,22.}}
Output: scalar

In[]:=
p=ParametricPlot[{x[s],y[s]}/.SOL,{s,0,21.79},Frame->True,FrameLabel->{Style["x",16],Style["y",16]},PlotRange->{{-1.5,1.5},{-1.5,1.5}},GridLines->Automatic,PlotStyle->Darker@Green,ImageSize->Medium,AspectRatio->1];
In[]:=
Show[p,Graphics[{Darker@Red,PointSize[0.025],Point[{x[s],y[s]}/.SOL/.s->0.0],Point[{x[s],y[s]}/.SOL/.s->21.2372]}]]
Out[]=
In[]:=
P=N[s/.Quiet@FindRoot[(x[s]/.SOL)==0,{s,20},WorkingPrecision->20,AccuracyGoal->20],10]
Out[]=
21.23721538