% Leeren des Command Window, des Workspace und schliessen aller % Plott-Fenster clc, clear, close all %% Teilaufgabe 1 % Einlesen des Inhalts der Datei "Temperaturverlauf.mat" in den Workspace load ('Temperaturverlauf.mat') %% Teilaufgabe 2 % Erzeugen der symbolischen Variablen a und b syms a b % Zusammenfassen der Variablen a und b in einem Vektor x x=[a;b]; % Erzeugen der anonymen Funktion T1 T1=@(x,t) x(1)*(1-exp(x(2).*t)); %% Teilaufgabe 3 % Erzeugen der anonymen Funktion für die Summe der Fehlerquadrate über alle % Zeiten e = @(x) sum((T-T1(x,t)).^2); %% Teilaufgabe 4 % Definition der Startwerte für die Optimierungsfunktion fminsearch x_start=[10, -0.01]; % Optimierung der Variablen a und b, sodass e minimal wird x_opt=fminsearch(e,x_start); %% Teilaufgabe 5 % Plotten der Ergebnisse figure(1) plot(t,T) % Plotten der Temperaturdifferenz T über die Zeit t hold on % "Halten" des ersten Plotts damit der zweite Plott im gleichen Fenster dargestellt werden kann plot(t,T1(x_opt,t)) % Plotten der approximierten Temperaturdifferenz T1 über die Zeit t xlabel('Zeitschritt') % Beschriftung der x-Achse ylabel('Temperaturdifferenz in °C') % Beschriftung der y-Achse legend('gemessen','approximiert', "Location","southeast") % Einblenden und Positionieren der Legende %% Unstetige Funktion % Erzeugen des Vektors x mit symbolischen Variablen x1, x2 und x3 x=sym('x',[1,3]); % Erzeugen der anonymen Funktion T2 T2=@(x,t) x(1)*(1-exp(-x(2).*(t-x(3)))); % Ablegen der Ergebnisse der Berechnung der anonymen Funktion T2 als % Vektor T2 in Abhängigkeit von x T2=T2(x,t); % Definition der Sprungstelle der unsetigen Funktion T2 x(3)=10; % Mit der Kontrolstruktur wird überprüft, ob der aktuelle Zeitschritt % kleiner als die Sprungstelle x(3) ist. Ist das der Fall, wird der dazu % gehörende Wert in T2 gleich Null gesetzt, sonst bleibt er unverändert for i=1:t(end)+1 % Anzahl der Durchläufe (enspricht der Länge von t) if(t(i)