Difference between revisions of "Nowhere differentiable continuous function"

From JSXGraph Wiki
Jump to navigationJump to search
Line 42: Line 42:
 
</source>
 
</source>
  
 +
=== Speed optimization ===
 +
 +
<jsxgraph width="500" height="500" box="box2">
 +
var bd = JXG.JSXGraph.initBoard('box2', {axis:true, boundingbox: [-5, 3, 5, -3]});
 +
var a = bd.create('slider', [[0.5,2],[2.5,2],[0,0.3,1]], {name:'a'});
 +
var b = bd.create('slider', [[0.5,1.5],[2.5,1.5],[0,20,100]], {name:'b'});
 +
var N = bd.create('slider', [[0.5,1.0],[2.5,1.0],[0,2,30]], {name:'N'});
 +
var f = function(x, suspendedUpdate){
 +
            var k, s=0.0, n, aa, bb;
 +
            if (!suspendedUpdate) {
 +
                n = N.Value();
 +
                aa= a.Value();
 +
                bb = b.Value();
 +
            }
 +
            for (k=1; k<n; k++) {
 +
                s += Math.pow(aa,k)*Math.cos(Math.pow(bb,k)*Math.PI*x);
 +
            }
 +
            return s;
 +
        };
 +
var c = bd.create('functiongraph', [f], {doAdvancedPlot:false, numberPointsHigh:6000, numberPointsLow:500, strokeWidth:1});
 +
</jsxgraph>
  
 
[[Category:Examples]]
 
[[Category:Examples]]
 
[[Category:Curves]]
 
[[Category:Curves]]

Revision as of 20:50, 22 September 2011

This page shows the graph of the nowhere differentiable, but continuos function

[math] f(x) = \sum_{k=1}^{N} a^k\cos(b^k\pi x), [/math]

where [math]0\lta\lt1[/math] and [math]ab\gt1+3/2\pi[/math].

Reference

Wei-Chi Yang, "Technology has shaped up mathematics comunities", Proceedings of the Sixteenth Asian Technology Conference in Mathmatics (ATCM 16), pp 81-96.

The underlying JavaScript code

 var bd = JXG.JSXGraph.initBoard('box', {axis:true, boundingbox: [-5, 3, 5, -3]});
 var a = bd.create('slider', [[0.5,2],[2.5,2],[0,0.3,1]], {name:'a'});
 var b = bd.create('slider', [[0.5,1.5],[2.5,1.5],[0,20,100]], {name:'b'}); 
 var N = bd.create('slider', [[0.5,1.0],[2.5,1.0],[0,2,30]], {name:'N'}); 
 var f = function(x){
            var k, s=0.0, n = N.Value(), aa= a.Value(), bb = b.Value(); 
            for (k=1; k<n; k++) {
                s += Math.pow(aa,k)*Math.cos(Math.pow(bb,k)*Math.PI*x);
            }
            return s;
         };
 var c = bd.create('functiongraph', [f], {
                    doAdvancedPlot:false, 
                    numberPointsHigh:15000, numberPointsLow:1000, 
                    strokeWidth:1});

Speed optimization