Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Recusively calculating curve length question
Replies: 2   Last Post: Nov 23, 2012 10:23 PM

 Messages: [ Previous | Next ]
 Brad Cooper Posts: 171 Registered: 12/8/04
Re: Recusively calculating curve length question
Posted: Nov 23, 2012 10:23 PM

Thanks Rouben

--
We know that there is intelligent life in the universe because they have
Lily Tomlin
"none (Rouben Rostamian)" <rouben@shady.> wrote in message
news:k8pbkr\$83f\$1@news.albasani.net...
> In article <GASrs.1180\$1k5.38@viwinnwfe01.internal.bigpond.com>,

>>I have spent quite a few hours trying to write a recursive routine
>>to calculate the length of a curve by adding up small secants.
>>
>>secantLen := proc(a, b, tolerance)
>>begin
>> L := sqrt( (X(b)-X(a))^2 + (Y(b)-Y(a))^2 ):
>> c := (a+b)/2:
>>
>> if L > tolerance then
>> L := secantLen(a, c, tolerance) + secantLen(c, b, tolerance):
>> end_if:
>>
>>return(L):
>>end_proc:
>>

>
> That termination condition is muddy. Try:
>
> secantLen := proc(a, b, tolerance)
> local L, c;
> L := evalf(sqrt( (X(b)-X(a))^2 + (Y(b)-Y(a))^2 )):
> if L < tolerance then
> return L;
> else
> c := (a+b)/2:
> return secantLen(a, c, tolerance) + secantLen(c, b, tolerance):
> end_if:
> end_proc:
>
> --
> Rouben Rostamian

The secret sauce is to declare L and c as local. I haven't programmed for 12
years, am very rusty. Your help has been fantastic!!

Thanks Rouben.

Regards,