66 views

### Claude

May 15, 2009, 9:41:14 AM5/15/09
to sage-support
Hi All,
Could somebody help me in programming, for example, the Hilbert
transform, or Mellin transform, taking Laplace one as a guideline.

### Burcin Erocal

May 15, 2009, 11:26:31 AM5/15/09
Hi Claude,

The documentation of both Hilbert and Mellin transform functions in
Maple seem to suggest that they use table lookups:

http://www.maplesoft.com/support/help/view.aspx?path=inttrans/hilbert

http://www.maplesoft.com/support/help/view.aspx?path=inttrans/mellin

In the Description section of the pages above, see item 4 in the first
link and 3 in the second one.

The pattern matching capabilities of the new symbolics will be useful
here. For some documentation and examples you can try:

sage: var('x,y',ns=1)
sage: x.subs?

Taking the documentation in the above links as a guideline, such a
function might:

- transform the given expression to a normal form, using some
simplification rules

- use the relevant lookup table to do the necessary substitutions

For now, it will be enough to come up with simplification rules that
apply only to expressions you're interested in. The lookup table can
also be restricted in this way. Do you have access to a table of
Hilbert/Mellin transforms relevant for you application?

Can you give examples of expected input and output for the transform
you want to implement?

Cheers,
Burcin

### Maurizio

May 15, 2009, 6:32:31 PM5/15/09
to sage-support
Interesting... it seems that every transform (Laplace, Fourier,
Hilbert, etc.) are evaluated trying lookup table method first (in
combination with partial decomposition or factorization probably), and
only if this method fails, the integration engine takes place. I'm
wondering whether this solution is the same adopted by mathematica et
al. I know this is certainly the best for speed, which is wonderful!
It seems it's also possible in maple to disable the integration if the
lookup method fails.
According to this, it seems that implementing transforms is just a
matter of providing a vast lookup table, provided that you have a
powerful enough pattern engine, gcd (probably the toughest one),
factorization and other basic stuff... Hopefully (most of) these are
coming with pynac, right?

Regards

Maurizio

### Claude

May 16, 2009, 5:13:40 PM5/16/09
to sage-support
First of all, I should precise I'm new to sage ...
I would like, as a first step, and with a sage script , define h as a
fonctional of f and variables t and s, as
h = function('hilbert',function(f),t,s); somewhat like :
sage: t,eps,s=var('t,eps,s')
sage: f=function('f',t)
sage: assume(eps>0)
sage: assume((s-eps)**2+1 >0) # (why ?)
sage: h(s)=limit(integral((f(s+t)-f(s-t))/t,t,eps,Infinity),eps=0)

I don't know how to define h(s) as a fonction of f(t).

Claude
> > Burcinsage: