_____________________________________________________________________________
Inhalt....: Rotationskörper, Polynom- und Splineinterpolation
Kategorie.: Unterrichtsmaterial
Mathematik: Analysis, Numerik
MuPAD.....: 4.0.0
Datum.....: 2007-05-14
Autoren...: Dr. Peter Kubach <kubach@studienkolleg-bochum.de>
Funktionen: subs, float, solve, int, interpolate, numeric::cubicSpline
Funktionen: plot, plot::Funktion2d, plot::Point2d, plot::XRotate
_____________________________________________________________________________
Wieviel Platz hat der Einsiedlerkrebs
in seinem neuen Haus?

Eine beliebte Anwendung des Analysisunterrichts ist die Berechnung von Rotationskörpern. In dieser Einheit berechnen wir das Volumen des oben abgebildeten Schneckenhauses, wobei wir den Rand durch eine Splinefunktion und ein Polynom interpolieren werden. Die zugehörigen Punkte sind dabei mit einer Schieblehre ermittelt worden.
Zunächst erfassen wir die Daten des Schneckenhauses durch eine Schieblehre. Die folgenden 20 Punkte sind dabei nicht äquidistant gewählt.
P1 := [0, 0]:
P2 := [3/2, 15/10]:
P3 := [25/10, 11/10]:
P4 := [3, 12/10]:
P5 := [4, 9/10]:
P6 := [45/10, 9/10]:
P7 := [5, 75/100]:
P8 := [55/10, 7/10]:
P9 := [6, 6/10]:
P10 := [65/10, 65/100]:
P11 := [7, 55/100]:
P12 := [75/10, 45/100]:
P13 := [8, 5/10]:
P14 := [85/10, 4/10]:
P15 := [9, 4/10]:
P16 := [10, 3/10]:
P17 := [105/10, 2/10]:
P18 := [11, 1/10]:
P19 := [115/10, 12/100]:
P20 := [12, 1/10]:
Wir fassen die Punkte in der Liste Punkte zusammen. Durch die Verwendung des Folgengenerators $ können beliebig viele Punkte erfasst werden.
Punkte := [P.i $ i=1..20]:
In der numeric Bibliothek finden wir die Prozedur zur Berechnung eines kubischen Splines. Der Doppelpunkt unterdrückt die Ausgabe. Ein kubischer Spline ist eine zweimal stetig differenzierbare Funktion, die auf jedem Teilintervall mit der Einschränkung eines Polynoms dritten Grades übereinstimmt. Splines haben für die Approximation hervorragende Approximationseigenschaften (siehe auch Aufgabe 2 am Ende dieser Lehreinheit).
Spline := numeric::cubicSpline(Punkte[i] $ i=1..20):
Wir wollen nun die Punkte und den Spline graphisch betrachten. Dazu erzeugen wir mit plot eine graphische Szene, die sowohl den Spline als Function2d als auch die Punkte mit Hilfe von Point2d darstellt.
plot(
plot::Function2d(Spline, x=0..12),
plot::Point2d(Punkte[i],PointSize=2, Color=RGB::Red) $ i=1..20,
GridVisible = TRUE,
Scaling=Constrained,
Height = 40
)

Wir lassen nun den Spline um die x-Achse rotieren. Bei der Darstellung des Rotationskörpers verzichten wir auf die Achsen des Koordinatensystems.
plot(
plot::XRotate(Spline, x=0..12, Submesh=[2,2],
FillColor = RGB::Brown,
FillColor2 = RGB::White
),
Axes = None
)

Das Volumen des Rotationskörpers berechnet sich nach der bekannten Formel.
Für die Splinefunktion wird der Ausdruck mit int nicht algebraisch exakt dargestellt, wir erhalten aber mit float eine Gleitpunktzahl.
PI * int((Spline(x))^2, x=0..12)

float(%)
![]()
Eine "grobe" Abschätzung des Volumens kann man auch durch geometrische Grundformen erhalten. Mit einem Kegel als Modell erhalten wir die folgende Näherung.
V := float(1/3*PI*(1.5)^2*12)
![]()
Wir stellen uns jetzt der Frage, ob man mit einer Polynomfunktion ähnlich eine gute Darstellung gewinnen kann. Zunächst stellen wir für sechs Punkte dar, wie man eine solche Polynomfunktion ermitteln kann. Durch sechs Punkte kann ein Polynom fünften Grades gelegt werden, welches wir zunächst definieren.
g := x -> a*x^5 + b*x^4 + c*x^3 + d*x^2 + e*x + h
![]()
Wir werten die Funktion g(x) an der erste Koordinate der Punkte P1 bis P6 aus, und formulieren sechs Bedingungen, sodass der Graph von g durch die Punkte verläuft. Damit erhalten wir als Ausgabe das folgende lineare Gleichungssystem.
GL1 := g(P1[1]) = P1[2];
GL2 := g(P2[1]) = P2[2];
GL3 := g(P3[1]) = P3[2];
GL4 := g(P4[1]) = P4[2];
GL5 := g(P5[1]) = P5[2];
GL6 := g(P6[1]) = P6[2];
![]()
![]()
![]()
![]()
![]()
![]()
Die Lösung erhalten wir mit solve, wobei die Gleichungen und die Koeffizienten des Polynoms zu übergeben sind.
L := solve({GL1, GL2, GL3, GL4, GL5, GL6}, {a,b,c,d,e,h})
![]()
Die Lösungen des linearen Gleichungssystems enthält die Werte für die Koeffizienten des gesuchten Polynoms . Wir setzen diese in g ein, indem wir schreiben: "g ist definiert als g unter den Bedingungen der Lösung L".
g := g | L
![]()
Die folgende Grafik zeigt, dass Polynome eine unangenehme Eigenschaft haben. Sie fangen leicht zu oszillieren an (siehe auch Aufgabe 1 am Ende dieser Lehreinheit).
plot(
plot::Function2d(g, x=0..4.5, Legend="Polynom vom Grad 5"),
plot::Function2d(Spline, x=0..4.5, Legend="Spline", Color=RGB::Olive),
plot::Point2d(Punkte[i], PointSize=3, Color=RGB::Red) $ i=1..6,
Scaling = Constrained,
GridVisible = TRUE
)

Das Interpolationspolynom kann mit dem Befehl interpoliere aber leichter ermittelt werden. Dabei sind zunächst eine Liste der x-Werte, eine Liste der y-Werte und die Variable x zu übergeben. Die Werte können leicht aus den gegebenen Punkten ausgelesen werden. Wir betrachten hier nur ein Polynom 9. Grades, also ein Interpolationspolynom, das durch zehn Punkte verläuft.
xWerte := [Punkte[n][1] $ n=1..10]
![]()
yWerte := [Punkte[n][2] $n=1..10]
![]()
k(x) := interpolate(xWerte, yWerte, x)
![]()
plot(
plot::Function2d(k(x), x=0..6.5, Legend="Polynom vom Grad 9"),
plot::Point2d(Punkte[i], PointSize=3, Color=RGB::Red) $ i=1..10,
GridVisible = TRUE,
SubgridVisible = TRUE
)

Da das Polynom im Intervall [0,1] eine starke Auslenkung besitzt, wird deutlich, dass die Approximation nicht realitätsnah sein kann. Die Werte für das Rotationsvolumen weichen stark von den bisher ermittelten Werten ab.
PI * int(k(x)^2, x = 0 .. 6.5)
![]()
float(%)
![]()
_____________________________________________________________________________
Aufgaben:
1. Ermitteln Sie zu den neun Punkten
P1( -4 | 0 ), P2( -3 | 0 ), P3( -2 | 0 ), P4( -1 | 0 ), P5( 0 | 0 ),
P6( 1 | 0 ), P7( 2 | 0 ), P8( 3 | 0 ), P9( 4 | 0 )
ein Interpolationspolynom und einen Interpolationsspline. Was fällt Ihnen auf? Beschreiben Sie Ihre Beobachtungen möglichst genau.
2. Interpolieren Sie die Funktion f(x)=1/(x^2+1) auf dem Intervall [0,2] durch ein Polynom und eine Splinefunktion. Beschreiben Sie Ihre Beobachtungen.
Anmerkungen:
1. Weitere Anmerkungen finden Sie auf den WebSeiten der MuPAD Education Group
unter http://schule.mupad.de.
2. Diese Arbeit geht auf einen Vortrag der Sommerakademie M@th C@mp 2004 für mathematisch begabte Schülerinnen und Schüler zurück. Der Autor dieser Lehreinheit hielt dort einen Vortrag mit dem Titel Explorative Mathematik - NRW hat Mumm. Weitere Informationen finden Sie auf der Homepage http://sam.tfh-bochum.net.
_____________________________________________________________________________