Solver for rational and other equations
---------------------------------------
Key: MATH-250
URL: https://issues.apache.org/jira/browse/MATH-250
Project: Commons Math
Issue Type: Improvement
Affects Versions: 2.0
Reporter: Bernhard Grünewaldt
Priority: Minor
Fix For: 2.0
In addition to the existing PolynomialFunction class a RationalFunction class
would be a good idea.
http://en.wikipedia.org/wiki/Rational_function
For package:
http://commons.apache.org/math/userguide/analysis.html
The goal should be to calculate derivates of functions like:
f(x) = [ x + 2*x^3 ] / [ x -1]
or
f(x) = [ e^x + 2*x ] / [ cos(x) ]
Therefore it would be best to have classes for all the inner equations like
"e", "sin,cos,tan ...", "sqrt", a.s.o
These inner equations would then be put together to an outer equation.
This outer equation can then be derived using the "chain rule", "product rule"
and all other rules for getting the derivative.
One of this inner classes is the existing PolynomialFunction class from the
analysis package.
For easy rational functions the outer equation is of the form:
f(x) = PolynomialFunction / PolynomialFunction
Now just use the rule to derive it:
f(x) = g(x) / h(x) => f'(x) = [h(x) * g'(x) - g(x) * h'(x) ] / [ h(x) ]^2
Here we can use the inner derivate of the PolynomialFunction by calling
PolynomialFunction.derivative()
That's the idea, now the topics that have to be discussed:
1. We should have a parser that can parse the "standard mathematical notation"
into a tree of function classes.
http://en.wikipedia.org/wiki/Mathematical_notation
2. A class for every type of function should be implemented with an interface
that has the common methods like:
add(Object o)
subtract(Object o)
multiply(Object o)
divide(Object o)
derivative(Object o)
a.s.o
3. We need to implement Excptions that are thrown for sqrt(-1) a.s.o
4. We need a mother class that implements all the complex derivation rules like:
http://en.wikipedia.org/wiki/Chain_rule
http://en.wikipedia.org/wiki/Product_rule
a.s.o.
the sub classes the PolynomialFunction or the RationalFunction just
implement their derivation rules, but the mother class implements the complex
rules to derivate a complex structure of any type of equation by using the
inner derivation rules and the complex chain rules a.s.o
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.