RE: [PEAR-DEV] New package proposal: Math_Calculus
| From: | Lukasz Karapuda | Date: | Sun, 18 May 2003 04:02:48 +0000 |
| Subject: | RE: [PEAR-DEV] New package proposal: Math_Calculus | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-16442@lists.php.net to get a copy of this message | ||
> Overall the idea is good. The implementation needs some work. For
example,
> a stable and reliable differentiation package could be use to solve
funding
> the roots of an equations using any of the well-known methods (e.g.
> Newton-Raphson's).
If you are considering developing a reliable and complete
differentiation package, take a look at http://www.phpmath.com.
It's a
major effort to create a complete mathematical toolkit for PHP (language
based). I am one of the administrators, and currently we are looking at
as many contributors as possible. Perhaps you could join our mailing
list. We currently have implemented Simple Linear Regression, Matrix
Operations and Linear Algebra.
Best Regards,
__________________________________________
Lukasz Karapuda [ lkarap00@mercyhurst.edu ]
Mercyhurst Web Developer
Y! lukaszkarapuda
-----Original Message-----
From: Johannes Schlueter [mailto:phpng@schlueters.de]
Sent: Saturday, May 17, 2003 10:03 AM
To: Jesus M. Castagnetto
Cc: pear-dev@lists.php.net
Subject: Re: [PEAR-DEV] New package proposal: Math_Calculus
On Friday 16 May 2003 23:45, you wrote:
> The class looks OK for simple functions withouth many singular points.
> As it stands now, I would not recommend its inclusion in PEAR: -1
Ok.
> 1) The name of the class: Perhaps you will be better of having 2 or
more
> Math_Numerical_Differentiation, Math_Numerical_Integration, etc. Or
how
> about a Math_Numerical (or Math_NumericalMethod or
Math_NumericalSolution?)
> class that works as facade to the ones implementing the algorithms?
Math_Numerical looks good, but then we need many method's with it, but
I'll
look how I can implement all useful Numerical Alogrithms with PHP ;-)
> 2) The implementation of your differentiation function, if you are
handed a
> non-continuous function, then you will be in trouble using the simple
> approach, w/o previously testing for continuity in the interval where
you
Yes, that's true. The version I posted was the work of very few hours,
just
for solving a problem I had. Therefore it worked. Then I saw there's no
such
thing for PEAR so I wrote some comments to see the reactions, imho it
don't
make sense spending hours of work if nobody wants it ;-)
> are calculating the derivative. A look at:
> http://lib-www.lanl.gov/numerical/index.html, and in particular
> at:
> http://lib-www.lanl.gov/numerical/bookfpdf/f5-7.pdf, will
> surely help
in
> this respect. Might also need to be careful not to generate an
floating
> point overflow.
The links look really interesting. All have a closer look over these an
improve my code.
> 3) The implementation of the Romberg's integration method tries to
minimize
> errors by using iterations of the trapezoidal rule. But for analytical
> functions, you might be better using other approaches.
Romberg'smethod was the one I've found most implementations for and the
one
I've understood easily ;-)
> 4) The method that finds point of a function where the derivative is
zero
> is OK, but it is of no use if it is not coupled with one that find the
> extrema (minima and maxima). Also, if might be better named
> findZeroDerivative() instead. Of course you will need to define a
second
> derivative method for the extrema.
Yes...
> Overall the idea is good. The implementation needs some work. For
example,
> a stable and reliable differentiation package could be use to solve
funding
> the roots of an equations using any of the well-known methods (e.g.
> Newton-Raphson's).
>
> The URL mentioned above has a lot of great numerical recipes. And as
we
> cannot add GSL to PECL due to licensing conflicts, perhaps
implementing
> them in PHP would be nice.
If I'm going to implement all of them I'll never be bored again. And if
I'm
still bored I can implement it using BCMath, GMP and PEAR Math_Complex.
;-)
johannes