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
- Reply-to: tftn at earthlink.net
- 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. For more information on notebooks and Mathematica-compatible 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[1]\ = f[1]; \nlya[2] = f[2]; \)}], "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 tftn at earthlink.net, 11759Waterhill Road, Lakeside,Ca 92040-2905,tel: 619-5610814 : URL : http://home.earthlink.net/~tftn URL : http://victorian.fortunecity.com/carmelita/435/