RE: [PEAR-DEV] New package proposal: Math_Calculus

From: 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

« previous php.pear.dev (#16442) next »