Sage-Präsentation

parent b1ddd20c
\documentclass{beamer}
\usepackage[ngerman]{babel}
\usepackage{savesym}
\usepackage{kpfonts} %varprod
\savesymbol{approx}
\savesymbol{colonapprox}
\savesymbol{colonsim}
\usepackage{colonequals} %colonequals ≔
\usepackage{ulsy} %blitza
\newcommand{\ccode}[1]{\texttt{\lstinline[basicstyle=]!#1!}}
\usepackage{iftex}
\ifPDFTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{uniinput}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{amssymb}
\else
\ifLuaTeX
\usepackage{luatextra}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{uniinput-lualatex}
\usepackage{fontspec}
\fi
\fi
\usepackage{amsthm}
\usepackage{sagetex}
\beamertemplatenavigationsymbolsempty
\usetheme{Anadyr}
\newcommand{\hideinstitute}{}
\renewcommand{\footerauthorwidth}{0.25}
\renewcommand{\footertitlewidth}{0.5}
\renewcommand{\footerdatewidth}{0.25}
\newcommand{\blackframe}{{\setbeamercolor{normal text}{bg=black!100} \frame[plain]{}}}
\usepackage{hyperref}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\newcommand{\symdiff}{\ensuremath{\ominus}} % some math symbols
\newcommand{\dsum}{\ensuremath{\bigoplus}}
\newcommand{\ps}[1]{\ensuremath{\mathcal P\left(#1\right)}}
\savesymbol{corollary}
\savesymbol{lemma}
\savesymbol{theorem}
\newcounter{satz}
\newcounter{definition}
\newtheorem{lemma}[satz]{Lemma}
\newtheorem{corollary}[satz]{Korollar}
\newtheorem{theorem}[satz]{Satz}
\theoremstyle{definition}
\newtheorem{defi}[definition]{Definition}
\title{Kurzeinführung Sage}
\author{Jonathan Schmidt-Dominé}
\institute{RWTH Aachen}
\setcounter{tocdepth}{1} % short tocs are usually better in presentations
\begin{document}
\frame{
\titlepage
}
\frame[allowframebreaks]{
\tableofcontents
}
\section{Allgemeines}
\subsection{Was ist Sage?}
\begin{frame}
\begin{itemize}
\item<+-> Computeralgebrasystem, Computeralgebra im weitesten Sinne
\item<+-> Verwendung üblicher Programmiersprache: Python
\item<+-> Frei (und kostenlos)
\item<+-> Integriert Features verschiedenster anderer freier Software: Maxima, R, Singular, GAP, …
\end{itemize}
\end{frame}
\subsection{Frontends}
\begin{frame}
\begin{block}{Web-Frontend}
\begin{itemize}
\item Arbeitet als lokaler HTTP-Server\pause
\item Über Browser zu bedienen, mit MathJax
\end{itemize}
\end{block}
\pause
\begin{block}{Cantor}
\begin{center}
\includegraphics[scale=0.3]{./cantor.png}
% cantor.png: 855x672 pixel, 96dpi, 22.62x17.78 cm, bb=
\end{center}
\end{block}
\end{frame}
\section{Grundlagen}
\subsection{Umgang mit Variablen und Ausdrücken}
\begin{frame}[fragile]
\begin{itemize}
\item<+-> Alle Ausdrücke sind ganz normale Python-Objekte
\item<+-> Symbolischer Ausdrück erzeugt durch \ccode{var} (wenn nicht standardmäßig vorhanden)
\begin{sageblock}
var('x,y')
\end{sageblock}
\item<+-> Rechnen liefert symbolische Ausdrücke
\begin{sageblock}
product = x*y
\end{sageblock}
\item<+-> Einsetzen möglich:
\begin{sageblock}
product(y=1)
\end{sageblock}
ergibt
\[
\sage{(x*y)(y=1)}
\]
\item<+-> Hilfe
\begin{verbatim}
plot?
\end{verbatim}
\end{itemize}
\end{frame}
\subsection{Gleichungen lösen}
\begin{frame}[fragile]
\begin{itemize}
\item<+-> Gleichung lösen mittels \ccode{solve}:
\begin{sagesilent}var('n')\end{sagesilent}
\begin{sageblock}
s=solve(sin(n*x)==1, x)
\end{sageblock}
\[
\sage{s[0]}
\]
\item<+-> Gleichungssystem:
\begin{sageblock}
s=solve([x + 2*y == 1, x - y == 0], (x, y))
\end{sageblock}
\[
\sage{s[0]}
\]
\end{itemize}
\end{frame}
\subsection{Plots}
\begin{frame}[fragile]
\begin{block}{Kreishälfte}
\begin{sageblock}
r=2
p=plot(sqrt(r^2 - x^2), (x, -r, r))
\end{sageblock}
\begin{center}
\sageplot[scale=.4]{p}
\end{center}
\end{block}
\end{frame}
\section{Analysis}
\subsection{Differentiation}
\begin{frame}[fragile]
\begin{itemize}
\item<+-> Erste Ableitung
\begin{sageblock}
d=diff(x^3, x)
\end{sageblock}
\[
\sage{d}
\]
\item<+-> Zweite Ableitung
\begin{sageblock}
d=diff(x^3, x, x) # oder diff(x^3, x, 2)s
\end{sageblock}
\[
\sage{d}
\]
\item<+-> Mehrere Richtungen
\begin{sagesilent}
var('z')
\end{sagesilent}
\begin{sageblock}
f(x,y) = [x*y*z, x*y^2*z]
d = diff(f)
\end{sageblock}
\[
\sage{d}
\]
\end{itemize}
\end{frame}
\subsection{Grenzwerte}
\begin{frame}[fragile]
\begin{itemize}
\item<+-> Geometrische Reihe
\begin{sagesilent}
var('n,b')
\end{sagesilent}
\begin{sageblock}
assume(b>1)
l = sum(1/b^n, n, 1, infinity)
\end{sageblock}
\[
l = \sage{l}
\]
\item<+-> Asymptote
\begin{sageblock}
l = limit(log(exp(x) + exp(-x)) / x, x=infinity)
\end{sageblock}
\[
l=\sage{l}
\]
\end{itemize}
\end{frame}
\subsection{Gewöhnliche Differentialgleichung}
\begin{frame}[fragile]
\begin{block}{Harmonischer Oszillator}
\begin{sagesilent}
f = function('f', x)
omega = var('omega')
\end{sagesilent}
\begin{sageblock}
assume(omega != 0)
s=desolve(diff(diff(f, x), x) == -omega^2*f, f, ivar=x)
\end{sageblock}
\[
\sage{s}
\]
\begin{center}
\sageplot[scale=0.3]{plot(s(omega=1, k1=1, k2=0), (x, 0, 2*pi))}
\end{center}
\end{block}
\end{frame}
\section{Abstraktes}
\subsection{Zahlbereiche etc.}
\begin{frame}[fragile]
\begin{itemize}
\item<+-> Ganze Zahlen \ccode{ZZ}
\item<+-> Rationale Zahlen \ccode{QQ}
\item<+-> Gleitkommazahlen mit gewisser Anzahl an Stellen \ccode{RealField(n)} oder einfach \ccode{RR}
\begin{sageblock}
RF = RealField
s = RF(2)(2.2) + RF(2)(2.5)
\end{sageblock}
\[
s = \sage{s}
\]
\item<+-> Komplexe Gleitkommazahlen \ccode{ComplexField(n)} oder einfach \ccode{CC}
\item<+-> Polynome \ccode{QQ['x']}
\item<+-> Restklassenringe \ccode{ZZ.quotient(n*ZZ)}
\begin{sageblock}
ZZ5 = ZZ.quotient(5*ZZ)
s = ZZ5(3) + ZZ5(4)
\end{sageblock}
\[
s = \sage{s}
\]
\end{itemize}
\end{frame}
\end{document}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment