2022-08-21 22:32:14

Numerische Mathematik mit Matlab Teil 2

In unserem ersten Beitrag zur Numerischen Mathematik mit Matlab haben wir bereits die Vorzüge von Matlab zur Lösung von Problemen aus der Numerischen Mathematik vorgestellt. Der größte Vorteil ist, dass es eine Vielzahl vordefinierter Funktionen für numerische Lösungsverfahren und die Darstellung der Ergebnisse gibt, deren Anwendung wenig Programmieraufwand erfordert. So bietet Matlab Hilfe bei einigen mathematischen Problemen. In diesem Beitrag möchten wir einen Überblick über die einige Funktionen geben, die Matlab zur Lösung numerischer Probleme zur Verfügung stellt. Wir gehen hierbei auf die folgenden Beispiele ein, die häufig in Matlabaufgaben vorkommen:

  • Numerische Interpolationsverfahren
  • Numerische Lösungen in der linearen Algebra
  • Numerische Differentialrechnung und Integration

Numerische Interpolationsverfahren mit Matlab

Ziel der Interpolation ist es, zu gegebenen diskreten Datenpunkten eine stetige Funktion zu finden, welche die Daten bestmöglich abbildet. Diese stetige Funktion wird auch Interpolierende oder Interpolante genannt. Mit Hilfe der Interpolierenden können die Werte abgeschätzt werden, die zwischen den gegebenen diskreten Datenpunkten liegen.

Abbildung 1: Links: diskrete Datenpunkte; Rechts: Diskrete Datenpunkte mit dazugehöriger Interpolierenden

Aufgabe der Interpolation ist es, für jeweils zwei aufeinanderfolgende Datenpunkte eine neue Funktion zu finden, welche die beiden Punkte verbindet. Diese Funktion kann z.B. eine lineare Funktion ein Polynom (externer Link) höherer Ordnung sein. Manchmal wird zusätzlich gefordert, dass auch die Ableitung in den Punkten stetig sein soll. Dann spricht man von einer Hermite-Interpolation.

Matlabaufgaben zur Interpolation können ganz einfach mit der Funktion interpn() gelöst werden. Es müssen lediglich die Stützstellen, die korrespondierenden Werte und ggf. eine Interpolationsmethode ausgewählt werden. Die Funktion funktioniert für Daten mit beliebigen Dimensionen. Beispiel für einen kubischen Spline zu den Stützstellen  und den zugehörigen Werte der Sinusfunktion:

interpn(0:pi/4:2*pi,sin(0:pi/4:2*pi),‘cubic‘)

Numerische Lösungen in der linearen Algebra mit Matlab

Wie der Name vermuten lässt, wurde Matlab ursprünglich für die effiziente Berechnung von Matrixoperationen entwickelt. Nicht verwunderlich ist es also, dass einige Numerische Lösungsverfahren für Probleme aus der linearen Algebra in Matlab zur Verfügung stehen.

Ein Beispiel hierfür ist das Lösen linearer Gleichungssysteme. Unter Angabe der Matrix A und des Vektors B kann in Matlab das Gleichungssystem Ax=B mit der Funktion x = linsolve(A,B) gelöst werden. Das Inverse einer Matrix A kann simpel mit der Funktion inv(A) berechnet werden. Auch Eigenvektoren, spaltenweise dargestellt in der Matrix V, und Eigenwerte, als Einträge einer Diagonalmatrix D, lassen sich mit Hilfe der Funktion [V,D]=eig(A) schnell berechnen. Zur Bestimmung der Singulärwertzerlegung' wird die Funktion [U,S,V]=svd(A) genutzt.

Auch Matrix-Zerlegungen, wie sie in der numerischen Mathematik vielfach zur einfachen Lösung von mathematischen Problemen genutzt werden, können in Matlab aufwandsarm bestimmt werden. Beispiele hierfür sind die Funktion [L,U]=lu(A) für die LR-Zerlegung , die Funktion [Q,R]=qr(A) für die QR-Zerlegung  oder R=chol(A) für die Cholesky-Zerlegung .

Falls ihr Lösungen zu Matlabaufgaben anfertigen sollt, bei denen Matrizen-Rechnung gefortert ist, stehen euch einige effiziente Methoden zur Verfügung.

Numerische Differenzialrechnung und Intergration in Matlab

Wenn es um Ableitungen und Integralrechnungen geht, ist es manchmal nicht einfach, eine analytische Lösung zu finden, welche die Ableitung oder Integral geschlossen als Funktion darstellt. Vor allem bei komplexen, verschachtelten Funktionen, oder wenn lediglich zu der Funktion gehörige Daten, aber nicht die Funktionsgleichung selbst gegeben ist, stößt man mit Stift und Papier leicht an seine Grenzen. Bei den entsprechenden Matlabaufgaben sieht es anders aus!

Matlab stellt einige Funktionen zur Verfügung, die das numerische Ableiten und die numerische Integration sehr vereinfachen. Mit Hilfe der Funktion diff() kann beispielsweise eine Ableitung bestimmt werden. Hierfür wird der Grundgedanke des Differenzenquotienten aus der Analysis genutzt. Beispiel für die Ableitung der Sinusfunktion im Intervall  und der Schrittweite h=0,001:

h = 0.001;       % Schrittweite

X = -pi:h:pi;    % Stützstellen im Definitionsbereich

f = sin(X);      % zugeh. Werte der Sinusfunktion

Y = diff(f)/h;   % Erste Ableitung

Außerdem kann mit der Funktion gradient() der Gradient einer Funktion bestimmt werden.

Für die numerische Integration kann die Funktion integral() genutzt werden, die entweder eine Funktionsgleichung oder entsprechende Datenpunkte sowie die Integrationsgrenzen als Input erwartet. Beispiel für die Integration der Funktion  im Intervall :

fun = @(x) exp(-x.^2);     % Funktionsgleichung

q=integral(fun,0,1);       % Stützstellen im Definitionsbereich

Hilfe bei numerischen Problemen in Matlab – unsere Matlab-Hilfe

Matlab bietet eine große Hilfestellung bei der Lösung numerischer Probleme. Manchmal sind die Matlabaufgaben jedoch nicht alleine mit den voreingestellten Funktionen zu lösen. Als Mathelöser bieten wir euch daher die Möglichkeit, euch bei euren Problemen und Fragen bei Matlab zu unterstützen. Meldet euch dazu gerne per E-Mail. Wenn ihr konkrete Fragen zu einer Aufgabe habt, könnt ihr diese gerne bei uns hochladen  – wir unterstützen euch dann bei der Lösung der Aufgabe und senden euch eure Matlabaufgaben mit Lösung zurück!