Iterating tiltedsinewave discretizes vehemently​
​By Bill Gosper
Use a rotation matrix
In[]:=
√2RotationMatrix[π/4]
Out[]=
{{1,-1},{1,1}}
to multiply a vector
In[]:=
%.{u,Sin@u}
Out[]=
{u-Sin[u],u+Sin[u]}
Use this to rotate 45º (and scale) a sine wave:
In[]:=
ParametricPlot[%,{u,-3π,3π}]
Out[]=
-10
-5
5
10
-10
-5
5
10
But this is a perfectly legitimate single-valued function for which we shouldn’t need ParametricPlot. Let’s try to eliminate u from the parametric equations.
MapThread[Equal,{{x,y},{u-Sin[u],u+Sin[u]}}]
Out[]=
{xu-Sin[u],yu+Sin[u]}
In[]:=
Eliminate[%,u]
Eliminate
:Inverse functions are being used by Eliminate​, so some solutions may not be found; use Reduce for complete solution information.
Out[]=
-2ArcSin
x-y
2
x+y||2ArcSin
1
2
(-x+y)x+y
In[]:=
#/2&/@%
Out[]=
-ArcSin
x-y
2

x+y
2
||ArcSin
1
2
(-x+y)
x+y
2
In[]:=
Sin/@%
Out[]=
Sin-ArcSin
x-y
2

x+y
2
||SinArcSin
1
2
(-x+y)
x+y
2

In[]:=
%/.Sin[a_==b_]:>Sin@a==Sin@b
Out[]=
1
2
(-x+y)Sin
x+y
2
||
1
2
(-x+y)Sin
x+y
2

%//Simplify
Out[]=
x+2Sin
x+y
2
y
In[]:=
Subtract@@%
Out[]=
x-y+2Sin
x+y
2

ContourPlot[%,{x,-3π,3π},{y,-3π,3π}]
Out[]=
In[]:=
√2%%%//Expand
Out[]=
{u-Sin[u],u+Sin[u]}
In[]:=
ParametricPlot[%,{u,-3π,3π}]
Out[]=
-10
-5
5
10
-10
-5
5
10
{u-Sin[u],u+Sin[u]}/.u->π/2
Out[]=
-1+
π
2
,1+
π
2

During a fleeting moment of clarity, I realized
In[]:=
tiltedSinwave[x_]:=(#+Sin@#&@*InverseFunction[#-Sin@#&])@x
In[]:=
tiltedSinwave[π/2-1]
Out[]=
1+
π
2
ShowParametricPlot[{u-Sin[u],u+Sin[u]},{u,-3π,3π}],GraphicsRed,Point-1+
π
2
,1+
π
2

Out[]=
-10
-5
5
10
-10
-5
5
10
{u-Sin[u],u+Sin[u]}/.u->ArcSin@u
Out[]=
{-u+ArcSin[u],u+ArcSin[u]}
In[]:=
tiltedSinwave[%[[1]]]==%[[2]]
Out[]=
Sin[InverseFunction[#1-Sin[#1]&][-u+ArcSin[u]]]+InverseFunction[#1-Sin[#1]&][-u+ArcSin[u]]u+ArcSin[u]
In[]:=
FullSimplify@%
Out[]=
u+ArcSin[u]Sin[InverseFunction[#1-Sin[#1]&][-u+ArcSin[u]]]+InverseFunction[#1-Sin[#1]&][-u+ArcSin[u]]
In[]:=
FullSimplify@Subtract@@%
Out[]=
u+ArcSin[u]-Sin[InverseFunction[#1-Sin[#1]&][-u+ArcSin[u]]]-InverseFunction[#1-Sin[#1]&][-u+ArcSin[u]]
This should probably be identically 0:
Compare the first iterate
with the second!
And the third!
Zoom in ten orders of magnitude.
The fourth iterate;
We’re (quadratically?) approaching the step function
Why?