Python - 202 Bytes
D=lambda p:[i*p[i]for i in range(1,len(p))]
A=lambda p,x:p>[]and p[0]+x*A(p[1:],x)
def N(p):f=D(p);s=D(f);x=1.;y=-x;exec'x-=A(f,x)/A(s,x);y-=A(f,y)/A(s,y);'*99;return A(p,x),A(p,y)
print min(N(input()))
11 bytes saved due to @xnor.
Input is taken from stdin, and is expected to be in the following format: [x0, x1, x2, ...]. For example, the sample in the problem description would be entered as [-12, 0, 0, 4, 0, 0, 6]
.
Functions
D - Calculates the derivative of a polynomial p.
A - Applies a polynomial p to the value x.
N - Uses Newton's Method to calculate local minima/maxima of a polynomial p.
Note: For higher order polynomials, there may be several local minima. In these cases, this function is not guaranteed to find the global minimum.
Sample Usage
$ echo [-12, 0, 0, 4, 0, 0, 6] | python poly-min.py
-12.6666666667
Does "ignore parsing issues" mean that we can assume the polynomial data is in any convenient form? E.g. can I accept the example polynomial as a list of coefficients
[-12, 0, 0, 4, 0, 0, 6]
? – DLosc – 2015-05-26T05:49:05.093What should be the output for polynomials whose minimum value is negative infinity, such as x^3? – DLosc – 2015-05-26T05:50:08.857
@DLosc yes that is acceptable, and I guess I should exclude those that don't have a finite number. Let's assume they exist in the space of R2, and are rational numbers. – ibanez221 – 2015-05-26T05:59:14.303
Is a local minimum acceptable ? – Michael M. – 2015-05-26T06:28:21.470
@Mig yes, but ideally the program will find all minima and select the smallest one (not just magnitude, so -100 is lower than -2). – ibanez221 – 2015-05-26T06:32:23.433