Ableitung Sinus

Eingangs wurden diverse Beispiele aus Forschung und Industrie für den Einsatz von MATLAB gezeigt. Jedoch wird MATLAB zu einem Großteil für mathematische Probleme eingesetzt, die Ihnen im universitären Alltag begegnen.

 

Es soll in diesem Beispiel die Ableitung des Sinus mit MATLAB berechnet werden.

Geben Sie zunächst folgende Zeile in das Command Window ein:

>>x = 0:0.0001:(2.*pi);

Die Eingabe ist wie folgt zu lesen. Der Variable x wird ein Vektor zugewiesen. Dieser enthält Werte von 0 bis 2 * pi im Abstand von 0,0001. Die Doppelpunkte trennen Startwert, Abstand und Endwert der Eingabe. Es ist zu beachten, dass bei Eingaben in MATLAB die amerikanische Notation für Fließkommazahlen ( . statt ,) verwendet wird. 

 

In MATLAB ist es möglich das Semikolon am Ende eines Ausdruckes wegzulassen. Wird allerdings die Zeile mit einem Semikolon abgeschlossen, wird die Ausgabe im Command Window unterdrückt.

Ein Weglassen des Semikolons in obigem Beispiel würde zu einer sehr langen Ausgabe führen.

Testen Sie die Funktion des Semikolons mit untenstehendem Beispiel.

>>a = 1;

>>a = 1

 

MATLAB kann die Ableitung von einer Funktion nur numerisch für die in x gegebenen Werte berechnen. Das heißt MATLAB ermittelt für jeden Punkt die eigene Ableitung. Bei einem Intervall von 0 bis 2*pi und einer Schrittweite von 0.0001 ergibt das rund 62832 Auswertungspunkte! 

Mithilfe von der Funktion diff() können die Differenzen zwischen den Elementen eines Vektors berechnet werden. Mit

>>diff([1 2 5 10]);

erhält man den Vektor [1 3 5]. Man beachte, dass der Ausgansvektor immer um ein Element kleiner ist als der Eingangsvektor. Für die Ableitung der Sinus-Funktion werden so die Abstände zwischen den Werten berechnet.

>>y = diff(sin(x));

Es handelt sich hierbei um zwei ineinander geschachtelte Funktionen, nämlich die Funktionen diff() und sin().

 

Funktionen 

 

Eine Funktion besitzt einen oder mehrere Eingabewerte und einen oder mehrere Ausgabewerte. Im Falle der Funktion sin() wird hier der Vektor x übergeben und ein Vektor ausgegeben. Diesen Vektor speichert MATLAB standardmäßig in der Variable ans. Würden sie die Funktion sin(x); in das Command Window eingeben, erhielten Sie die Variable ans mit dem Ergebnis zurück.

Im obigen Ausdruck wird das Ergebnis von sin(x) nicht als Variable gespeichert, sondern direkt an die Funktion diff() übergeben. Die Funktion diff() berechnet die Differenz zwischen den einzelnen Funktionswerten. Das Ergebnis wird in der Variable y gespeichert.

Es wird also zunächst der Ausdruck sin(x) ausgewertet und anschließend der Ausdruck diff(sin(x)). Die errechneten Differenzen werden nun noch durch die Schrittweite dividiert.

 

>>y = y/0.0001;

 

Es wird zunächst jedes Element des Vektors y durch 0.0001 dividiert und dann wieder dem Vektor y zugewiesen. Die Auswertung der rechten Seite des Ausdrucks findet statt und wird zwischengespeichert. Die Zwischenspeicherung findet nicht mehr in der Variable y statt, so dass sie im nächsten Schritt wieder zum Speichern der neuen Werte genutzt werden kann.

Mit der Berechnung der in y gespeicherten Ableitung und der Ausgangswerte in x können wir nun die Ableitung darstellen.

Dazu wird der Funktion plot sowohl der Vektor x, als auch der Vektor y übergeben. Geben Sie hierfür folgende Zeile ein:

 

>>plot(x,y);

 

Sie werden eine Fehlermeldung erhalten, die Ihnen sagt, dass die Vektoren die gleiche Länge haben müssen. Die Funktion plot() stellt graphisch jeden y-Wert über dem dazugehörigen x-Wert dar. Durch die Ableitung mit diff(), die Differenzen zwischen den einzelnen x-Werten berechnet, gibt es jedoch einen y-Wert weniger als es x-Werte gibt. Es muss also der letzte x-Wert gelöscht werden.

 

>>x(length(x)) = [];

 

Die beiden eckigen Klammern stellen eine leere Menge da, die dem letzten Element im Vektor zugewiesen werden soll. Dafür muss das letzte Element des Vektors auf der linken Seite des Ausdrucks ausgewählt werden. x(1) würde zum Beispiel das erste Element im Vektor auswählen. Es wird hier der Wert length(x) übergeben. Die Funktion length() wertet die Länge des Vektors aus. Die Länge des Vektors entspricht dem Index des letzten Elements in diesem Fall.

Nach der Kürzung des Vektors führen Sie die Funktion plot(x,y); nochmals aus. Wie Sie sehen erfolgt eine graphische Ausgabe des Ergebnisses. Es stellt sich wie zu erwarten die Cosinus-Funktion dar.

Probieren Sie das gezeigte Vorgehen noch mit anderen Funktionen wie cos(x), tan(x) oder x.^2 aus.