\documentclass[final,8pt,german]{beamer}


  
%\documentclass[handout]{beamer}
%\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
%\pgfpagesuselayout{4 on 1}[a4paper, landscape,border shrink=5mm]

\usepackage{color,graphicx,amsmath,amssymb,colortbl}
\usepackage{pstricks}
\usepackage{pst-grad,pst-node,pst-fill,pst-text,pst-plot,pst-coil}
\newcommand{\D}{{\text{d}}}

\usepackage{fancyvrb}
\usepackage{fvextra}
\usepackage{ascii}
\usepackage{upquote}

\usepackage{marvosym}
\usepackage{wasysym}

\definecolor{stab}{gray}{0.4}
\definecolor{hell}{gray}{0.8}

\definecolor{gray1}{gray}{0.3}
\definecolor{gray2}{gray}{0.5}
\definecolor{gray3}{gray}{0.8}
\definecolor{gray4}{gray}{0.2}
\definecolor{grayA}{gray}{0.55}
\definecolor{grayB}{gray}{0.4}
\newcommand{\Sim}{$\sim$}
\newcommand{\PPi}{$\pi$}
\newcommand{\Palpha}{$\alpha$}
\newcommand{\Pmu}{$\mu$}
\newcommand{\Psigma}{$\sigma$}
\newcommand{\Ptau}{$\tau$}
\newcommand{\Pleq}{$\leq$}
\newcommand{\Pgeq}{$\geq$}
\newcommand{\Pnabla}{$\nabla$}




\mode<presentation>
{
  \usetheme{Antibes}
  \usecolortheme{beaver}
  % oder ...
  
  \setbeamercovered{transparent}
  % oder auch nicht
}


\usepackage[german]{babel}
% oder was auch immer

\usepackage[applemac]{inputenc}
% oder was auch immer

\usepackage{times}
\usepackage[T1]{fontenc}
% Oder was auch immer. Zu beachten ist, das Font und Encoding passen
% müssen. Falls T1 nicht funktioniert, kann man versuchen, die Zeile
% mit fontenc zu löschen.

\definecolor{stab}{gray}{0.4}
\definecolor{hell}{gray}{0.8}

\title{Kapitel 5:\\  
\bfseries{Input-Output: Funktionen}}

%\subtitle{Untertitel} % (optional)

\author{D. BŠttig}

% - Der \inst{?} Befehl sollte nur verwendet werden, wenn die Autoren
%   unterschiedlichen Instituten angehören.


\date{Burgdorf, \today}

\logo{Vorlesungsfolien zum Lehrbuch \glqq BŠttig, Angewandte Mathematik1 mit MATLAB und Julia\grqq, \copyright\ Springer Vieweg, ISBN 978-3-662-60951-4}

 

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

%\begin{frame}{Programm}
%  \tableofcontents
%  % Die Option [pausesections] könnte nützlich sein.
%\end{frame}


\section{Was sind Funktionen?}


\begin{frame}[fragile]{Definition Funktion}


\begin{minipage}{5cm}\emph{Input-Output-Maschine} $=$   \emph{Funktion}. Festlegung durch  die  Input-  und die Output-Variablen  und ihrer Zuordnung. 
\emph{Name} der  Funktion hier: \Verb+Zauberkiste+. Inputs: \emph{Argumente}; Output-:  \emph{Wert} oder  \emph{RŸckgabe-Wert}.\\[1ex]
Notation:
\[
(m,n) = \texttt{Zauberkiste}(a,b,c)
\]
\end{minipage}
\hspace{0.5cm}
\begin{minipage}{4cm}
\begin{center}
\psset{unit=0.6cm}
\psset{yunit=0.6cm}
\psset{xunit=0.5cm}
\begin{pspicture}(0,0.9)(9.8,3.2)
\psline{->}(1,1.5)(3,1.5)
\psline{->}(1,2.5)(3,2.5)
\psline{->}(1,2)(3,2)
\psline{->}(7,1.5)(9,1.5)
\psline{->}(7,2.5)(9,2.5)
\psline[linewidth=2pt](3,1)(7,1)(7,3)(3,3)(3,1)
\rput(5,2.2){\texttt{Zauberkiste}}
\rput(0,2.5){$a$}\rput(0,2){$b$}\rput(0,1.5){$c$}\rput(9.5,2.5){$m$}\rput(9.5,1.5){$n$}
\end{pspicture} 
\end{center}
\glqq Zauberkiste \emph{von} $a$, $b$ und $c$\grqq.
\end{minipage}


\begin{example}[Volumen eines Zylinders] \label{VolZyl} Das Volumen $V$ eines Zylinders hŠngt von seiner Hšhe $h$ und seinem Radius $r$  ab:
\[
V = \text{volumenZylinder}(r,h) = \pi\cdot r^2\cdot h
\]
Dies ist eine Funktion, die von den zwei Argumenten $r$ und $h$ abhŠngt. Der Wert der Funktion ist das Volumen $V$.  Ist $r=0,\!5$\,m und $h= 1,\!2$\,m, so ist 
\[
V = \text{volumenZylinder}(0,\!5\,\text{m},  1,\!2\,\text{m}) = \pi\cdot (0,\!5\,\text{m})^2\cdot 1,\!2\,\text{m} = 0,\!94\,\text{m}^3
\]
\end{example}

\end{frame}

\begin{frame}{Definition Funktion}

Oft werden der Name der Funktion und der Output  gleich bezeichnet:  Die  Wegfunktion $s=s(t)$ und die Geschwindigkeitsfunktion $v=v(t)$. 

\begin{example}[Eine einfache Wegfunktion] Wegfunktionen $s=s(t)$ mit  Gleichung:
$
s = s(t) = a\cdot t^2 +b
$. 
Dabei seien $a=  3$\;m/s$^2$ und $b=2$\;m. Zum Zeitpunkt $t=0$\,s ist die Position des Fahrzeugs $s(0\,\text{s})$ (ausgesprochen: \glqq $s$ von null Sekunden\grqq):
$
s(0\,\text{s}) = a\cdot (0\,\text{s})^2 + b = b = 2 \text{\,m} 
$. 
Zum Zeitpunkt 3\,s befindet er sich bei Position $s(3\,\text{s})$:
\[
s(3\,\text{s}) = a\cdot (3\,\text{s})^2 +b = 27 \text{\,m} + 2 \text{\,m}
 = 29 \text{\,m}
\]
\end{example}


\begin{example}[Ideales Gasgesetz]  \emph{Ideales Gasgesetz}  fŸr kleinen Druck $p$:
$
p\cdot V = n\cdot R\cdot T
$. 
Dabei ist $R= 8,\!31451$\,N\,m\,K$^{-1}$mol$^{-1}$ die Gaskonstante. Mit dem Gasgesetz kšnnen Sie den Druck $p$ berechnen, wenn $n$ ein Mol ist: 
\[
p = p(T,V) = 8,\!314\,51\text{\,N\,m\,K}^{-1}\cdot  {T}/{V}
\]
Funktion, die von zwei Variablen abhŠngt. Funktionsname $p$  gleich Funktionswert $p$.
\end{example}
\mbox{}\\[1ex]

\end{frame}

\begin{frame}{Definitions- und Wertebereich}


\begin{example}[Summe  natŸrlicher Zahlen] \label{Gaussfunktion} Die Funktion mit Namen \glqq summeN\grqq\ berechnet  die Summe $s$ der natŸrlichen Zahlen von null bis $n$:
\[
s =  \text{summeN}(n) = 0 + 1 + 2 + 3 + \cdots + n
\]
Der Definitionsbereich der Funktion  umfasst  die natŸrlichen Zahlen 0, 1, 2, 3, 4, 5, usw.  Man hat
$
\text{summeN}(0) = 0$,   $\text{ summeN}(1) = 1$,  $\text{ summeN}(2)=3$,   $\text{ summeN}(3) = 6$.
Der Wertebereich ist ein Teilbereich der  natŸrlichen Zahlen. 
\end{example}


\begin{example}[Telefonbuch der Schweiz] \label{Telefon} Das digitale Telefonverzeichnis stellt eine Funktion dar. Ein Argument ist eine Adresse und ein RŸckgabe-Wert  ist eine Telefonnummer. Der Definitionsbereich der Funktion ist eine  Adresse in der Schweiz. Der Wertebereich ist eine zehnstellige natŸrliche Zahl.
\end{example}

\begin{example}[Quadrieren] Aus  reellen Zahl $x$ kann man  Quadrat  $x^2$ berechnen. Bezeichnen wir diese Funktion mit  \Verb+quadr+, so  haben wir  die Funktionsschreibweise
$
y = \texttt{quadr}(x) =x^2
$. 
Im Definitionsbereich sind alle reellen Zahlen. Die nicht-negativen reellen Zahlen $y$ umfassen den Wertebereich der Funktion.  \end{example}
\mbox{}\\[1ex]
\end{frame}
 
\section{Wie man Funktionen darstellen kann}

\begin{frame}{Funktionsdarstellung mit Wertetabellen}


\begin{example}[Summe von natŸrlichen Zahlen] Die Funktion, welche die Summe $s=\text{summeN}(n)$ der  natŸrlichen Zahlen von null bis 
$n$ berechnet. Wir kšnnen   als Definitionsbereich nur  die natŸrlichen Zahlen von null bis zehn wŠhlen. Wir erhalten dann die folgenden Werte fŸr die Summe $s$: 
\begin{center}
\begin{tabular}{ccccccccccccc}
$n$ & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\\hline
$s=\text{summeN}(n)$ & 0 & 1 & 3 & 6 & 10 & 15 & 21 &  28 & 36 & 45 & 55
\end{tabular}
\end{center}
Mit dieser Wertetabelle sind die  Funktionswerte Ÿbersichtlich dargestellt.
\end{example}

\begin{example}[AmpelzustŠnde] Kreuzung mit zwei Ampeln: Farben rot, gelb oder grŸn. Eine Person beschreibt mit der Funktion $\mathbb{P}(\text{Ampel 1}, \text{ Ampel 2})$ die Wahrscheinlichkeit fŸr die auftretenden Farben:
\[
\begin{matrix}
  & \text{ rot 2 } & \text{ gelb 2 } & \text{ grŸn 2 }\\
 \text{  rot 1 } &  10\,\%& 5\,\% & 25\,\%\\
 \text{ gelb 1}&  6\,\% &  1\,\% & 20\,\%\\
 \text{ grŸn 1 }& 30\,\% & 3\,\%    & 0\,\%
 \end{matrix}
\]
So ist $\mathbb{P}(\text{rot},\text{gelb}) = 5$\,\%, $\mathbb{P}(\text{gelb},\text{rot}) = 6$\,\% und $\mathbb{P}(\text{grŸn},\text{rot}) = 30$\,\%. Die Wertetabelle kann man mit einer $3\times3$-Matrix speichern.
\end{example}
\mbox{}\\[2ex]

\end{frame}

\begin{frame}{Funktionsdarstellung mit Gleichung}

Bei der Funktion \Verb+quadr+, die aus  einer endlichen Dezimaldarstellung $x$, das Quadrat $y=x^2$ berechnet, lautet die Funktionsgleichung  $y = \texttt{quadr}(x) = x^2$ oder einfach $y=y(x)=x^2$. 

\begin{example}[Ideales Gasgesetz] Das ideale Gasgesetz beschreibt den   Druck $p$, die eine 1\, mol Gasmenge auf eine BehŠlterwand ausŸbt, als Funktion des Volumens $V$ und der  Temperatur $T$:
\[
p = p(T,V) = 8,\!314\,51\text{\,N\,m\,K}^{-1}\cdot  \frac{T}{V}
\]
Dies ist eine Funktionsgleichung. 
\end{example}

 
 \begin{example}[Summe  natŸrlicher Zahlen] Diese Funktion kann mit einer einfachen Funktionsgleichung beschrieben werden:
\[
s =  \text{summeN}(n) = 0 + 1 + 2 + 3 + \cdots + n = \frac{n\cdot (n+1)}{2}
\]
 Damit ist $\text{summeN}(100) = 100\cdot 101/2 = 5\,050$.
\end{example}

\end{frame}

\begin{frame}{Funktionsdarstellung mit Graph}

Mit dem \emph{Graph}\index{Graph} einer Funktion kšnnen Sie eine Funktion mit nur einer reellen Zahl als  Argument und nur einer Zahl als Funktionswert visualisieren. Ist $y=y(x)$, so besteht der Graph aus allen Punkten $(x\,|\,y(x))$ im zweidim., kartesischen Koordinatensystem. 

\begin{example}[Strahlungsbilanz auf der ErdoberflŠche] Einfallende Strahlungsenergie $E_\text{ein}$ hŠngt vom Breitengrad $B$ ab. Die einfallende Strahlungsenergie $E_\text{ein}= E_\text{ein}(B)$ ist also eine Funktion von $B$:

\begin{minipage}{5cm}
\psset{unit=0.5cm}
\psset{yunit=0.07cm}
\psset{xunit=0.45cm}
\begin{pspicture}(-3,-4)(10,37)
\multips(0,0)(0,5){8}{\psline[linecolor=hell](0,0)(9,0)}
\multips(0,0)(1,0){10}{\psline[linecolor=hell](0,0)(0,35)}
\psline(0,0)(9,0)
\psline(0,0)(0,35)
\pscurve[linewidth=1.8pt](0, 32)(1, 31.5)(2, 30.5 )(3, 26.5 )(4, 22 )(5, 17.5)(6,  13.5)(7,   10)(8,  7.5)(9,  7)
\pscurve[linewidth=1.8pt,linestyle=dashed](0, 25)(1, 26)(2, 27 )(3, 25.5 )(4, 23.2)(5, 22)(6,  20.8)(7,   19.8)(8,  19)(9,  18)
\rput(0,-3){$0\,^\circ$}\rput(1,-3){$10\,^\circ$}\rput(5,-3){$50\,^\circ$}\rput(3,-3){$30\,^\circ$}
\rput(9,-3){$90\,^\circ$}\rput(7,-3){$70\,^\circ$}
\rput(10,-3){$B$}\rput(-1.7,10){$100$\,W/m$^2$}\rput(-1.7,20){$200$\,W/m$^2$}
\rput(-1.7,30){$300$\,W/m$^2$}\end{pspicture} 
\end{minipage}
\hspace{0.9cm}
\begin{minipage}{4.5cm}
Aus dem Graph liest man ab:  $E_\text{ein}(0\,^\circ) \approx 320$\,Watt/m$^2$ und $E_\text{ein}(70\,^\circ) \approx 100$\,Watt/m$^2$ ist.\\[1ex]
  Ein Teil der einfallenden Strahlung wird reflektiert. Die gestrichelte Linie in  zeigt den Graph der ausfallenden Strahlung $E_\text{aus}(B)$.
\end{minipage}

\end{example}

\end{frame}

\begin{frame}[fragile]{Funktionsdarstellung mit Graph}


\begin{example} 

\begin{minipage}{4cm}
Funktion  mit Funktionsgleichung
  \[
 y= y(x) = \frac{x^2}{1+3x+ x^3}
  \]
 Dabei ist $x$ eine reelle Zahl zwischen $0$ und $10$. 
 \end{minipage}
 \hspace{0.9cm}
 \begin{minipage}{5cm}
\psset{unit=0.4cm}
\psset{yunit=0.7cm}
\psset{xunit=0.35cm}
\begin{pspicture}(-1,-0.3)(10.5,3.4)
\multips(0,0)(0,0.5){7}{\psline[linecolor=hell](0,0)(10,0)}
\multips(0,0)(1,0){11}{\psline[linecolor=hell](0,0)(0,3)}
\psline(0,0)(10,0)
\psline(0,0)(0,3)
\psplot[linewidth=2pt]{0.0}{10}{x x mul 1 3 x mul add x x mul x mul add div 10 mul}
\rput(0,-0.2){$0$}\rput(2,-0.2){$2$}\rput(6,-0.2){$6$}\rput(10,-0.2){$10$}
\rput(8,-0.2){$8$}\rput(4,-0.2){$4$}
\rput(-0.7,2){$0.2$}\rput(-0.7,1){$0.1$}\rput(-0.7,3){$0.3$}
\end{pspicture} 
\end{minipage}

 Mit Julia:
\begin{Verbatim}[commandchars=\\\{\}]
julia> using Plots
julia> meineFunktion(x) =  x\asciicircum{}2 / (1 + 3*x + x\asciicircum{}3);
julia> plot(meineFunktion, 0, 10, w=3, lab = "")  
\end{Verbatim}
Der Parameter \Verb+w+ regelt die Liniendicke. 
\end{example}


Mit Julia lassen sich mehrere Kurven in eine Grafik legen:
\begin{Verbatim}[commandchars=\\\{\}]
julia> plot(sin,0,2*\PPi, w=3, lab = "Sin")
julia> plot!(cos,0,2*\PPi, w=3, lab = "Cos", color = :red)
julia> xlabel!("t")
\end{Verbatim}
 

\end{frame}

\begin{frame}{Funktionsdarstellung mit Graph und Niveaukurven}
   
Dazu muss die Funktion reelle Werte besitzen und  zwei reelle Argumente haben.  Beispiel:  Hšhe $H=H(x,y)$   eines GelŠndepunktes mit Koordinaten $x$ und $y$. 

\includegraphics[width=5cm,height=3.8cm]{1huegel.eps}
\includegraphics[width=5cm,height=3.8cm]{1huegelniveau.eps}
 
Die Linien zeigen die Punkte an, die die gleiche Hšhe haben.  Dies sind die Niveaulinien der Hšhen-Funktion $H=H(x,y)$. Die €uqidistanz der Linien ist 100\,m.

\end{frame}

\begin{frame}[fragile]{Funktionsdarstellung mit Graph und Niveaukurven}

Mit Julia:  $H=H(x,y) = \sin(x)\cdot \cos(2\cdot y)$ mit  $x$ zwischen $-2\pi$ und $2\pi$ bzw. $y$ zwischen $0$ und $2\pi$:
\begin{Verbatim}[commandchars=\\\{\}]
julia> using Plots
julia> H(x,y) = sin(x) * cos(2*y);
julia> x = -2*\PPi:0.01:2*\PPi; y= 0:0.01:2*\PPi;
julia> surface(x,y,H)
julia> contour(x,y,H)
\end{Verbatim}

\includegraphics[width=5cm,height=3.3cm]{1Hxy1.eps}
\includegraphics[width=5cm,height=3.3cm]{1Hxy2.eps}

\end{frame}

\begin{frame}{Funktionsdarstellung mit Graph und Niveaukurven}

\begin{example}[Produkt zweier Zahlen] 
\[
p = \text{produkt}(a,b) = a\cdot b
\]
Die Niveaulinien sind Kurven im $(a\;|\;b)$-Koordinatensystem, auf denen das Produkt $a\cdot b $ konstant ist:
\begin{center}
\psset{unit=0.34cm}
\psset{yunit=0.34cm}
\psset{xunit=0.34cm}
\begin{pspicture}(-0.7,-0.3)(11.8,10.2)
\multips(0,0)(0,1){11}{\psline[linecolor=hell](0,0)(10,0)}
\multips(0,0)(1,0){11}{\psline[linecolor=hell](0,0)(0,10)}
\psline(0,5)(10,5)
\psline(5,0)(5,10)
\psline[linewidth=1.5pt](0,5)(10,5)
\psline[linewidth=1.5pt](5,0)(5,10)
\psplot[linewidth=1.5pt]{5.6}{10}{ 3 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{6.2}{10}{ 6 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{6.8}{10}{ 9 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{7.4}{10}{ 12 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{5.6}{10}{ -3 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{6.2}{10}{ -6 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{6.8}{10}{ -9 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{7.4}{10}{ -12 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{4.4}{ 3 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{3.8}{ 6 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{3.2}{ 9 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{2.6}{ 12 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{4.4}{ -3 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{3.8}{ -6 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{3.2}{ -9 x -5 add div 5 add}
\psplot[linewidth=1.5pt]{0}{2.6}{ -12 x -5 add div 5 add}
\rput(-0.5,9.5){$b$}\rput(9.5,-0.5){$a$}
\rput(11,6.3){$p=6$}\rput(11.2,7.5){$p=12$}
\rput(11,5){$p=0$}
\rput(11.3,3.7){$p=-6$}\rput(11.5,2.5){$p=-12$}
\end{pspicture} 
\end{center}

\end{example}

 \end{frame}
 
 \begin{frame}{Funktionsdarstellung mit Graph und Niveaukurven}
 \begin{example}[Ideales Gasgesetz]
\[
p = p(T,V) = 8,\!314\,51\text{\,N\,m\,K}^{-1}\cdot  \frac{T}{V}
\]
Niveaulinien: Kurven im $(T\;|\;V)$-Koordinatensystem mit  Druck $p$ konstant.  Man nennt sie \emph{Isobaren}. Es muss $T/V=C=\text{ konstant}$. Es ist also $T=C\cdot V$.  Dies sind  Geraden, die durch den Nullpunkt gehen:
\begin{center}
\psset{unit=0.4cm}
\psset{yunit=0.3cm}
\psset{xunit=0.4cm}
\begin{pspicture}(-0.7,-0.3)(10.2,10.2)
\multips(0,0)(0,1){11}{\psline[linecolor=hell](0,0)(10,0)}
\multips(0,0)(1,0){11}{\psline[linecolor=hell](0,0)(0,10)}
\psline(0,0)(10,0)
\psline(0,0)(0,10)
\psline[linewidth=1.5pt](0,0)(9,1)
\psline[linewidth=1.5pt](0,0)(8,3)
\psline[linewidth=1.5pt](0,0)(7,5)
\psline[linewidth=1.5pt](0,0)(5,7)
\psline[linewidth=1.5pt](0,0)(1,9)
\psline[linewidth=1.5pt](0,0)(3,8)
\rput(0,-0.5){$0$}\rput(-0.5,0){$0$}\rput(-0.5,9){$V$}\rput(9,-0.5){$T$}
\rput(2,9.5){Druck klein}\rput(8.5,2){Druck gro§}\rput(7,7){Druck mittel}
\rput(8,5.5){$p=$ konstant}
\end{pspicture} 
\end{center}
\end{example}

\end{frame}

\section{Funktionen programmieren}


\begin{frame}{Programme als Funktionen}
Bei den meisten Programmiersprachen werden Applikationen mit Funktionen aufgebaut.\\[1ex]
 Mit Funktionen in Computerprogrammen kann man komplexe und lange Blšcke von Befehlen in kleine Teile gliedern. So hat ein erste Funktion die Aufgabe Messwerte aus einem File zu lesen. Die zweite Funktion berechnet aus den Messwerten einen verlangten Wert. Dabei benutzt sie andere Funktionen, wie Mittelwerte oder Wurzelfunktionen. Die letzte Funktion druckt den verlangten Wert aus. Die kleinen Teile kšnnen oft vielfach fŸr verschiedene Anwendungen benutzt werden.\\[1ex]
In statischen Sprachen, wie C, C$++$ und Java, mŸssen die Definitionsbereiche der Argumente und die Art der Werte der Funktionen  deklariert werden. Mit MATLAB oder mit Julia -- dies sind dynamische Sprachen -- entfŠllt die Zuweisung der Typen der Variablen. 
\end{frame}

\begin{frame}[fragile]{Funktion mit Julia}

\begin{example}[Ideales Gasgesetz] 
\[
p = p(T,V) = 8,\!314\,51\text{\,N\,m\,K}^{-1}\cdot  \frac{T}{V}
\]
 \begin{Verbatim}[commandchars=\\\{\}]
"""
Funktion druck(temperatur, volumen) berechnet 
den Druck fuer 1 mol gas (in Pa)
gegeben volumen (in m\asciicircum{}3) und temperatur (in K)
"""
function  druck(temperatur, volumen)
   return 8.314_51 * temperatur / volumen;
end
\end{Verbatim} 
In \Verb+function+-Zeile: Funktion \emph{deklariert}. Dies ist der \emph{Kopf} (engl. \emph{header}).
  Name der Funktion lautet \verb+druck+. Die Argumente sind \verb+temperatur+ und \verb+volumen+. \\[1ex]
  Anschlie§end folgt der \emph{Funktionskšrper}.
\end{example}
\end{frame}

\begin{frame}[fragile]{Funktion mit Julia}


\begin{example}[Summe von natŸrlichen Zahlen] 

\psset{unit=1cm}
\psset{yunit=1cm}
\psset{xunit=0.55cm}
\begin{pspicture}(0,0.9)(9.8,2.2)
\psline{->}(1,1.5)(3,1.5)
\psline{->}(7,1.5)(9,1.5)
\psline[linewidth=2pt](3,1)(7,1)(7,2)(3,2)(3,1)
\rput(5,1.5){summeN}
\rput(0,1.5){$n$}\rput(11.5,1.5){$s = n\cdot(n+1)/2$}
\end{pspicture} 

\begin{Verbatim}
"""
Die Funktion summeN(n) berechnet die Summe der
natuerlichen Zahlen 0 + 1 + 2 + 3 + ... + n
"""
function summeN(n::Int64);
   return (n + 1) * n/2;
end
\end{Verbatim}
Diese  Funktion kann man mit Julia kompakter ohne  \Verb+function+  programmieren:
\begin{Verbatim}
julia> summeN(n::Int64) = (n+1)*n/2
\end{Verbatim}
\begin{Verbatim}
julia> summeN(98)
   4851  
julia> summeN(7.6)
   ERROR:  no method matching summeN(::Float64)
\end{Verbatim}
\end{example}
\mbox{}\\[1ex]

\end{frame}



\begin{frame}[fragile]{Funktionen mit Julia}

 
\begin{example}[Summe und Produkt] 
\[
(s, p) = \text{ summeProdukt}(a, b)
\] 
Dabei ist $s=a+b$ und $p=a\cdot b$. 
Mit Julia:
\begin{Verbatim}[commandchars=\\\{\}]
"""
Funktion summmeProdukt(a,b) berechnet Tupel (a+b,a*b)
"""
function summeProdukt(a,b)
   return (a+b, a*b);
end
\end{Verbatim}
Funktionswerte berechnen:
\begin{Verbatim}[commandchars=\\\{\}]
julia> summeProdukt(5,8)
   (13, 40)
\end{Verbatim}
Das Resultat ist ein Tupel mit der Summe $13$ und dem Produkt $40$.
\end{example}


\end{frame}

\begin{frame}[fragile]{Funktionen mit Julia}

\begin{example}[Punkt-Notation]
Oft will man mehrere Werte einer Funktion bestimmen. So kšnnte man  versuchen die Werte der  Funktion \Verb+summeN(n)+ fŸr $n=4$, $7$, $12$, $14$ und $21$ zu berechnen.  
Mit Julia kann man mehrere Werte einer  Funktion  mit einer \Verb+for+-Schleife oder einfacher mit der  Punkt-Notation ausrechnen:
\begin{Verbatim}[commandchars=\\\{\}]
julia> n = [4; 7; 12; 14; 21];
julia> summeN.(n)
   5-element Array\{Float64,1\}:
     10.0
     28.0
     78.0
    105.0
    231.0
\end{Verbatim}
\end{example}
\end{frame}

\section{Was ist eine Umkehrfunktion?}

\begin{frame}{Definition Umkehrfunktion}
Die Umkehrfunktion beantwortet die Frage, ob man den Input einer Funktion aus ihrem Output bestimmen kann. Bei der Funktion \Verb+quadr+, die einer Zahl $x$ den Wert $x^2$ zuordnet,  lŠsst sich der Input nicht aus dem Output bestimmen. Ist beispielsweise \Verb+quadr+$(x) =4$, so kann $x$ nicht eindeutig bestimmt werden. Das Argument $x$ kšnnte $2$ oder $-2$ sein. Wir haben hier den Fall, dass zwei verschiedene Argumente den gleichen Wert der Funktion liefern. Dies darf nicht passieren, wenn man den Input aus dem Output berechnen will. Man definiert:

\begin{definition} Eine Funktion   hei"st \emph{injektiv} (engl. \emph{injectiv}),\index{Funktion ! injektiv} wenn verschiedene Werte der Argumente immer verschiedene Werte der Funktion liefern.
\end{definition}
Bei einer injektiven Funktion $y=y(x)$ kann man den   Input $x$   aus dem Funktionswert $y$ (theoretisch) bestimmen. Man sagt, dass die Funktion  eine \emph{Umkehrfunktion} oder eine \emph{inverse Funktion} hat.\index{Umkehrfunktion} 
\end{frame}

\begin{frame}{Umkehrfunktion}
 \begin{example}[Summe von natŸrlichen Zahlen] Funktion, die die Summe $s$ der natŸrlichen Zahlen von null bis $n$ berechnet: 
\[
s =  \text{summeN}(n) = 0 + 1 + 2 + 3 + \cdots + n = {n\cdot (n+1)}/{2}
\]
Mit zunehmendem  Argument $n$ wird der Wert $s$ der Funktion grš§er. Die Funktion ist injektiv. Die Umkehrfunktion existiert also. Wir kšnnen sie  \glqq invSummeN\grqq\ nennen. Um sie zu berechnen, muss man $n$ in Funktion von $s$ schreiben:
$
2s = n^2 + n$  oder  $n^2+n-2s=0$.
Deshalb ist
\[
n =  \frac{-1 \pm \sqrt{1+ 8s}}{2}
\]
Daher:
\[
n = \text{ invSummeN}(s) = \frac{-1 + \sqrt{1+ 8s}}{2}
\]
 \end{example}
 \end{frame}
 
 \begin{frame}{Umkehrfunktion}
  \begin{example}[Eine Wegfunktion] Die Wegfunktion $s=s(t)$ fŸr $t$ zwischen 0\,s und 1000\,s, gegeben durch die Funktionsgleichung
 \[
 s=s(t) = 0,\!03\,\text{m\,s}^{-1}\cdot t + 2\,\text{m}
 \]
 beschreibt die Position eines Fahrzeugs in Funktion der Zeit $t$. Je grš§er $t$ ist, um so grš§er wird auch $s$. Daher ist die  Wegfunktion injektiv. Die Umkehrfunktion berechnet den Zeitpunkt $t=t(s)$ in Funktion der Position $s$ des Fahrzeugs. Stellt man die Funktionsgleichung nach $t$ um, erhŠlt man die Gleichung der Umkehrfunktion:
 \[
 t = t(s) = \frac{s-2\,\text{m}}{ 0,\!03\,\text{m\,s}^{-1}}
 \]  
  \end{example}
  \end{frame}
  
   \begin{frame}{Graph und Umkehrfunktion}
   
Der  Graph einer Funktion kann helfen, um zu entscheiden, ob die Funktion injektiv ist:
\begin{center}
\psset{unit=0.6cm}
\psset{xunit=0.7cm}
\psset{yunit=0.6cm}
\begin{pspicture}(0.2,-0.6)(11.2,3.3)
\multips(0.5,-0.5)(0,0.5){8}{\psline[linecolor=hell](0,0)(4.5,0)}
\multips(0.5,-0.5)(0.5,0){10}{\psline[linecolor=hell](0,0)(0,3.5)}
\psplot[linewidth=2pt]{0.5}{5}{x  sqrt 1.9 mul -1.3 add}
\psline(0.5,0)(5,0)\psline(1,-0.5)(1,3)
 \rput(5.2,0){$x$} \rput(1,3.2){$y$} 
\rput(3.3,1.5){$y=y(x)$}
\multips(6.5,-0.5)(0,0.5){8}{\psline[linecolor=hell](0,0)(4.5,0)}
\multips(6.5,-0.5)(0.5,0){10}{\psline[linecolor=hell](0,0)(0,3.5)}
\psline(6.5,0)(11,0)\psline(7,-0.5)(7,3)
\psplot[linewidth=2pt]{6.5}{11}{x 180 mul 3.14159 div  cos 1.6 mul 1.3 add}
 \rput(11.2,0){$x$} \rput(7,3.2){$y$} 
\rput(8.6,1.5){$y=y(x)$}
  \end{pspicture}
\end{center}
Linkes Bild: Die Funktion ist injektiv und hat daher eine Umkehrfunktion. Rechtes Bild: Die Funktion hat keine Umkehrfunktion, da beispielsweise der Wert null  der Funktion durch zwei verschiedene Inputs erreicht wird. 

\begin{minipage}{5cm} Werte der Umkehrfunktion  kšnnen dann direkt am Graph der Funktion abgelesen werden: Werte einer Funktion (gestrichelte Linie) und ihrer Umkehrfunktion (gepunktete Linie).
\end{minipage}
\hspace{0.5cm}
\begin{minipage}{3cm}
\psset{unit=0.67cm}
\psset{xunit=0.77cm}
\psset{yunit=0.67cm}
\begin{pspicture}(-0.3,-0.6)(5.5,3.3)
\multips(0.5,-0.5)(0,0.5){8}{\psline[linecolor=hell](0,0)(4.5,0)}
\multips(0.5,-0.5)(0.5,0){10}{\psline[linecolor=hell](0,0)(0,3.5)}
\psplot[linewidth=2pt]{0.5}{5}{x  sqrt 1.9 mul -1.3 add}
\psline(0.5,0)(5,0)\psline(1,-0.5)(1,3)
 \rput(2.5,-0.3){$x$} \rput(0.8,2.7){$y$} 
\rput(0.2,1.7){$y=y(x)$}
\rput(4.5,-0.3){$x=x(y)$}
\psline[linestyle=dashed,linewidth=1.3pt]{->}(2.5,0)(2.5,1.7)(1,1.7)
\psline[linestyle=dotted,linewidth=1.3pt]{<-}(4.5,0)(4.5,2.7)(1,2.7)
\end{pspicture} 
\end{minipage}
\end{frame}

\section{Funktionen in Serie schalten}

\begin{frame}[fragile]{In Serie schalten}

Aus  zwei Funktionen $y=y(x)$ und $z=z(y)$  kšnnen wir eine neue Funktion konstruieren:  Zuerst rechnen wir mit der ersten Funktion von $x$ auf $y$. Anschlie§end rechnen wir mit der zweiten Funktion von $y$ auf $z$:
\begin{center}
\psset{unit=0.43cm}
\psset{yunit=0.56cm}
\psset{xunit=0.5cm}
\begin{pspicture}(0,0.9)(19,3.2)
\psline{->}(1,2)(3,2)
\psline{->}(7,2)(9,2)
\psline{->}(10,2)(12,2)
\psline{->}(16,2)(18,2)
\psline[linewidth=2pt](3,1)(7,1)(7,3)(3,3)(3,1)
\psline[linewidth=2pt](12,1)(16,1)(16,3)(12,3)(12,1)
\rput(5,2.5){Funktion}\rput(5,1.9){$y=y(x)$}
\rput(14,2.5){Funktion}\rput(14,1.9){
$z=z(y)$}
\rput(18.5,2){$z$}\rput(0.5,2){$x$}\rput(9.5,2){$y$}
\end{pspicture} 
\end{center}
Man sagt, dass man die beiden Funktionen in Serie schaltet oder \emph{verkettet}. Man erhŠlt also eine neue, aus  den beiden einzelnen Funktionen \emph{zusammengesetzte} Funktion:
\[
z = z (y(x))
\]
Die Funktion $z=\sin(\sqrt{x})$ ist eine verkettete Funktion. Das Argument der Funktion ist $x$. Zuerst wird die Wurzel $y=\sqrt{x}$ von $x$ berechnet. Anschlie§end wird davon der Sinus bestimmt:
\[
x \longrightarrow y = \sqrt{x} \longrightarrow z = \sin(y)
\]
Mit Julia kann man Funktionen mit der mathematischen Schreibweise in Serie schalten:
\begin{Verbatim}
julia>  sin(sqrt(2))
   0.9877659459927356
\end{Verbatim}
\mbox{}
\end{frame}

\begin{frame}{In Serie schalten}

\begin{example} Ist etwa $y =y(x)= x^2$ und $z = z(y) = 5+ 3\cdot y$, dann ist
\[
z = z(y(x)) =z( x^2) = 5+ 3\cdot (x^2)  = 5+ 3\cdot x^2
\]
\end{example}

\begin{example}[Weg- und Hšhenfunktion] Der  Weg $s$ eines Wagens sei durch $s=\text{Weg}(t) = 5\,\text{m} +  t\cdot 4\,\text{m/s}$ gegeben. Die Hšhe $H$ Ÿber Meer einer Position $s$ des Wegs ist  $H=\text{Hšhe}(s) = 10\cdot s + 50\,\text{m}$.  Die Hšhe~$H$ Ÿber Meer des Wagens in Funktion der Zeit $t$:  Weg- mit der Hšhenfunktion in Serie schalten:
\begin{align*}
H = \text{ Hšhe}(s) & =  10\cdot s + 50\,\text{m} =  10\cdot \text{ Weg}(t) + 50\,\text{m} \\
 & = 10\cdot (5\,\text{m} +  t\cdot 4\,\text{m/s})  + 50\,\text{m}
\end{align*}


\end{example}
\end{frame}

 
\section{Verschiebung von Graphen} 

\begin{frame}{Verschiebung vertikal}
Graphen von Funktionen im zweidimensionalen  Koordinatensystem lassen sich horizontal und vertikal verschieben. Dies ist nštig, wenn die Einheiten der Argumente und der Werte einer Funktion Šndert.  \\[1ex]
Vertikale Verschiebung mit einer Konstanten $c>0$:
\begin{center}
\psset{unit=0.8cm}
\psset{yunit=0.8cm}
\psset{xunit=0.7cm}
\begin{pspicture}(0,0.4)(11.2,4.6)
\psline(1,1)(9,1)
\psline(5,0.5)(5,4.5)
\psline{->}(6,3.5)(6,2.5)
\psline{->}(6.1,3.5)(6.1,4.5)
%\psline[linestyle=dashed](4,1)(4,2)(6,2)(6,1)
\pscurve[linewidth=2pt,linestyle=dashed](1.5,1.5)(3,0.5)(6,2.5)(8.5,1.2)
\pscurve[linewidth=2pt](1.5,2.5)(3,1.5)(6,3.5)(8.5,2.2)
\pscurve[linewidth=2pt,linestyle=dashed](1.5,3.5)(3,2.5)(6,4.5)(8.5,3.2)
\rput(9,0.5){$x$}\rput(10,3.2){$y= y(x)+c$}
\rput(10,1.3){$y=y(x)-c$}\rput(9.8,2.2){$y=y(x)$}
\rput(5.8,3){$c$}\rput(5.8,4){$c$}
\end{pspicture} 
\end{center}
So ist der Graph der  Funktion $p(x)=x^2+3$  gleich dem  drei  Einheiten nach oben  verschobenen Graph der Funktion $q(x)=x^2$. 
\end{frame}

\begin{frame}{Verschiebung horizontal}
Graph horizontal um $c>0$ verschieben:
\begin{center}
\psset{unit=0.83cm}
\psset{yunit=0.82cm}
\psset{xunit=0.72cm}
\begin{pspicture}(1,0.2)(15,4.6)
\psline(1,1)(15,1)
\psline(5,0.5)(5,4.5)
\psline{->}(7,1.2)(11,1.2)
\psline{->}(7,1.25)(3,1.25)
\psline[linestyle=dashed](11,0.9)(11,1.5)
\psline[linestyle=dashed](7,0.9)(7,1.5)
\psline[linestyle=dashed](3,0.9)(3,1.5)
\pscurve[linewidth=2pt,linestyle=dashed](9.5,2.5)(11,1.5)(14,3.8)(14.5,3.3)
\pscurve[linewidth=2pt](5.5,2.5)(7,1.5)(10,3.8)(10.5,3.3)
\pscurve[linewidth=2pt,linestyle=dashed](1.5,2.5)(3,1.5)(6,3.8)(6.5,3.3)
\rput(15,0.5){$x$}\rput(6.5,4.2){$y= y(x+c)$}
\rput(13.5,4.2){$y=y(x-c)$}\rput(9.5,4.2){$y=y(x)$}
\rput(4,1.5){$c$}\rput(9,1.5){$c$}
\rput(7,0.5){$a$}\rput(11,0.5){$a+c$}
\rput(3,0.5){$a-c$}
\end{pspicture} 
\end{center}
So besteht der Graph der  Funktion $f(x)=(x-1)^2$  aus dem um  eine Einheit nach rechts  verschobenen Graph der Funktion $g(x)=x^2$.
\end{frame}

 \end{document}
 
  
    

 

  

 
 



