Definition
Die Maxima und Minima einer gegebenen Funktion sind die größten und kleinsten Werte der Funktion entweder innerhalb eines gegebenen Bereichs oder auf andere Weise innerhalb des gesamten Bereichs der Funktion.
Herausforderung
Die Herausforderung besteht darin , die lokalen Maxima und Minima einer gegebenen Polynomfunktion mit einer beliebigen Methode zu finden . Keine Sorge, ich werde mein Bestes geben, um die Herausforderung zu erklären und sie so einfach wie möglich zu halten.
Die Eingabe enthält alle Koeffizienten des einzelnen variablen Polynoms in abnehmender oder zunehmender Reihenfolge der Potenz (bis zu Ihnen). Beispielsweise,
[3,-7,1]
wird vertreten3x2 - 7x + 1 = 0
[4,0,0,-3]
wird vertreten4x3-3=0.
Wie löst man (mit Derivaten)?
Nehmen wir an, unser Input ist [1,-12,45,8]
, was nichts anderes als die Funktion ist .x3 - 12x2 + 45x + 8
Die erste Aufgabe besteht darin, die Ableitung dieser Funktion zu finden. Da es sich um eine Polynomfunktion handelt, ist dies in der Tat eine einfache Aufgabe.
Die Ableitung von ist . Alle konstanten Terme, die mit vorhanden sind, werden einfach multipliziert. Wenn Terme addiert / subtrahiert werden, werden auch deren Ableitungen addiert bzw. subtrahiert. Denken Sie daran, dass die Ableitung eines konstanten numerischen Werts Null ist. Hier einige Beispiele:
xn
n*xn-1
xn
x3 -> 3x2
9x4 -> 9*4*x3 = 36x3
-5x2 -> -5*2*x = - 10x
2x3 - 3x2 + 7x -> 6x2 - 6x + 7
4x2 - 3 -> 8x - 0 = 8x
Lösen Sie nun die Gleichung, indem Sie das neue Polynom mit Null gleichsetzen und nur die Integralwerte von x erhalten.
Setzen Sie diese Werte von x in die ursprüngliche Funktion und geben Sie die Ergebnisse zurück. Das sollte die Ausgabe sein .
Beispiel
Nehmen wir das zuvor erwähnte Beispiel [1,-12,45,8]
.
- Eingang:
[1,-12,45,8]
- Funktion:
x3 - 12x2 + 45x + 8
- Derivat ->
3x2 - 24x + 45 + 0 -> [3,-24,45]
- Lösen wir die Gleichung , erhalten wir oder .
3x2 - 24x + 45 = 0
x = 3
x = 5
- Setzen wir nun
x = 3
undx = 5
in die Funktion, erhalten wir die Werte(62,58)
. - Ausgabe ->
[62,58]
Annahmen
Angenommen, alle Eingabekoeffizienten sind ganze Zahlen . Sie können in zunehmender oder abnehmender Reihenfolge der Leistung sein.
Angenommen, die Eingabe ist mindestens ein 2-Grad-Polynom . Wenn das Polynom keine ganzzahligen Lösungen hat, können Sie alles zurückgeben.
Angenommen, das Endergebnis ist nur eine ganze Zahl.
Sie können die Ergebnisse in beliebiger Reihenfolge ausdrucken. Der Grad des Eingabepolynoms würde nicht mehr als 5 betragen, damit Ihr Code damit umgehen kann.
Die Eingabe ist gültig, sodass die Lösungen von x keine Sattelpunkte sind.
Auch Sie nicht , es zu tun durch die Ableitung Methode gezwungen. Sie können jede Methode verwenden, die Sie möchten.
Sample Input und Output
[2,-8,0] -> (-8)
[2,3,-36,10] -> (91,-34)
[1,-8,22,-24,8] -> (-1,0,-1)
[1,0,0] -> (0)
Wertung
Das ist Code-Golf, also gewinnt der kürzeste Code.
(-1, 0, 1)
, was meiner Meinung nach die richtige Antwort ist ... ich bin mir jedoch nicht sicher. Wenn Sie mit mir nicht einverstanden sind, rufen Sie mich im Chat an.
The input will be valid so that the solutions of x are not saddle points
[1,0,0,3]
scheint der Fall einen Sattelpunkt zu geben.
x^3 - 12x^2 + 45x
+ 8 = 0
, obwohl ich persönlich lieber schreibe als f(x)=x^3-12x^2+45x+8
ohne, =0
weil =0
es keinen Sinn macht, da es sich um eine Funktion handelt und keine Gleichung gelöst wird.