Antwort mit KI erzeugt
MATLAB-Funktionen
In MATLAB können Sie Funktionen auf zwei Hauptweisen definieren: in einer separaten Datei für jede Funktion oder als anonyme Funktionen (wie das
inline
-Beispiel, das Sie verwendet haben). Für Ihre Aufgabe müssen Sie separate Funktionendateien erstellen, da dies zu einer besseren Organisierung und Einsatzmöglichkeit in größeren Projekten führt. Anonyme oder
inline
Funktionen sind für kleinere, schnelle Berechnungen oder Funktionen, die selten wiederverwendet werden, praktisch.
Teil (i): calcEulerLimit(n)
1. Öffnen Sie MATLAB.
2. Erstellen Sie eine neue Funktion, indem Sie im Editor auf "New" und dann auf "Function" klicken.
3. Ersetzen Sie den automatisch generierten Code durch den folgenden Code:
matlab
function eL = calcEulerLimit(n)
%CALCEULERLIMIT Berechnet die Approximation der Eulerschen Zahl
% mittels der Grenzwertdefinition
eL = (1 + 1/n)^n;
end
4. Speichern Sie die Funktion mit dem Namen
calcEulerLimit.m
.
Teil (ii): calcEulerSum(n)
1. Folgen Sie dem gleichen Verfahren wie oben und erstellen Sie eine neue Funktion.
2. Ersetzen Sie den generierten Code durch:
matlab
function eS = calcEulerSum(n)
%CALCEULERSUM Berechnet die Approximation der Eulerschen Zahl
% mittels der Summenformel und der MATLAB-Funktion factorial
eS = sum(arrayfun(@(k) 1/factorial(k), 0:n-1));
end
3. Speichern Sie die Funktion mit dem Namen
calcEulerSum.m
.
Teil (iii): calcEulerSum2(n)
1. Wiederholen Sie die Schritte für eine neue Funktion.
2. Ersetzen Sie den Code durch:
matlab
function eS = calcEulerSum2(n)
%CALCEULERSUM2 Berechnet die Approximation der Eulerschen Zahl
% mittels der Summenformel ohne die MATLAB-Funktion factorial
eS = 0;
for k = 0:n-1
eS = eS + 1/prod(1:k); % prod(1:k) ist gleich k!
end
end
3. Speichern Sie diese Funktion als
calcEulerSum2.m
.
Laufzeiten messen
Um die Laufzeiten dieser Funktionen zu messen, können Sie den folgenden MATLAB-Code verwenden:
matlab
n = 1000; % Beispiel für n
tic;
calcEulerLimit(n);
t1 = toc;
fprintf('Laufzeit calcEulerLimit: %f Sekunden.\n', t1);
tic;
calcEulerSum(n);
t2 = toc;
fprintf('Laufzeit calcEulerSum: %f Sekunden.\n', t2);
tic;
calcEulerSum2(n);
t3 = toc;
fprintf('Laufzeit calcEulerSum2: %f Sekunden.\n', t3);
Ändern Sie den Wert von
n
wie gewünscht, um mit verschiedenen Größen zu experimentieren. Beachten Sie, dass die Laufzeiten je nach Leistungsfähigkeit Ihres Computers variieren können.
Zusammenfassend, um Funktionen in MATLAB zu schreiben, sollten Sie separate Dateien für jede Funktion erstellen. Dies unterstützt die Wiederverwendbarkeit und übersichtliche Organisation Ihres Codes.