[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fw: [amibroker] Chaos:Introductory AFL notes



PureBytes Links

Trading Reference Links

Hello,

Actual code can be in fact even shorter:

function fN( N, x ) 
{ 
   for( i = 0; i < N; i++ ) 
   { 
     x= x^2-3/4; 
   } 
   
   return x; 
} 

Title = ""; 
for(i=-1.75;i<2;i=i+0.25) 
{ 
Title=Title+ 
StrFormat("i=%6.2f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f\n", 
i, 
fN( 1, i), fN( 5, i), fN( 10, i), fN( 50, i), fN( 100, i), fN( 500, i), fN( 1000, i)); 
} 

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "Tomasz Janeczko" <amibroker@xxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Wednesday, October 06, 2004 9:22 AM
Subject: Re: [amibroker] Chaos:Introductory AFL notes


> Hello,
> 
> You can also use iterative execution (results in shorter code)
> 
> function fN( N, x )
> {
>   for( i = 0; i < N; i++ )
>   {
>     x= x^2+1/4;
>   }
>  
>   return x;
> }
> 
> and call it 
> fN( 1000, 0.75 ); // this is equivalent to f1000( 0.75 )
> 
> Also to reduce time needed to compute you should avoid calling
> the same function with the same parameters twice (1st time in WriteIf and
> 2nd time in WriteVal) when it is only necessary to call it once: 
> 
> function fN( N, x ) 
> { 
>   for( i = 0; i < N; i++ ) 
>   { 
>     x= x^2-3/4; 
>   } 
>   
>   return x; 
> } 
> 
> Title = ""; 
> for(i=-1.75;i<2;i=i+0.25) 
> { 
> Title=Title+"\ni="+ 
> WriteIf(i>=0," ","")+WriteVal(i,1.2)+ 
> StrFormat("%6.2f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f %6.3f", 
> i, 
> fN( 1, i), fN( 5, i), fN( 10, i), fN( 50, i), fN( 100, i), fN( 500, i), fN( 1000, i)); 
> } 
> 
> 
> This code executes in 0.5 second or less (4 times faster).
> This simple example shows the how much speed can be gained by making the code
> optimal.
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message ----- 
> From: "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxxxxxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Wednesday, October 06, 2004 8:52 AM
> Subject: [amibroker] Chaos:Introductory AFL notes
> 
> 
>> 
>> 
>> AFL structure helps to reproduce the tables of
>> http://www.hypertextbook.com/chaos/11.shtml
>> The initial function is applied 1, 5, 10, 50, 100, 500 and 1000 times 
>> [!!]
>> In an Indicator builder window paste the
>> 
>> Title="The orbits of 9 seeds of the f(x)=x^2+1/4"; 
>> function f1(x)
>> {return x^2+1/4;}
>> function f5(x)
>> {return f1(f1(f1(f1(f1(x)))));}
>> function f10(x)
>> {return f5(f5(x));}
>> function f50(x)
>> {return f10(f10(f10(f10(f10(x)))));}
>> function f100(x)
>> {return f50(f50(x));}
>> function f500(x)
>> {return f100(f100(f100(f100(f100(x)))));}
>> function f1000(x)
>> {return f500(f500(x));}
>> for(i=-1;i<=1;i=i+0.25)
>> {
>> Title=Title+"\ni="+
>> WriteIf(i>=0," ","")+WriteVal(i,1.2)+
>> WriteIf(f1(i)>0,"   ","  ")+WriteVal(f1(i),1.3)+
>> WriteIf(f5(i)>0,"   ","  ")+WriteVal(f5(i),1.3)+
>> WriteIf(f10(i)>0,"   ","  ")+WriteVal(f10(i),1.3)+
>> WriteIf(f50(i)>0,"   ","  ")+WriteVal(f50(i),1.3)+
>> WriteIf(f100(i)>0,"   ","  ")+WriteVal(f100(i),1.3)+
>> WriteIf(f500(i)>0,"   ","  ")+WriteVal(f500(i),1.3)+
>> WriteIf(f1000(i)>0,"   ","  ")+WriteVal(f1000(i),1.3);
>> }
>> 
>> and, with a few changes, in a new IB window, paste the
>> 
>> Title="The orbits of 15 seeds of the f(x)=x^2-3/4"; 
>> function f1(x)
>> {return x^2-3/4;}
>> function f5(x)
>> {return f1(f1(f1(f1(f1(x)))));}
>> function f10(x)
>> {return f5(f5(x));}
>> function f50(x)
>> {return f10(f10(f10(f10(f10(x)))));}
>> function f100(x)
>> {return f50(f50(x));}
>> function f500(x)
>> {return f100(f100(f100(f100(f100(x)))));}
>> function f1000(x)
>> {return f500(f500(x));}
>> for(i=-1.75;i<2;i=i+0.25)
>> {
>> Title=Title+"\ni="+
>> WriteIf(i>=0," ","")+WriteVal(i,1.2)+
>> WriteIf(f1(i)>0,"   ","  ")+WriteVal(f1(i),1.3)+
>> WriteIf(f5(i)>0,"   ","  ")+WriteVal(f5(i),1.3)+
>> WriteIf(f10(i)>0,"   ","  ")+WriteVal(f10(i),1.3)+
>> WriteIf(f50(i)>0,"   ","  ")+WriteVal(f50(i),1.3)+
>> WriteIf(f100(i)>0,"   ","  ")+WriteVal(f100(i),1.3)+
>> WriteIf(f500(i)>0,"   ","  ")+WriteVal(f500(i),1.3)+
>> WriteIf(f1000(i)>0,"   ","  ")+WriteVal(f1000(i),1.3);
>> }
>> 
>> Glenn Elert, the author of this interesting book, writes :"...if you 
>> wait long enough..."
>> The AFL time is ~2sec and it is not bad at all !!
>> 
>> Dimitris
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Check AmiBroker web page at:
>> http://www.amibroker.com/
>> 
>> Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
>> Yahoo! Groups Links
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>


------------------------ Yahoo! Groups Sponsor --------------------~--> 
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/