[
https://issues.apache.org/jira/browse/MATH-1325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15151611#comment-15151611
]
Fran Lattanzio commented on MATH-1325:
--------------------------------------
I will generate a git patch for this - that would probably make it easier to
load up than a pull request. I'll also add some more unit tests, since that
will show how to bring everything together from a coding perspective.
In terms of multivariate derivatives: I haven't submitted anything yet. It's
basically trivial to generate the multidimensional stencils themselves (either
by solving the mutlivariate equations or, more simply, computing them as a
suitable tensor product of univariate ones). The trickier part(s) is in the
bandwidth selection. I will commit something to at least generate the
multivariate coefficients and add a fixed multivariate bandwidth selection
strategy, so at least there will be something. Smarter/more complex
multivariate bandwidth strategies can come later.
> Improve finite differencing infrastructure
> ------------------------------------------
>
> Key: MATH-1325
> URL: https://issues.apache.org/jira/browse/MATH-1325
> Project: Commons Math
> Issue Type: New Feature
> Reporter: Fran Lattanzio
> Priority: Minor
>
> The existing finite difference framework in commons math is a limiting
> because it accepts only fixed bandwidth parameters. Furthermore, the finite
> difference coefficients/descriptions are not exposed to the user in any
> reasonable fashion (e.g. a user doing a numerical ODE solve probably wants to
> just grab suitable coefficients from somewhere).
> Conceptually, I think the work of finite difference can be broadly divided
> into three tasks:
> 1. Generation of finite difference coefficients. Again, one should be able to
> do this and get the results outside of the context of taking an actual
> derivative. Ideally, we could generate coefficients for any flavor (forward,
> central, backward) and order.
> 2. Selection of the bandwidth. This is, to be honest, the trickiest part of
> computing a numerical derivative. There is some "art" to picking a proper
> bandwidth that will generate an accurate numerical derivative - there are two
> competing sources of error (roundoff, due to the finite representation of
> floating points; and truncation, due to the inherent nature of finite
> differences). Ideally, we want to pick a bandwidth that will minimize the
> *total* error.
> 3. Actually computing the finite difference derivative estimate. This is
> really easy once you have 1. and 2.
> 4. Extend 1-3 to include support for multivariate finite differences.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)