NB. work on limit from right of a function
lim =: 1 : 'u 1e_11 * 1 + <. 1e11 * y' NB. Arne Groeneveld gave me this
idea.
NB. This version evaluates u at a value greater than y, never at y itself.
NB. It attempts to approximate the limit from the right of u at y .
% lim 0
100000000000
NB. _
>. lim 0
1
NB. 1
<. lim 0
0
NB. 0
%@^. lim 1
99999991726.4636
NB. _
%@^. lim 0
_0.0394813165366593
NB. 0
((4%~])* 3 o. 1r2p1 * 1-]) lim 0
0.159155172017332
NB. 0.159155
(_4 0 1&p.%_2 1&p.) lim 2
4
NB. 4
--Kip Murray
Sent from my iPad
On Mar 2, 2013, at 10:08 AM, Aai <[email protected]> wrote:
> Different for me:
>
> 0=0.5^1022+i.5
> 0 0 0 0 0
>
> and
>
> 0=0.5^1071+i.5
> 0 0 0 0 1
>
>
> I noticed the following
>
> 0.5^1075
> 0
> 0.5^1074
> 4.94066e_324
>
> and decided to use i.1076.
>
>
>
> On 02-03-13 16:58, km wrote:
>> Arne, have you considered
>>
>> 0=0.5^1022+i.5
>> 0 1 1 1 1
>>
>> --Kip
>>
>> Sent from my iPad
>>
>>
>> On Mar 1, 2013, at 6:45 AM, Aai <[email protected]> wrote:
>>
>>> Here's a conjunction with the choice of left/right approach.
>>>
>>> It's like Raul's approach except it uses a bit more values and it compares
>>> successive values up to a limited number of decimals.
>>>
>>> limit=: 2 :'({~1 i.~(}.=}:))<.&.((10^11)&*) u y v 0.5^i.1076'
>>>
>>> tests:
>>>
>>> ((4%~])* 3 o. 1r2p1 * 1-]) limit + 0
>>> 0.159155
>>> (_4 0 1&p.%_2 1&p.) limit + 2
>>> 4
>>> (1&o.%]) limit + 0
>>> 1
>>> % limit + 0
>>> _
>>> % limit - 0
>>> __
>>> %@^. limit + 0
>>> 0
>>> %@^. limit - 0
>>> 0
>>> %@^. limit + 1
>>> _
>>> >. limit - 0
>>> 0
>>> >. limit + 0
>>> 1
>>>
>>>
>>>
>>>
>>> On 28-02-13 22:28, km wrote:
>>>> Here is what I did
>>>>
>>>> NB. right hand limit of a function
>>>> lim =: 1 : 0
>>>> value =. u y + (2^_44)
>>>> if. value <: - 2^40 do. __
>>>> elseif. value >: 2^40 do. _
>>>> elseif. do. value
>>>> end.
>>>> )
>>>>
>>>> It does "reasonably well" but can be fooled, for example
>>>>
>>>> ] lim 2^40
>>>> _
>>>>
>>>> Here it does better
>>>>
>>>> *: lim 1000
>>>> 1000000
>>>> dq =: 1 : (':'; 'y %~ (u x+y) - u x') NB. difference quotient
>>>> 2&(^&3 dq)lim 0 NB. derivative of x^3 at 2 is 12
>>>> 12
>>>>
>>>> --Kip
>>>>
>>>> Sent from my iPad
>>>>
>>>>
>>>> On Feb 28, 2013, at 7:19 AM, Raul Miller <[email protected]> wrote:
>>>>
>>>>> Here's a model implementation:
>>>>>
>>>>> lim=: (1 :0)("0)
>>>>> tests=. u ((1e_6*1>.|y)*0.5^i.1000)+y
>>>>> tests {~{.I.((1 }. 0&~:) * 2 ~:/\ ])(,2:)(*!.0)2 -/\ tests
>>>>> )
>>>>>
>>>>> My assumptions are:
>>>>>
>>>>> (1) the limit in question is relatively stable (that my choices for
>>>>> epsilon are adequate)
>>>>>
>>>>> (2) that the result of limit should be a consistent number.
>>>>>
>>>>> Note that (2) means that _ and __ will typically not be returned,
>>>>> since they are inconsistent numbers (but, since they are inconsistent,
>>>>> it's impossible to make an entirely consistent guarantee about their
>>>>> treatment).
>>>>>
>>>>> (1&o.%]) lim 0
>>>>> 1
>>>>> % lim 0
>>>>> 2.67877e306
>>>>> -@% lim 0
>>>>> _2.67877e306
>>>>>
>>>>> For my purposes, these "e306" values are close enough to infinity to
>>>>> be treated as such.
>>>>>
>>>>> Note also that I'm probably being a bit too aggressive with the number
>>>>> of epsilon values I'm using.
>>>>>
>>>>> If you really want _ and __ results, you could use something like this:
>>>>>
>>>>> lim=: (1 :0)("0)
>>>>> tests=. u ((1e_6*1>.|y)*0.5^i.1000)+y
>>>>> 1e_3*1e3* tests {~{.I.((1 }. 0&~:) * 2 ~:/\ ])(,2:)(*!.0)2 -/\ tests
>>>>> )
>>>>>
>>>>> However, note that this is a heuristic and its ability to force the
>>>>> result to be an inconsistent infinity depends on the stability u (and
>>>>> also depends on the actual limit value). I place less faith in this
>>>>> mechanism than in the ability of the user to recognize that the result
>>>>> should be thought of as infinite (and if the user does not understand
>>>>> what's going on well enough to make that determination it's hard to
>>>>> imagine how this distinction could be useful).
>>>>>
>>>>> FYI,
>>>>>
>>>>> --
>>>>> Raul
>>>>>
>>>>> On Wed, Feb 27, 2013 at 10:55 PM, km <[email protected]> wrote:
>>>>>> Can you write an adverb lim so that
>>>>>>
>>>>>> sin =: 1&o.
>>>>>>
>>>>>> (sin % ])lim 0
>>>>>> 1
>>>>>>
>>>>>> % lim 0 NB. limit is from right
>>>>>> _
>>>>>>
>>>>>> -@% lim 0
>>>>>> __
>>>>>>
>>>>>>
>>>>>> Kip Murray
>>>>>>
>>>>>> Sent from my iPad
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> --
>>> Met vriendelijke groet,
>>> @@i = Arie Groeneveld
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>
> --
> Met vriendelijke groet,
> @@i = Arie Groeneveld
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm