Monthly Archives: November 2013

Constant Fractional Integral

Suppose that f(s) is a real or complex valued function defined for almost all s>0, and that n is a positive real number. Let \Gamma(n) denote the gamma function. The fractional integral I_n\,f is the function defined by I_n\,f(t)={{1}\over{\Gamma(n)}}\,\int_0^t\,{(t-s)^{n-1}\,f(s)\,ds} for all t>0 for which the integral exists (as a Lebsegue integral).

The fractional integral is a handy generalization of the ordinary operation of integration. The concept goes back to Liebnitz, who discussed the idea of a 1/2-th integral in a letter. The fractional integral is usually called the Riemann-Liouville integral.

If n is a positive integer, the fractional integral is simply repeated integration, as can be proved using integration by parts, or by using an inversion of the order of integration, eg via Fubini’s theorem. For instance, if n=1, then I_1\,f(t)={\int_0^t{\,f(s)\,ds}} since \Gamma(1)=1. If n=2, then I_2\,f(t)={\int_0^t{(t-s)\,f(s)\,ds}}. If n=3, then I_3\,f(t)={{{1}\over{2}}\,\int_0^t {(t-s)^2\,f(s)\,ds}}. And so on.

The fractional integration operator I_n has a neat property: if m and n are positive real numbers, then the operator I_m composed with the operator I_n equals the operator I_{m+n}. That is, the m-th integral of the n-th integral of a function f, equals the (m+n)-th integral of f. The equality is only almost everywhere, if m+n<1, since a fractional integral of order less than 1 of an arbitrary Lebesgue-integrable function is not necessarily defined for all argument values.

It is well known that, if an ordinary (order 1) integral of a function is equal to a constant, then the constant must be zero, and the function being integrated is almost everywhere equal to zero. That fact is used in many contexts, usually in some proof which concludes that a function must be zero because its integral is constant.

What is not widely known is that it is possible for a fractional integral, of order n where n lies between 0 and 1, to equal a nonzero constant. In fact, if the function f is defined by f(s)=s^{-n}, then the fractional integral I_n\,f(t) will be constant for all t>0. Up to multiplication by a fixed number, and alteration of the function f on a set of measure zero, the function f(s)=s^{-n} is the unique function whose n-th fractional integral is equal to a constant. These facts are detailed in a paper which I wrote quite a while ago; see “On fractional integrals equivalent to a constant”, in Canadian Mathematical Bulletin, vol 25, no 3, September 1982, pp 335-338.

Very recently, I discovered a simple insight into why the solution f(s) of the equation I_n\,f(t)=constant must be of the form f(s)=s^{-n}. It uses Euler’s concept of a homogenous function. See David Widder’s book “Advanced Calculus”, 2nd edition, 1961, pp 19-22 for a quick intro to the concept, and a proof of Euler’s theorem on homogenous function, and also a proof of the converse. Widder’s book is marvelously direct and clear on this and other topics; it is a real pleasure to read, and I recommend it for your enjoyment. However, one does not need to consult Widder for the following. One does not even need Euler’s theorem or its converse for solving the “constant fractional integral” problem. Just the concept of a homogenous function is sufficient.

A homogenous function of order k is a function of one or more real or complex variables, let’s say h(u,v) for illustration, such that for all real multipliers p, we have h(pu,pv)=p^k\,h(u,v). We can think of multiplying by p as a scale change, eg a change of units in a physical formula. Working with two variables, the expressions u^k, (v-u)^k, and (v-u)^{k-j}\,u^j are each homogenous of order k. Linear combinations of such forms are also homogenous of order k. The closure of the space of such forms, equipped with a reasonable metric, gets essentially all the homogenous functions of interest.

Now consider the constant fractional integral problem. Dropping the gamma function multiplier, let g(t)={\int_0^t\,{h(t,s)\,ds}}={\int_0^t{(t-s)^{n-1}f(s)ds}}
and suppose that g(t) is constant.  A constant is a homogenous function of order 0.  Integration of h(t,s) over the interval (0,t) raises the homogenous index of h(t,s) by 1, while reducing the number of independent variables by 1.  Hence the function f(s) must be homogenous of order k, where k satisfies 1+(n-1)+k=0.  That is, k = -n and f(s) is s^{-n} multiplied by some constant.

I was really happy to discover the above simple solution of the constant fractional integral problem.  I hope that you find something in the concept of fractional integral to enjoy or use in your own work.

Regards,

Ken Roberts

November 30, 2013

Blackberry Playbook Programming

The Blackberry Playbook tablet can be programmed, if you know the C language.  I was quite surprised to discover how open it is.  In case others are interested, here is the technique used:

– Download the Playbook software development kit (SDK) to your Windows PC.  Obtain a code-signing key.  That key can be used to publish apps to the app store.  However, it is not necessary to publish an app in order to be able to use it on your own playbook.

– In the SDK, write your app.  There are a number of sample apps available as code examples.  For instance, I wanted to write a rotating torus application, to learn some graphics programming.  Using the SDK, create a new project: File – New – Blackberry Tablet OS project, with the OpenGL ES 2.0 template.  When built and run, that program creates a 2-D coloured square which rotates.

– Modify the template code.  Strip out the square logic, and substitute code which defines the surface of a torus.  The torus is formed from an N1-sided polygon, approximating a circle of radius R1, which is rotated in space, N2 copies, around a larger circle of radius R2.  That forms the vertexes of the torus.  Those vertexes are used to define triangular patches of surface, which in GLES2 are referred to as elements.

– Also include code which rotates the torus around the x, y, or z axes, modifying the rotating square code.  Compile, debug, and run on the playbook until the code is working to satisfaction.

– BUT, a problem is encountered.  The torus surface is not being drawn correctly.  It turns out that the depth feature of GLES2 has not been enabled, in the screen initialization routine which is part of the bbutil.c library provided by Blackberry.  It is necessary to modify bbutil.c to include a spec “EGL_DEPTH_SIZE, 24″ in the “attrib_list” specs within the bbutil_init_egl routine.  Very fortunately, bbutil.c is provided as source code, and a distinct copy is set up with each newly created project, so it is easy to modify for this special situation.  Now the depth testing works satisfactorily.

The result: an enjoyable coding project, and a nice rotating torus on the screen.

As a further refinement, code was added to detect the position of user touches on the screen and cause the torus to change its rotation, based upon the location of the screen touch.  The test for the touch location is not as well documented as I needed, so here is the detail;  Inside the “handleScreenEvent” routine, after a SCREEN_EVENT_MTOUCH… event has been identified, include a call to get SCREEN_PROPERTY_SOURCE_POSITION into a pair of short integers.  Those will be the x and y coordinates of the screen touch, in pixels from the top left of screen.

Enjoy!

Ken Roberts

27-Nov-2013

Image

Yet Another Blog !!

Hello everyone!  Why am I writing this blog?  There are things I enjoy, that I wish to share.

This blog is called LASI2.wordpress.com, and the name stands for …

LOGIC — as in computer programs and mathematics.

ASTRONOMY — one of my scientific interests, from childhood.

SCIENCE — physics and other scientific interests.

IDEAS too — interests and ideas, not necessarily scientific.

Thanks for reading, and I hope you find something here of interest.

Best wishes,

Ken

26-Nov-2013