       A Functional Measure of Roughness

• To: mathgroup at smc.vnet.net
• Subject: [mg50233] A Functional Measure of Roughness
• From: "Roger L. Bagula" <rlbtftn at netscape.net>
• Date: Sun, 22 Aug 2004 00:19:42 -0400 (EDT)
• Organization: bmftg/tftn
• Sender: owner-wri-mathgroup at wolfram.com

```In thinking of a way to get a better than Lyapunov , Hausdorff or
Kolmogorov
measure of dimension , I thought of this:
F(curve)=0  if smooth and continuous
F(curve)<>0  if rough or discontinuous
The best measure of dimensional roughness (Mandelbrot's way of
expressing it) is the
Lyapunov exponent (or maybe the Hurst exponent?).
Box counting or capacity/ entropy  dimension of the Kolmogorov type
is too big most of the time
while Hausdorff being very cut-off measure like
is usually too small.
The trouble with Lyapunov is that it depends on a derivative
and unless you are talking about a fractional derivative,
many fractal functions are of the Weierstrass fractal type
where the classical derivative doesn't exist.

I did some work on Bezier functions in IFS in the past
and fractional partial derivatives of an angular sort as well.
I came to realize that the three point Bezier function of an iterative
sequence in n:
Bezier[p,n]=p2*f(n+2+2*p*(1-p)*f(n+1)+(1-p)2*f(n)
is such that if smooth and continuous:
f(n+1)=Bezier[1/2,n]=f(n+2)/4+f(n+1)/2+f(n)/4
So that the function :
delta[n]=f(n+2)/4+f(n+1)/2+f(n)/4-f(n+1)
is a measure of the roughness.
Putting this measure in an Lyapunov average type function:
Measure[n]=Sum[Log[1+delta[i]],{i,1,n}]/n
I tried this out by comparing it to a known rough set, the primes
and it's Lyapunov integer difference average.
In this experiment the new Bezier roughness measure performs better than the
Lyapunov equivalent over the same range in detecting roughness.

Mathematica notebook:

(***********************************************************************

Mathematica-Compatible Notebook

This notebook can be used on any computer system with Mathematica 3.0,
MathReader 3.0, or any compatible application. The data for the notebook
starts with the line of stars above.

To get the notebook into a Mathematica-compatible application, do one of
the following:

* Save the data starting with the line of stars above into a file
with a name ending in .nb, then open the file inside the application;

* Copy the data starting with the line of stars above to the
clipboard, then use the Paste menu command inside the application.

Data for notebooks contains only printable 7-bit ASCII and can be
sent directly in email or through ftp in text mode.  Newlines can be
CR, LF or CRLF (Unix, Macintosh or MS-DOS style).

NOTE: If you modify the data for this notebook not in a Mathematica-
compatible application, you must delete the line below containing the
word CacheID, otherwise Mathematica-compatible applications may try to
use invalid cache data.

applications, contact Wolfram Research:
web: http://www.wolfram.com
email: info at wolfram.com
phone: +1-217-398-0700 (U.S.)

Notebook reader applications are available free of charge from
Wolfram Research.
***********************************************************************)

(*CacheID: 232*)

(*NotebookFileLineBreakTest
NotebookFileLineBreakTest*)
(*NotebookOptionsPosition[      4071,        149]*)
(*NotebookOutlinePosition[      4951,        177]*)
(*  CellTagsIndexPosition[      4907,        173]*)
(*WindowFrame->Normal*)

Notebook[{
Cell[BoxData[
\(Clear[delta, measure]\)], "Input"],

Cell[BoxData[
\(\(\((
\ *\ new\ roughness\ measure\ for\ one\ dimensional\ time\
series\)*)
\)\)], "Input"],

Cell[BoxData[
\( (*\ by\ Roger\ L . \ Bagula\ 20\ Aug\ 2004  \[Copyright]*) \)],
"Input"],

Cell[BoxData[
\( (*\ 3\ point\ Bezier\ roughness\ delta\ of\ the\ Primes*) \)],
"Input"],

Cell[CellGroupData[{

Cell[BoxData[
\(delta[n_] =
Abs[Prime[n + 2]/4 + Prime[n + 1]/2 + Prime[n]/4 - Prime[n + 1]]\)],
"Input"],

Cell[BoxData[
\(Abs[Prime[n]\/4 - 1\/2\ Prime[1 + n] + 1\/4\ Prime[2 + n]]\)],
"Output"]
}, Open  ]],

Cell[BoxData[
\( (*\ 3\ point\ Bezier\ roughness\ measure*) \)], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
\(measure[n_] = Sum[Log[1 + delta[i]], {i, 1, n}]/n\)], "Input"],

Cell[BoxData[
\(\(\[Sum]\+\(i = 1\)\%n Log[1 + delta[i]]\)\/n\)], "Output"]
}, Open  ]],

Cell[BoxData[
\(\(a = Table[measure[n], {n, 1, 250}]; \)\)], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
\(ListPlot[a]\)], "Input"],

Cell[BoxData[
TagBox[\(\[SkeletonIndicator]  Graphics  \[SkeletonIndicator]\),
False,
Editable->False]], "Output"]
}, Open  ]],

Cell[BoxData[
\(Clear[lya, f]\)], "Input"],

Cell[BoxData[
\( (*\ average\ Lyapunov\ recurrence\ measure*) \)], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
\(f[n_] = Sum[Log[Prime[i + 1] - Prime[i]], {i, 1, n}]/n\)], "Input"],

Cell[BoxData[
\(\(\[Sum]\+\(i = 1\)\%n Log[Prime[i + 1] - Prime[i]]\)\/n\)],
"Output"]
}, Open  ]],

Cell[BoxData[{
\(lya[n_Integer?Positive]\  :=
\(lya[n]\  =
\((\((n - 1)\)/n)\)*lya[n - 1] + Log[Prime[n + 1] -
Prime[n]]/n\)\),
\(lya\  = f; \nlya = f; \)}], "Input"],

Cell[BoxData[
\(\(b = Table[N[lya[n], 20], {n, 1, 250}]; \)\)], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
\(ListPlot[b]\)], "Input"],

Cell[BoxData[
TagBox[\(\[SkeletonIndicator]  Graphics  \[SkeletonIndicator]\),
False,
Editable->False]], "Output"]
}, Open  ]],

Cell[BoxData[
\( (*\ comparing\ the\ two\ measures*) \)], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
\(ListPlot[b - 2*a, PlotJoined -> \ True]\)], "Input"],

Cell[BoxData[
TagBox[\(\[SkeletonIndicator]  Graphics  \[SkeletonIndicator]\),
False,
Editable->False]], "Output"]
}, Open  ]]
},
FrontEndVersion->"Macintosh 3.0",
ScreenRectangle->{{0, 1920}, {0, 1060}},
ScreenStyleEnvironment->"Condensed",
WindowSize->{943, 950},
WindowMargins->{{182, Automatic}, {Automatic, 23}},
MacintoshSystemPageSetup->"\<\
00/0001804P000000_@2@?olonh35@9B7`<5:@?l0040004/0B`000003509H04/
02d5X5k/02H20@4101P00BL?00400@0000000000000000010000000000000000
0000000000000002000000@210D00000\>"
]

(***********************************************************************
Cached data follows.  If you edit this Notebook file directly, not using
Mathematica, you must remove the line containing CacheID at the top of
the file.  The cache data will then be recreated when you save this file
from within Mathematica.
***********************************************************************)

(*CellTagsOutline
CellTagsIndex->{}
*)

(*CellTagsIndex
CellTagsIndex->{}
*)

(*NotebookFileOutline
Notebook[{
Cell[1709, 49, 54, 1, 18, "Input"],
Cell[1766, 52, 126, 3, 18, "Input"],
Cell[1895, 57, 93, 1, 18, "Input"],
Cell[1991, 60, 92, 1, 18, "Input"],

Cell[CellGroupData[{
Cell[2108, 65, 119, 3, 18, "Input"],
Cell[2230, 70, 92, 1, 32, "Output"]
}, Open  ]],
Cell[2337, 74, 77, 1, 18, "Input"],

Cell[CellGroupData[{
Cell[2439, 79, 82, 1, 18, "Input"],
Cell[2524, 82, 79, 1, 34, "Output"]
}, Open  ]],
Cell[2618, 86, 73, 1, 18, "Input"],

Cell[CellGroupData[{
Cell[2716, 91, 44, 1, 18, "Input"],
Cell[2763, 94, 130, 3, 18, "Output"]
}, Open  ]],
Cell[2908, 100, 46, 1, 18, "Input"],
Cell[2957, 103, 79, 1, 18, "Input"],

Cell[CellGroupData[{
Cell[3061, 108, 87, 1, 18, "Input"],
Cell[3151, 111, 90, 1, 34, "Output"]
}, Open  ]],
Cell[3256, 115, 203, 4, 46, "Input"],
Cell[3462, 121, 76, 1, 18, "Input"],

Cell[CellGroupData[{
Cell[3563, 126, 44, 1, 18, "Input"],
Cell[3610, 129, 130, 3, 18, "Output"]
}, Open  ]],
Cell[3755, 135, 70, 1, 18, "Input"],

Cell[CellGroupData[{
Cell[3850, 140, 72, 1, 18, "Input"],
Cell[3925, 143, 130, 3, 18, "Output"]
}, Open  ]]
}
]
*)

(***********************************************************************
End of Mathematica Notebook file.
***********************************************************************)

Respectfully, Roger L. Bagula