[lecture] scripts functions
This commit is contained in:
parent
500b829e54
commit
681cc84995
@ -176,15 +176,15 @@
|
|||||||
Beispiel: Plot von Sinusschwingungen
|
Beispiel: Plot von Sinusschwingungen
|
||||||
\footnotesize
|
\footnotesize
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
>> x = (0:0.01:2*pi);
|
t = (0:0.01:10); %s
|
||||||
>> frequenz_1 = 1;
|
frequenz_1 = 1;
|
||||||
>> frequenz_2 = 2;
|
frequenz_2 = 2;
|
||||||
>> y = sin(frequenz_1 * x);
|
y = sin(frequenz_1 * t * 2 * pi);
|
||||||
>> y2 = sin(frequenz_2 * x);
|
y2 = sin(frequenz_2 * t * 2 * pi);
|
||||||
>> plot(x, y);
|
plot(t, y);
|
||||||
>> hold on;
|
hold on;
|
||||||
>> plot(x, y2);
|
plot(t, y2);
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
@ -194,7 +194,7 @@
|
|||||||
\item \"Offnet den Editor und schreibt ein Skript, das vier Sinus
|
\item \"Offnet den Editor und schreibt ein Skript, das vier Sinus
|
||||||
mit den Amplituden \code{amplitudes = [0.25, 0.5, 1.0, 2.0]} und
|
mit den Amplituden \code{amplitudes = [0.25, 0.5, 1.0, 2.0]} und
|
||||||
der Frequenz 2\,Hz in einen Graphen plottet (\code{sinus = sin(x *
|
der Frequenz 2\,Hz in einen Graphen plottet (\code{sinus = sin(x *
|
||||||
frequency)* amplitude;}). Benutzt eine \verb+for+ Schleife um
|
frequency * 2 * pi)* amplitude;}). Benutzt eine \verb+for+ Schleife um
|
||||||
die Amplituden abzuarbeiten (\verb+hold on+ um Linien
|
die Amplituden abzuarbeiten (\verb+hold on+ um Linien
|
||||||
\"ubereinander zu plotten).
|
\"ubereinander zu plotten).
|
||||||
\item Speichert das Skript und f\"uhrt es von der Kommandozeile aus.
|
\item Speichert das Skript und f\"uhrt es von der Kommandozeile aus.
|
||||||
@ -279,13 +279,13 @@ end
|
|||||||
\footnotesize
|
\footnotesize
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function meine_erste_funktion() % Funktionskopf
|
function meine_erste_funktion() % Funktionskopf
|
||||||
x = (0:0.01:2*pi); % hier faengt der Funktionskoerper an
|
t = (0:0.01:2); % hier faengt der Funktionskoerper an
|
||||||
frequenz = 1.0;
|
frequenz = 1.0;
|
||||||
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
||||||
|
|
||||||
for i = 1:length(amplituden)
|
for i = 1:length(amplituden)
|
||||||
y = sin(frequenz * x) * amplituden(i);
|
y = sin(frequenz * t * 2 * pi) * amplituden(i);
|
||||||
plot(x, y)
|
plot(t, y)
|
||||||
hold on;
|
hold on;
|
||||||
end
|
end
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
@ -300,13 +300,13 @@ function meine_erste_funktion() % Funktionskopf
|
|||||||
\tiny
|
\tiny
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function meine_erste_funktion()
|
function meine_erste_funktion()
|
||||||
x = (0:0.01:2*pi);
|
t = (0:0.01:2);
|
||||||
frequenz = 1.0;
|
frequenz = 1.0;
|
||||||
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
||||||
|
|
||||||
for i = 1:length(amplituden)
|
for i = 1:length(amplituden)
|
||||||
y = sin(frequenz * x) * amplituden(i);
|
y = sin(frequenz * t * 2 * pi) * amplituden(i);
|
||||||
plot(x, y)
|
plot(t, y)
|
||||||
hold on;
|
hold on;
|
||||||
end
|
end
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
@ -361,10 +361,10 @@ Probleme mit dieser Funktion:
|
|||||||
\tiny
|
\tiny
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function meine_erste_funktion()
|
function meine_erste_funktion()
|
||||||
x = (0:0.01:2*pi);
|
t = (0:0.01:2);
|
||||||
frequenz = 1.0;
|
frequenz = 1.0;
|
||||||
amplituden = 1.0 1.25;
|
amplituden = 1.0 1.25;
|
||||||
y = sin(frequenz * x) * amplitude;
|
y = sin(frequenz * t * 2 * pi) * amplitude;
|
||||||
end
|
end
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\normalsize
|
\normalsize
|
||||||
@ -374,7 +374,7 @@ end
|
|||||||
Welche Information muss ich ihr geben?\pause
|
Welche Information muss ich ihr geben?\pause
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Funktion muss wissen: Wie weit soll gerechnet werden? Welche
|
\item Funktion muss wissen: Wie weit soll gerechnet werden? Welche
|
||||||
Aufl\"osung auf der x-Achse? Welche Frequenz? Welche Amplitude?
|
Aufl\"osung auf der Zeitachse? Welche Frequenz? Welche Amplitude?
|
||||||
\item F\"ur einen Plot brauche ich die x- und die y-Werte. Diese
|
\item F\"ur einen Plot brauche ich die x- und die y-Werte. Diese
|
||||||
muss die Funktion zur\"uckgeben.
|
muss die Funktion zur\"uckgeben.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@ -388,10 +388,10 @@ end
|
|||||||
\footnotesize
|
\footnotesize
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function calculate_sinewave()
|
function calculate_sinewave()
|
||||||
x = (0:0.01:2*pi);
|
t = (0:0.01:2);
|
||||||
frequenz = 1.0;
|
frequenz = 1.0;
|
||||||
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
||||||
y = sin(frequenz * x) * amplituden(i);
|
y = sin(frequenz * t * 2 *pi) * amplituden(i);
|
||||||
end
|
end
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\normalsize
|
\normalsize
|
||||||
@ -403,9 +403,9 @@ end
|
|||||||
Argumente:
|
Argumente:
|
||||||
\footnotesize
|
\footnotesize
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function calculate_sinewave(frequency, amplitude, x_max, x_step)
|
function calculate_sinewave(frequency, amplitude, t_max, t_step)
|
||||||
x = (0:x_step:x_max);
|
x = (0:t_step:t_max);
|
||||||
y = sin(frequency * x) * amplitude;
|
y = sin(frequency * t * 2 * pi) * amplitude;
|
||||||
end
|
end
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\normalsize
|
\normalsize
|
||||||
@ -417,9 +417,9 @@ end
|
|||||||
R\"uckgabewerte:
|
R\"uckgabewerte:
|
||||||
\tiny
|
\tiny
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function [x, y] = calculate_sinewave(frequency, amplitude, x_max, x_step)
|
function [t, y] = calculate_sinewave(frequency, amplitude, t_max, t_step)
|
||||||
x = (0:x_step:x_max);
|
x = (0:t_step:t_max);
|
||||||
y = sin(frequency * x) * amplitude;
|
y = sin(frequency * t * 2 * pi) * amplitude;
|
||||||
end
|
end
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
@ -435,7 +435,7 @@ end
|
|||||||
\item Schnittstelle definieren: Was will ich von der Funktion?
|
\item Schnittstelle definieren: Was will ich von der Funktion?
|
||||||
Welche Information muss ich ihr geben?\pause
|
Welche Information muss ich ihr geben?\pause
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Funktion muss wissen: Welche Daten soll sie plotten? X-Werte,
|
\item Funktion muss wissen: Welche Daten soll sie plotten? Zeitachse,
|
||||||
y-Werte, einen Namen f\"ur die Legende?
|
y-Werte, einen Namen f\"ur die Legende?
|
||||||
\item Muss nichts zur\"uckgeben.
|
\item Muss nichts zur\"uckgeben.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@ -475,15 +475,15 @@ end
|
|||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
amplitudes = 0.25:0.25:1.25;
|
amplitudes = 0.25:0.25:1.25;
|
||||||
frequency = 2;
|
frequency = 2;
|
||||||
x_max = 10 * pi;
|
t_max = 10;
|
||||||
x_step = 0.01;
|
t_step = 0.01;
|
||||||
|
|
||||||
figure()
|
figure()
|
||||||
hold on
|
hold on
|
||||||
|
|
||||||
for a = amplitudes
|
for a = amplitudes
|
||||||
name = num2str(a);
|
name = num2str(a);
|
||||||
[x_data, y_data] = calculate_sinewave(frequency, a, x_max, x_step);
|
[x_data, y_data] = calculate_sinewave(frequency, a, t_max, t_step);
|
||||||
plot_sinewave(x_data, y_data, name)
|
plot_sinewave(x_data, y_data, name)
|
||||||
end
|
end
|
||||||
legend('show')
|
legend('show')
|
||||||
@ -607,26 +607,6 @@ legend('show')
|
|||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
|
||||||
\frametitle{Vom Problem zum Algorithmus}
|
|
||||||
\frametitle{\"Ubungen - Funktionen}
|
|
||||||
\begin{enumerate}
|
|
||||||
\item Schreibe eine Funktion \verb+plotSineWave+ die die Amplitude
|
|
||||||
des Sinus als Argument entgegennimmt.
|
|
||||||
\item Erweitere die Funktion in der Weise, dass sie zus\"atzlich die
|
|
||||||
gew\"unschte Frequenz \"ubernimmt.
|
|
||||||
\item Erweitere \verb+plotSineWave+ so, dass sie eine Schar von
|
|
||||||
Sinuswellen unterschiedlicher Frequenz plottet.
|
|
||||||
\item Erweitere \verb+plotSineWave+ so, dass auch die Amplitude als
|
|
||||||
Vektor \"ubergeben werden kann. Die Funktion soll alle m\"oglichen
|
|
||||||
Kombinationen darstellen.
|
|
||||||
\item Erweitere \verb+plotSineWave+ so, dass die berechnete Sinus in
|
|
||||||
einer 2-D Matrize zur\"uckgegeben werden.
|
|
||||||
\item F\"uge zwei weitere R\"uckgabeparameter hinzu, die f\"ur jede
|
|
||||||
Berechnung die Amplitude und Frequenz zur\"uckgeben.
|
|
||||||
\end{enumerate}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Vom Problem zum Algorithmus}
|
\frametitle{Vom Problem zum Algorithmus}
|
||||||
|
Reference in New Issue
Block a user