PureBytes Links
Trading Reference Links
|
Dimitris<SPAN
class=906382300-30012004>,
<SPAN
class=906382300-30012004>
Thank
you. The depth of your AmiBroker skill is
amazing.
<SPAN
class=906382300-30012004>
Mr.
Valley
<FONT face=Tahoma
size=2>-----Original Message-----From: DIMITRIS TSOKAKIS
[mailto:TSOKAKIS@xxxxxxxxx]Sent: Thursday, January 29, 2004 7:32
AMTo: amibroker@xxxxxxxxxxxxxxxSubject: [amibroker] Re:
Successive Approximation in fallThis limitation is
due to the endless loop detection threshold [see comments below] in your
preferences. In my amibroker it was 100,000, so if the steps of the loop
are >100,000 it is "endless".Dimitris Tsokakis--- In
amibroker@xxxxxxxxxxxxxxx, "Mr Valley" <valleymj@xxxx> wrote:>
Why does one get an error message if you change precision to 8?> Is
this a limitation within AB? Shouldn't one be able to set it to
any> number?> Mr. Valley> -----Original
Message-----> From: DIMITRIS TSOKAKIS
[mailto:TSOKAKIS@xxxx]> Sent: Thursday, January 29, 2004
4:57 AM> To: amibroker@xxxxxxxxxxxxxxx>
Subject: [amibroker] Re: Successive Approximation in afl> >
> Herman,> We may have another approach
through while() statement.> [For the simplicity, the //next
decimals are in a loop form ]> > //Sqrt(X)
approximation> X=2;Precision=7;>
a=1;b=2;> st0=0.1;//the initial step>
z=0;> //1st decimal>
i=a;> while(i^2<X)>
{> z=i;> i=i+st0;>
}> //next decimals>
for(n=1;n<Precision;n++)> {>
st0=0.1*st0;> i=z;>
while(i^2<x)> {>
z=i;> i=i+st0;> }>
}>
Title="Sqrt("+WriteVal(X,1.0)+")="+WriteVal(z,1+0.1*n);>
> When we have the Sqrt(2)=1.41, the next loop will search
1.411,> 1.412, 1.413, 1.414, 1.415 and will stop there,
since 1.415 gives> false output.> In
this way, the 3rd loop needs 5 steps instead of 10. Since
decimals> will be equally disributed below and above 5
[I hope you dont always> search an 1.99999 !!] we gain
many steps.> Without this, one should begin from 1 and
search every 0.00001 up to>
1.41421.> This is done by the full code>
> //Sqrt(X) full approximation>
X=2;Precision=5;> a=1;b=2;>
st0=10^(-Precision);//the initial step>
z=0;> //decimals>
i=a;> while(i^2<X)>
{> z=i;> i=i+st0;>
}>
Title="Sqrt("+WriteVal(X,1.0)+")="+WriteVal(z,1+0.1*Precision);>
> and it is not the best choice !!>
> A simple criterion to see the difference, is your endless
loop> detection threshold.> If it is
set, for example, to 100000 iterations, the first method>
will permit Precision=7 whereas the 2nd[full] method will not go
more> than Precision=5.> >
The steps of the 1st method depend on the result : You will not
be> that lucky with Sqrt(3.56). It is 1.886796, all the
decimal digits> are >5 and the steps per digit will be
9+9+7+8+10+7 respectively !!> It is much better to
search Sqrt(2.2811), it is 1.510331 and will> take
6+2+1+4+4+2 steps per digit.> You may also put a small
counter to count the total steps of the> approximation, it
is interesting.> Dimitris Tsokakis> >
> > > --- In amibroker@xxxxxxxxxxxxxxx,
"Herman vandenBergen" <psytek@xxxx>>
wrote:> > Thank you DT, as usual your reply is not only
informative but> entertaining> > :-)
an 8x improvement in speed would be just fine. If my own>
solution is> > general I will post
it.> >> > I think I received
enough ideas to try a few things, solving a small> >
challenge with your owninput is half the fun and a better way
to> learn.> >>
> Thanks everybody and have a great day!> >
herman> > -----Original
Message-----> > From: DIMITRIS TSOKAKIS
[mailto:TSOKAKIS@xxxx]> > Sent: January 29,
2004 2:16 AM> > To:
amibroker@xxxxxxxxxxxxxxx> > Subject:
[amibroker] Re: Successive Approximation in afl>
>> >> >
Herman,> > my method is a bit
different.> > I begin with the 1st digit
accuracy [10 steps maximum, 1.0 to 1.9]>
> and localize> >
1.4<sqrt(2)<1.5> > Then, for the 2nd
digit, 10 steps [maximum] again to obtain> >
1.41<sqrt(2)<1.42> > and so
on.> > In the average, I need 5 steps per
digit and, for a 3-decimal> > accuracy it
will take about> > 5*5*5=125 steps instead
of the normal 1000.> > Archimedes, the
copyright of the method, was not working with>
> decimals.> > For some
reason [not explained anywhere], his first choice
was> the> > sevenths
of the unity 1/7, 2/7, 3/7 etc .> > So, in
his famous "Measurement of a Circle", he proves that>
> 3+1/7>pi>3+10/71> >
As you see, he slightly increases the denominator [he does
not> > increase the
numerator].> > There are some obscure
statements, he never explained, for>
example,> > how did he came to the [useful
approximation]> >
265/153<sqrt(3)<1351/780 [!!!].> >
but, we can not always have what we want...>
> Dimitris Tsokakis> > --- In
amibroker@xxxxxxxxxxxxxxx, "Herman vandenBergen">
<psytek@xxxx>> >
wrote:> > > thanks DT, I have to study
your code but I think you have the> >
general idea.> > > I have an impossible
formula to transform (it contains HHV and>
LLVs,> > > stochastic mutation) and want
to find the x that would give me>
the> > given y.>
> > Right now I linearly increment x untill I hit my
y-target,> this is> >
awfully> > > slow.>
> >> > > like y =
function(x); // y ranges 0-100 and I want 2 decimal>
places> > for x>
> > that gives me a given y>
> >> > > I thought
cutting the range in half, see whether it is greater>
or> > less, cut>
> > the result in half again, etc. I am not a math guy but I
have> used> > >
AD-converters that worked like that and what we can do in>
hardware> > we can do>
> > in software :-)> >
>> > > thanks for the starter
DT,> > > herman>
> >> >
>> > >>
> >> > >
-----Original Message-----> > > From:
DIMITRIS TSOKAKIS [mailto:TSOKAKIS@xxxx]> >
> Sent: January 28, 2004 9:18 PM> > >
To: amibroker@xxxxxxxxxxxxxxx> > >
Subject: [amibroker] Re: Successive Approximation in afl>
> >> >
>> > >
Herman,> > > You mean a
procedure like this> >
>> > >
a=1;b=2;z=0;> > >
st0=0.1;st1=0.01;st2=0.01;> >
> //1st decimal> >
> for(i=a;i<b;i=i+st0)> >
> {> > >
if(i^2<2 AND (i+st0)^2>2)> >
> z=i;> > >
}> > > //2nd
decimal> > >
for(i=z;i<z+st0;i=i+st1)> >
> {> > >
if(i^2<2 AND (i+st1)^2>2)> >
> z=i;> > >
}> > >
//...etc> > >
Plot(z,"sqrt(2)",1,1);> >
>> > > to find sqrt(2)
without using all the values from 1 to 2 ?>
> > Dimitris Tsokakis>
> > --- In amibroker@xxxxxxxxxxxxxxx, "Herman
vandenBergen"> >
<psytek@xxxx>> > >
wrote:> > > >
Hello,> > >
>> > > > has anybody
come accross a successive approximation routine>
in> > afl?>
> > Or> >
> > perhaps js?> >
> >> > >
> thanks,> > > >
herman> > >>
> >> >
>> > > Send BUG REPORTS to
bugs@xxxx> > > Send
SUGGESTIONS to suggest@xxxx> >
> ----------------------------------------->
> > Post AmiQuote-related messages ONLY
to:> amiquote@xxxxxxxxxxxxxxx>
> > (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)>
> >
-------------------------------------------->
> > Check group FAQ at:>
> > <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html>
> >> >
>> > >>
> >
---------------------------------------------------------------->
----> > -------->
> > --> > >
Yahoo! Groups Links> >
>> > > a.. To
visit your group on the web, go to:> >
> <A
href="">http://groups.yahoo.com/group/amibroker/>
> >> >
> b.. To unsubscribe from this group, send an email
to:> > >
amibroker-unsubscribe@xxxxxxxxxxxxxxx> >
>> > > c..
Your use of Yahoo! Groups is subject to the Yahoo!> Terms
of> > Service.>
>> >> >>
> Send BUG REPORTS to bugs@xxxx>
> Send SUGGESTIONS to suggest@xxxx>
> ----------------------------------------->
> Post AmiQuote-related messages ONLY to:
amiquote@xxxxxxxxxxxxxxx> > (Web page:
<A
href="">http://groups.yahoo.com/group/amiquote/messages/)>
>
-------------------------------------------->
> Check group FAQ at:> > <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html>
>> >> >>
>
-------------------------------------------------------------------->
--------> > --> >
Yahoo! Groups Links> >>
> a.. To visit your group on the web, go
to:> > <A
href="">http://groups.yahoo.com/group/amibroker/>
>> > b.. To unsubscribe from
this group, send an email to:> >
amibroker-unsubscribe@xxxxxxxxxxxxxxx>
>> > c.. Your use of Yahoo!
Groups is subject to the Yahoo! Terms of>
Service.> > > > Send BUG REPORTS to
bugs@xxxx> Send SUGGESTIONS to
suggest@xxxx>
-----------------------------------------> Post
AmiQuote-related messages ONLY to:
amiquote@xxxxxxxxxxxxxxx> (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)>
--------------------------------------------> Check group
FAQ at:> <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html>
> > >
---------------------------------------------------------------------------->
--> Yahoo! Groups Links>
> a.. To visit your group on the web, go
to:> <A
href="">http://groups.yahoo.com/group/amibroker/>
> b.. To unsubscribe from this group, send an
email to:>
amibroker-unsubscribe@xxxxxxxxxxxxxxx> >
c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service.Send BUG REPORTS to
bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Links
To visit your group on the web, go to:<A
href="">http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:<A
href="">amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
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 the Yahoo! Terms of Service.
|