Lösungen der Aufgaben rüberkopiert.

This commit is contained in:
2024-02-26 16:58:38 +01:00
parent be933b27d3
commit e81056717e
39 changed files with 449 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
%Zuweisung der Variablen
x = 1;
y = 2;
z = 3;
%Speichern des Workspaces
save Aufgabe1_c;
%Löschen der Inhalte aus dem Workspace
clear;
%Erneutes Laden des Workspaces, welches zuvor gepeichert wurde
load Aufgabe1_c.mat;

View File

@@ -0,0 +1,5 @@
%Zuweisung der Matrix x
x = [1 2 3; 4 5 6];
x'
%-> x' zeigt die transponierte Matrix in der Kommandozeile an.

View File

@@ -0,0 +1,27 @@
%Zuweisung einer Variable
x = 3;
fprintf('x = %f\n', x);
%1. Bildung des Zehnerlogharitmus
y = log10(x);
fprintf('Bildung des Zehnerlogharitmus: y = log10(x) = %f\n', y);
%2. Bildung des natürlichen Logharitmus
y = log(x);
fprintf('Bildung des natürlichen Logharitmus: y = log(x) = %f\n', y);
%3. Runden auf den nächstgrößeren Integer-Wert
y = ceil(y);
fprintf('Runden auf den nächstgrößeren Integer-Wert: y = ceil(y) = %f\n', y);
%4. Bildung des Absolutbetrags
a = -5;
fprintf('a = %f\n', a);
a = abs(a);
fprintf('Bildung des Absolutbetrags: a = abs(a); = %f\n', a);
%5. Bildung des konjugiert komplexen Werts einer komplexen Zahl
Z = 7 + 9j;
fprintf('Z = %d + %dj\n', real(Z), imag(Z));
Z = conj(Z);
fprintf('Bildung des konjugiert komplexen Werts einer komplexen Zahl Z = conj(Z) = %d + %dj\n', real(Z), imag(Z));

View File

@@ -0,0 +1,3 @@
Z_1 = pi/2j;
Z_2 = -3 + 0.25j;
Z_3 = 1.25 - 0.58j;

View File

@@ -0,0 +1,10 @@
j = 3;
j_1 = 1i;
j_2 = 1j;
j_3 = i*i;
j_4 = j*j;
j_5 = 1j*1j;
j_6 = 1i*1j;
j_7 = i*j;
j_8 = 1e3*(-3+j);
j_9 = 1e3*(-3+1j);

View File

@@ -0,0 +1,30 @@
%a) Anlegen der Matrix A
A = [1 3 7 6; -3 2 8 5; 1.4 6 2 12];
%b) Erstellen der Nullmatrix B mit drei Zeilen und drei Spalen
B = zeros(3);
% Spalten 1, 3 und 4 von A in die Spalten 1, 2 und 3 von B kopieren
B(:,1) = A(:,1);
B(:,2) = A(:,3);
B(:,3) = A(:,4);
%c)Transponieren der Matrix B
B = B';
%d) Berechnung der Determinanten der Matrix B
D = det(B);
%e)
x = linspace(0, 2*pi, 100);
f = sin(x + pi/4);
%plot(x, f);
%f
anz_spalten = size(A,1);
anz_zeilen = size(A,2);
V = [1; 2; 3];
M = [1 2 3 4; 5 6 7 8; 9 10 11 12];
V_length = length(V);
M_length = length(M);
%-> length gibt immer die Länge der größten Dimension zurück.

View File

@@ -0,0 +1,6 @@
function [Mittelwert, Standardabweichung] = myfunc(Eingangsvektor)
%Eine Funktion, die aus den Elementen eines Eingangsvektors den Mittelwert
% und die Standardabweichung ermittelt und beide Werte zurückgibt.
Mittelwert = sum(Eingangsvektor) / length(Eingangsvektor);
Standardabweichung = std(Eingangsvektor);
end

View File

@@ -0,0 +1,8 @@
function myfunc(Arg)
%Programmierung, Parameterübergabe
fprintf('Eingangsparameter: %f\n', Arg);
Arg = Arg + 1;
fprintf('Parameter nach Bearbeitung: %f\n', Arg);
end
%Es wird nur der Wert übernommen, nicht die Referenz.

View File

@@ -0,0 +1,19 @@
function res = vecAddition(v1,v2)
%Addition von zwei Vektoren
%Überprüfen, ob beide Objekte Vektoren sind
if not(isvector(v1) && isvector(v2))
error('Mindestens einer der beiden Objekte ist kein Vektor.');
end
%Prüfen, ob beide Vektoren selbe Dimension haben
if not(length(v1) == length(v2))
error('Die Vektoren haben unterschiedliche Dimensionen.');
end
%Umwandlung in Spaltenvektor
v1 = v1(:);
v2 = v2(:);
%Addition beider Vektoren
res = v1 + v2;
end

View File

@@ -0,0 +1,9 @@
function D = Drehmatrix(winkel)
%Berechnung der zweidimensionalen Drehmatrix; Winkel in Grad.
%Umrechnung in Rad
winkelRad = (winkel * pi) / 180;
%Generierung der Drehmatrix
D = [cos(winkelRad) -sin(winkelRad); sin(winkelRad) cos(winkelRad)];
end

View File

@@ -0,0 +1,10 @@
function x = Drehung(winkel, vektor)
%Dreht den gegebenen 2D-Spaltenvektor um den angegebenen Winkel.
%Erstellen der Drehmatrix
D = Drehmatrix(winkel);
%Drehung, durch Multiplikation mit der Drehmatrix
vektor=vektor(:);
x = D * vektor;
end

View File

@@ -0,0 +1,8 @@
function x = linTransfEbene(winkel, vektor, verschiebungsvektor)
%...
%Drehung des Vektors
x = Drehung(winkel, vektor);
%Verschiebung des Vektors
x = x + verschiebungsvektor;
end

View File

@@ -0,0 +1,22 @@
%Radius wird frei gewählt mit R = 1
R = 1;
%X und Y Ebene werden definiert
[X, Y] = meshgrid(-1:0.01:1);
%Elemente für Z werden mit Umformung der Formel R^2 = X^2 + Y^2 + Z^2 berechnet
Z = sqrt(R^2 - X.^2 - Y.^2);
%Darstellung der oberen Hälfte
surf(X, Y, real(Z), EdgeColor="none");
hold on;
%Darstellung der unteren Hälfte
surf(X, Y, real(-Z), EdgeColor="none");
axis equal;%Gleichmäßige Achsenverhältnisse
xlabel("X");
ylabel("Y");
zlabel("Z");
title("Kugeloberfläche");
annotation("textarrow", [0.2, 0.5], [0.6, 0.5], String="Mitte des Bildes");

View File

@@ -0,0 +1,22 @@
%Radius wird frei gewählt mit R = 1
R = 1;
%X und Y Ebene werden definiert
[X, Y] = meshgrid(-1:0.01:1);
%Elemente für Z werden mit Umformung der Formel R^2 = X^2 + Y^2 + Z^2 berechnet
Z = sqrt(R^2 - X.^2 - Y.^2);
%Darstellung der oberen Hälfte
mesh(X, Y, real(Z));
hold on;
%Darstellung der unteren Hälfte
mesh(X, Y, real(-Z));
axis equal;%Gleichmäßige Achsenverhältnisse
xlabel("X");
ylabel("Y");
zlabel("Z");
title("Kugeloberfläche");
annotation("textarrow", [0.2, 0.5], [0.6, 0.5], String="Mitte des Bildes");

View File

@@ -0,0 +1,22 @@
%Radius wird frei gewählt mit R = 1
R = 3;
[PHI, THETA] = meshgrid(linspace(0, 2*pi, 50), linspace(0, pi, 50));
X = R * sin(THETA) .* cos(PHI);
Y = R * sin(THETA) .* sin(PHI);
Z = R * cos(THETA);
%Darstellung der oberen Hälfte
surf(X, Y, Z, EdgeColor="none");
hold on;
%Darstellung der unteren Hälfte
surf(X, Y, Z, EdgeColor="none");
axis equal;%Gleichmäßige Achsenverhältnisse
xlabel("X");
ylabel("Y");
zlabel("Z");
title("Kugeloberfläche");
annotation("textarrow", [0.2, 0.5], [0.6, 0.5], String="Mitte des Bildes");

View File

@@ -0,0 +1,23 @@
%Radius wird frei gewählt mit R = 1
R = 3;
[PHI, THETA] = meshgrid(linspace(0, 2*pi, 50), linspace(0, pi, 50));
X = R * sin(THETA) .* cos(PHI);
Y = R * sin(THETA) .* sin(PHI);
Z = R * cos(THETA);
%Darstellung der oberen Hälfte
%surf(X, Y, Z, EdgeColor="none");
fsurf('x^2')
hold on;
%Darstellung der unteren Hälfte
%surf(X, Y, Z, EdgeColor="none");
axis equal;%Gleichmäßige Achsenverhältnisse
xlabel("X");
ylabel("Y");
zlabel("Z");
title("Kugeloberfläche");
annotation("textarrow", [0.2, 0.5], [0.6, 0.5], String="Mitte des Bildes");

View File

@@ -0,0 +1,30 @@
% Eingabe der Systemparameter
omega_n = input('Geben Sie die Kreisfrequenz omega_n ein: ');
K_P = input('Geben Sie den Verstärkungsfaktor K_P ein: ');
N = 500;
% Dämpfungsgrade
D = [0.1, 0.3, 0.7, 1.0, 2.0, 3.0];
% Zeitachse definieren
t = linspace(0, 4, N); % Anpassen für angemessenen Zeitbereich
% Erstellen der Sprungantworten für jeden Dämpfungsgrad
figure; % Erstellt ein neues Figure-Fenster
hold on; % Hält das aktuelle Figure-Fenster für mehrere Plots offen
for i = 1:length(D)
% Berechnung der Systemantwort
sys = tf(K_P * [omega_n^2], [1, 2*D(i)*omega_n, omega_n^2]);
[y, t] = step(sys, t);
% Zeichnen der Sprungantwort
plot(t, y, 'DisplayName', sprintf('D = %.1f', D(i)));
end
% Anpassungen des Diagramms
xlabel('Zeit (s)');
ylabel('Ausgang');
title('Sprungantworten eines PT2-Systems für verschiedene Dämpfungsgrade');
legend('show'); % Zeigt die Legende an
grid on; % Fügt ein Gitter hinzu
hold off; % Beendet den "hold on"-Status