# Polynomfunktion dritten Grades

## Problembeschreibung

*****************************************
Dokumentnummer: D1226
Quelle: Johann Weilharter,
              Reniets 3,251
*****************************************
Von einer Polynomfunktion dritten Grades kennt man einen
relativen Hochwert (Maximum) und einen Wendepunkt.
Aus diesen Punkten soll die Polynomfunktion bestimmt werden.

Bringt die Information etwas, dass es sich beim Extremwert um
einen Hochpunkt handelt?

## Problemlösung

EINGABE

H:read("Gib den Hochwert in [] ein");

W:read("Gib den Wendepunkt in [] ein");

Anmerkung: Mit read()kann man Daten eingeben, z.B.
                      a) Zahlen
                      b)Objekte wie Gleichungen
                      c)Listen in eckigen Klammern
                      d) Funktionen

VERARBEITUNG

x1:H[1];

y1:H[2];

x2:W[1];

y2:W[2];

Anmerkung: Listen bestehen aus indizierten Variablen, z.B.
                       H aus H[1] und H[2] und
                       W aus W[1] und W[2]

g(x,y):=y=a*x**3+b*x**2+c*x+d;

Anmerkung: allgemeiner Ansatz für ein Polynom dritten Grades.
                       Die Funktionsschreibweise ist praktisch zum Erstellen
                       von Gleichungen, wie sich im folgenden zeigt.

g1:g(x1,y1);

g2:g(x2,y2);

Anmerkung: die ersten beiden Gleichungen können aus dem allgemeinen
                       Ansatz erstellt werden.

f(x):=a*x**3+b*x**2+c*x+d;

Anmerkung: allgemeine Schreibweise einer Polynomfunktion dritten Grades.

ab:diff(f(x),x);

Anmerkung: Bestimmung der Ableitung der Polynomfunktion dritten Grades.

g3:ev(ab,x=x1)=0;

Anmerkung: Notwendige Bedingung für das Auftreten eines Extremwerts
                      ergibt die dritte Gleichung.
                      ev(ab,x=x1)wertet die erste Ableitung an der Stelle x = x1
                      aus. "ev" steht für evaluate. 

ab2:diff(ab,x);

Anmerkung: Bestimmung der zweiten Ableitung der Polynomfunktion
                      dritten Grades.

g4:ev(ab2,x=x2)=0;

Anmerkung: die Auswertung der zweiten Ableitung für x = x2 muss
                      NULL gesetzt werden. Das ist die notwendige Bedingung
                      für das Auftreten eines Extremwerts.

l:solve([g1,g2,g3,g4],[a,b,c,d]);

Anmerkung: die Lösung des Gleichungssystems wird als Listenobjekt l
                       definiert, damit können die Koeffizienten ausgewertet werden, 
                       wie man im folgenden sieht:

A:a,l[1][1];

B:b,l[1][2];

C:c,l[1][3];

D:d,l[1][4];

Polynom:y=A*x**3+B*x**2+C*x+D;

Anmerkung: Potenzen können auch als x^n geschrieben werden.
                      Aus den Koeffizienten wird die gesuchte Polynomfunktion
                      zusammengesetzt.

AUSGABE

print("Die gesuchte Funktion ist",Polynom)$

Anmerkung: print() ist eine Ausgabeanweisung. Mit "$" am Zeilenende anstelle
                       von ";" wird ein Ausgabecho unterdrückt.