Home
Sage Tutorial
Contents
1. sage desolve DE x t c e t xe t Dies benutzt Sages Schnittstelle zu Maxima Max daher kann sich die Ausgabe ein wenig von anderen Ausgaben in Sage unterscheiden In diesem Fall wird mitgeteilt dass x t e e c die allgemeine L sung der Differential gleichung ist Sie k nnen auch Laplace Transformationen berechnen Die Laplace Transformation von t e sin t wird wie folgt berechnet sage s var s sage t var t sage f t 2xexp t sin t sage f laplace t s 1 s 2 1 2 s 1 3 Hier ist ein komplizierteres Beispiel Die Verschiebung des Gleichgewichts einer verkoppelten Feder die an der linken Wand befestigt ist rs Massel Masse2 Federl Feder2 wird durch dieses System der Differentialgleichungen zweiter Ordnung modelliert m x ky kg ay koxa 0 Mo25 ko ae 21 0 wobei m die Masse des Objekts i x die Verschiebung des Gleichgewichts der Masse i und k die Federkonstante der Feder i ist Beispiel Benutzen Sie Sage um das obige Problem mit folgenden Werten zu l sen m 2 ma 1 ky 4 ko 2 x1 0 3 x1 0 0 z2 0 3 25 0 0 L sung Berechnen Sie die Laplace Transformierte der ersten Gleichung mit der Notation x 11 y 22 sage del maxima 2xdiff x t t 2 6 xx t 2x y t sage ldel del laplace t s ldel 2x at diff x t t 1 t 0 s 2 laplace x t t s
2. 94 Kapitel 9 Anhang KAPITEL 10 Literaturverzeichnis 95 Sage Tutorial Release 5 11 96 Kapitel 10 Literaturverzeichnis KAPITEL 11 Indizes und Tabellen e genindex modindex e search 97 Sage Tutorial Release 5 11 98 Kapitel 11 Indizes und Tabellen Literaturverzeichnis Cyt Cython http www cython org Dive Dive into Python online frei verf gbar unter http diveintopython org GAP The GAP Group GAP Groups Algorithms and Programming Version 4 4 2005 http www gap system org GAPkg GAP Packages http www gap system org Packages packages html GP PARI GP http pari math u bordeaux fr Ip The IPython shell http ipython scipy org Jmol Jmol an open source Java viewer for chemical structures in 3D http www jmol org Mag Magma http magma maths usyd edu au magma Max Maxima http maxima sf net NagleEtA12004 Nagle Saff and Snider Fundamentals of Differential Equations 6th edition Addison Wesley 2004 Py The Python language http www python org Reference Manual http docs python org ref ref html PyDev Guido Some Guys and a Mailing List How Python is Developed http www python org dev dev_intro html Pyr Pyrex http www cosc canterbury ac nz greg python Pyrex PyT The Python Tutorial http docs python org tutorial SA Sage web site http www sagemath org Si W Dec
3. gens x y sage OO x objgens Univariate Polynomial Ring in x over Rational Field x Polynomringe in mehreren Variablen sind in Sage mit Hilfe von Python Dictionaries und der distributiven Darstel lung eines Polynoms implementiert Sage benutzt Singular Si zum Beispiel bei der Berechnung von ggTs und Gr bnerbasen von Idealen 2 9 Polynome 33 Sage Tutorial Release 5 11 sage R x y PolynomialRing RationalField 2 xy objgens sage f x 3 2xy 2xx 2 sage g x 2xy 2 sage f gcd g EO Als n chstes erstellen wir das Ideal f g welches von f und g erzeugt wird indem wir einfach f g mit R multi plizieren wir k nnten auch ideal f g oder ideal f g schreiben sage I f g R I Ideal x 6 4xx 4xy 2 4xx 2xy 4 x 2xy 2 of Multivariate Polynomial Ring in x y over Rational Field sage B I groebner_basis B x 6 x 2xy 2 sage x 2 in I False brigens ist die obige Gr bnerbasis keine Liste sondern eine unver nderliche Folge Das bedeutet das sie die Attribute universe und parent besitzt und nicht ver ndert werden kann Dies ist n tzlich da nach dem Andern der Basis andere Routinen welche die Gr bnerbasis verwenden nicht mehr funktionieren k nnten sage B parent Category of sequences in Multivariate Polynomial Ring in x y over Rational Field sage B universe Multivariate Polynomial Ring in x
4. Die Syntax der Ausgabe von eigenvectors_ left ist eine Liste von Tripeln Eigenwert Eigenvektor Vielfach heit Eigenwerte und Eigenvektoren ber QQ oder RR k nnen auch unter Verwendung von Maxima berechnen werden Lesen Sie Maxima unterhalb Wie in Wichtige Ringe bemerkt wurde beeinflusst der Ring ber dem die Matrix definiert ist einige ihrer Eigen schaften Im Folgenden gibt erste Argument des mat rix Befehls Sage zu verstehen dass die Matrix als Matrix ber den ganzen Zahlen ZZ als Matrix ber den rationalen Zahlen QQ oder als Matrix ber den reellen Zahlen RR aufgefasst werden soll sage AZ matrix ZZ 2 0 0 1 sage AQ matrix QQ 2 0 0 1 sage AR matrix RR 2 0 0 1 sage AZ echelon_form 2 0 o 1 sage AQ echelon_form 1 0 o 1 sage AR echelon_form 1 00000000000000 0 000000000000000 0 000000000000000 1 00000000000000 Um Eigenwerte und Eigenvektoren mit reellen oder komplexen Gleitkommazahlen zu berechnen sollte die Matrix ber RDF Real Double Field K rper der reellen Gleitkommazahlen mit doppelter Genauigkeit oder CDF Com plex Double Field K rper der komplexen Gleitkommazahlen mit doppelter Genauigkeit definiert werden Falls kein Koeffizientenring angegeben wird und die Matrixeintr ge relle oder komplexe Gleitkommazahlen sind dann werden standardm ssig die K rper RR oder CC verwendet welche allerdings nicht alle der folgenden Berechnungen unter
5. Diese Arbeit ist lizenziert unter einer Creative Commons Attribution Share Alike 3 0 Lizenz Inhaltsverzeichnis 1 Sage Tutorial Release 5 11 2 Inhaltsverzeichnis KAPITEL 1 Einleitung Um dieses Tutorial vollst ndig durchzuarbeiten sollten 3 bis 4 Stunden gen gen Sie k nnen es im HTML oder PDF Format lesen oder im Sage Notebook Dazu klicken Sie zuerst auf Help und Tutorial um innerhalb von Sage interaktiv mit dem Tutorial zu arbeiten Obwohl gro e Teile von Sage mithilfe von Python implementiert sind ist kein tieferes Verst ndnis von Python not wendig um dieses Tutorial lesen zu k nnen Sie werden Python zu einem gewissen Zeitpunkt lernen wollen Python kann sehr viel Spass bereiten und es gibt viele ausgezeichnete freie Quellen wozu auch PyT und Dive geh ren Wenn Sie nur kurz etwas in Sage ausprobieren m chten ist dieses Tutorial der richtige Ort um damit anzufangen Zum Beispiel sage 2 2 4 sage factor 2007 I 372 47223 sage A matrix 4 4 range 16 A EO 2 2 3 4 5 6 7 9 10 11 12 13 14 15 sage factor A charpoly 2 x 2 30 x 80 sage m matrix 22 2 range 4 sage m 0 0 m 0 0 3 sage m 3 1 2 3 sage E EllipticCurve 1 2 3 4 5 sage E Elliptic Curve defined by y 2 xx y 3xy x 3 2xx 2 4xx 5 over Rational Field sage E anlist 10 LO 1 Ly Oe aly 532 Oy Sl 3 3 31 sage E rank 1
6. ji 6xsin pixri 100 5 sin 6 2 pix1 100 for i in range 200 sage p polygon L rgbcolor 1 8 1 4 1 2 sage t text hypotrochoid 5 4 rgbcolor 1 0 0 sage show p t Analysis Lehrer zeichnen h ufig den folgenden Plot an die Tafel nicht nur einen Zweig von der arcsin Funktion sondern mehrere also den Plot von y sin x f r x zwischen 2r und 27 an der 45 Grad Linie gespiegelt Der folgende Sage Befehl erzeugt dies sage v sin x x for x in srange 2x float pi 2 xfloat pi 0 1 sage line v Da die Tangensfunktion einen gr eren Wertebereich als die Sinusfunktion besitzt sollten Sie falls Sie den gleichen Trick anwenden um die Inverse der Tangensfunktion zu plotten das Minimum und Maximum der Koordinaten f r die x Achse ndern sage v tan x x for x in srange 2 float pi 2 float pi 0 01 sage show line v xmin 20 xmax 20 Sage berechnet auch Plots in Polarkoordinaten Konturplots Plots von Vektorfeldern f r besondere Arten von Funk tionen Hier ist ein Beispiel eines Konturplots sage f lambda x y cos x y sage contour_plot f 4 4 4 4 20 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 2 5 2 Dreidimensionale Plots Sage kann auch dazu verwendet werden dreidimensionale Plots zu zeichnen Sowohl im Notebook als auch von der Kommandozeile aus werden diese Plots standardm ig mit den Open Source Paket Jmol angezeigt welches int
7. Package sagetex Warning There were undefined Sage formulas and or plots Run Sage on st_example sage and then run LaTeX on st_example tex again Beachten Sie dass zus tzlich zu den Dateien die LaTeX normalerweise produziert noch eine Datei st_example sage erscheint Das ist das Sage Skript das erstellt wurde als Sie LaTeX mit st_example tex aufgerufen haben Wie Ihnen die Warnmeldung mitteilte sollten Sie Sage ber die Datei st_example sage laufen lassen also tun Sie das bitte Ihnen wird gesagt werden dass Sie LaTeX erneut ber die Datei st_example tex laufen lassen sollen bevor Sie dies tun beachten Sie dass eine neue Datei namens st_example sout von Sage erstellt wurde Diese Datei enth lt die Ergebnisse von Sages Berechnungen in einem Format das LaTeX nutzen kann um es in Ihren Text einzuf gen Ein neues Verzeichnis mit einer eps Datei Ihres Plots wurde ebenfalls erstellt Lassen Sie LaTeX nun erneut laufen und Sie werden sehen dass alles was Sage berechnet und geplottet hat nun in Ihrem Dokument erscheint Die verschiednenen verwendeten Makros sollten einfach zu verstehen sein Eine sageblock Umgebung setzt Ih ren Code unver ndert und f hrt ihn auch aus wenn Sie Sage laufen lassen Wenn Sie etwa sage foo schrei ben wird das Ergebnis des Aufrufs latex foo in Sage in Ihrem Dokument erscheinen Plot Befehle sind et was komplizierter aber in Ihrer einfachsten Form f gt sageplot foo das Bild ein das Sie erhalten we
8. miersprache Python eine beliebte Programmiersprache die von hunderten begabten Softwareingenieuren rege weiterentwickelt und optimiert wird Python ist eine bedeutete Open Source Erfolgsgeschichte mit einem aus gereiften Entwicklungsprozess siehe PyDev 89 Sage Tutorial Release 5 11 8 1 2 Der Pre Parser Unterschiede zwischen Sage und Python Aus mathematischer Sicht kann Python in verschiedener Weise verwirrend sein also verh lt sich Sage an manchen Stellen anders als Python e Notation f r Exponentiation x versus In Python bedeutet xor und nicht Exponentiation also gilt in Python gt gt gt 2 8 10 gt gt gt 32 1 gt gt gt 3xx2 9 Diese Benutzung von kann merkw rdig erscheinen und sie ist ineffizient f r mathematische Anwender da die Exklusives Oder Funktion nur selten verwendet wird Um dies zu beheben parst Sage alle Kommandozeilen bevor es diese zu Python weitergibt und ersetzt jedes Auftreten das in keinem String vorkommt mit x sage 2 8 256 sage 3 2 9 sage 3 2 e a e Integerdivision Der Pythonaudruck 2 3 verh lt sich nicht so wie es Mathematiker erwarten w rden In Py thon wird falls m und n Integer sind auch m n als Integer behandelt es ist n mlich der Quotient von m geteilt durch n Daher ist 2 3 0 Es wurde in der Pythoncommunity dar ber geredet ob in Python die Division ge ndert werden sollte so dass 2 3 die Gleitkommazahl 0 6666 zur ck
9. t work Now try latex add_to_preamble usepackage matrix arrow curve cmtip xy and try viewing again it should work in the command line but not from the notebook In the notebook run latex add_to_mathjax_avoid_list xymatrix and try again you should get a picture a part of the diagram arising from a filtered chain complex 5 5 Ein Beispiel Kombinatorische Graphen mit tkz graph Hochwertige Darstellungen von kombinatorischen Graphen fortan nur noch Graphen sind mit Hilfe des tkz graph Pakets m glich Dieses Paket wurde ausbauend auf das tikz front end der pgf Bibliothek entwickelt Es m ssen also all diese Komponenten Teil der systemweiten TeX Installation sein und es ist m glich dass sie nicht in ihrer neusten Version in der TeX Implementation vorliegen Es ist also unter Umst nden n tig oder ratsam diese Teile separat in Ihrem pers nlichen texmf Baum zu installieren Das Erstellen Anpassen und Warten einer system weiten oder pers nlichen TeX Installation w rde allerdings den Rahmen dieses Dokuments sprengen Es sollte aber einfach sein Anleitungen hierzu zu finden Die n tigen Dateien sind unter Eine vollfunktionsf hige TeX Installation aufgef hrt Um also zu beginnen m ssen wir sicher sein dass die relevanten Pakete eingef gt werden indem wir sie in die Pr ambel des LaTeX Dokuments hinzuf gen Die Bilder der Graphen werden nicht korrekt formatiert sein wenn eine dvi Datei als Zwischene
10. 2 pi v 0 2 pi frame False color red Ein gedrehter Torus sage u v var u v sage fx 3 sin v tcos u cos 2x v sage fy 3 sin v cos u sin 2x v sage fz sin u 2 cos v sage parametric_plot3d fx fy fz u 0 2 pi V 0 2 pi frame False color red Die Lemniskate 2 5 Plotten 21 Sage Tutorial Release 5 11 sage x Y Z Var x y 2 sage f x Y 2 4 x 2 x 2 y 2 222 z y 2 x y2 z 2 1 sage implicit_plot3d f x 0 5 0 5 y 1 1 z 1 1 s _section functions issues 2 6 H ufige Probleme mit Funktionen Das Definieren von Funktionen kann in mancher Hinsicht verwirrend sein z B beim Ableiten oder Plotten In diesem Abschnitt versuchen wir die relevanten Probleme anzusprechen Nun erl utern wir verschiedene M glichkeiten Dinge zu definieren die das Recht haben k nnten Funktionen ge nannt zu werden 1 Definition einer Python Funktion wie in Funktionen Einr ckungen und Z hlen beschrieben Diese Funktionen k nnen geplottet aber nicht abgeleitet oder integriert werden sage def f z return z 2 sage type f lt type function gt sage f 3 9 sage plot f 0 2 Beachten Sie die Syntax in der letzten Zeile Falls Sie stattdessen plot f z 0 2 verwenden erhalten Sie einen Fehler da z eine Dummy Variable in der Definition von f ist und auBerhalb dieser nicht definiert ist In der Tat gibt sogar nu
11. F gens sage d Dx 2 x Cxx3 b 2xc 3xd sage F AbelianGroup 3 2 3 F Multiplicative Abelian group isomorphic to C2 x C2 x C2 sage H AbelianGroup 2 3 names xy H Multiplicative Abelian group isomorphic to C2 x C3 sage AbelianGroup 5 Multiplicative Abelian group isomorphic tZx Z x 2x2 x242 sage AbelianGroup 5 order Infinity 2 10 Endliche und abelsche Gruppen 35 Sage Tutorial Release 5 11 2 11 Zahlentheorie Sage hat fiir Zahlentheorie eine ausgiebige Funktionsvielfalt Zum Beispiel k nnen wir Arithmetik in Z NZ wie folgt betreiben sage R IntegerModRing 97 sage a R 2 R 3 sage a 33 sage a rational_reconstruction 2 3 sage b R 47 sage b 20052005 50 sage b modulus 97 sage b is_square True Sage enth lt standardm ige zahlentheoretische Funktionen Zum Beispiel sage gcd 515 2005 5 sage factor 2005 5 x 401 sage c factorial 25 c 15511210043330985984000000 sage valuation c p for p in prime_range 2 23 22 10 6 35 2 Lp By 2 sage next_prime 2005 2011 sage previous_prime 2005 2003 sage divisors 28 sum divisors 28 2x28 1 2 4 7 14 28 56 56 Perfekt Sages sigma n k Funktion summiert die kter Potenzen der Teiler von n sage sigma 28 0 sigma 28 1 sigma 28 2 6 56 1050 Als n chstes illustrieren wir den erweiterten euklidischen Algorithmus Eulers Funktion und den chine
12. Sage Tutorial Release 5 11 sage k 1 sqrt 3 I 3 4 sqrt 73 5 9 k 36 20 sqrt 73 36 I sqrt 3 27 sage N k 0 165495678130644 0 0521492082074256x1I sage N k 30 30 bits 0 16549568 0 052149208x1 sage latex k frac 36 20 sqrt 73 36 i A sqrt 3 27 1 1 Installation Falls Sie Sage auf Ihrem Computer nicht installiert haben und nur ein paar Befehle ausf hren m chten k nnen Sie es online unter http www sagenb org benutzen Schauen Sie sich den Sage Installation Guide an um Anleitungen zur Installation von Sage auf Ihrem Computer zu erhalten Hier geben wir nur ein paar Kommentare ab 1 Die herunterladbare Sage Datei wurde nach der batteries included Philosophie zusammengestellt In anderen Worten obwohl Sage Python IPython PARI GAP Singular Maxima NTL GMP und so weiter benutzt m s sen Sie diese Programme nicht separat installieren da diese in der Sage Distribution enthalten sind Jedoch m ssen Sie um bestimmte Sage Zusatzfunktionen zum Beispiel Macaulay oder KASH nutzen zu k nnen die se entsprechenden optionalen Pakete installieren oder zumindest die relevanten Programme auf ihrem Computer schon installiert haben Macaulay und KASH sind Sage Pakete um eine Liste aller verf gbaren Sage Pakete zu sehen geben Sie sage optional ein oder rufen Sie die Download Seite auf der Sage Webseite auf 2 Die vorkompilierte Bin rversion von Sage zu finden auf der Sage Web
13. So kann Sage effektiv genutzt werden um Teile eines LaTeX Dokuments zu erstellen Erstellen oder berechnen Sie ein Objekt in Sage drucken Sie es mit dem latex Befehl aus und f gen Sie es in Ihr Dokument ein 2 Die Notebook Schnittstelle ist konfiguriert MathJax zu nutzen um mathematische Ausdr cke im Browser darzu stellen MathJax ist eine Kollektion aus JavaScript Routinen und zugeh rigen Schriftarten Es ist also nichts zu s tzlich einzustellen um mathematische Ausdr cke in Ihrem Browser anzuzeigen wenn Sie das Sage Notebook nutzen MathJax wurde entwickelt um einen gro en aber nicht vollst ndigen Teil von TeX darstellen zu k nnen Es gibt keine Unterst tzung f r Dinge wie komplizierte Tabellen Kapiteleinteilung oder Dokument Management da es f r genaues Darstellen von TeX Ausdr cken konzipiert wurde Die nahtlose Darstellung von mathematischen Ausdr cken im Sage Notebook wird durch Konvertierung der latex Darstellung in MathJax gew hrleistet Da MathJax seine eigenen skalierbaren Schriftarten nutzt ist es anderen Methoden berlegen die auf Konver tierung in kleine Bilder beruhen 3 Sollte in der Sage Kommandozeile oder im Notebook mehr LaTeX Code vorkommen als MathJax verarbeiten kann kann eine systemweite Installation von LaTeX aushelfen Sage beinhaltet fast alles das Sie brauchen um Sage weiter zu entwickeln und zu nutzen Eine Ausnahme hierzu ist TeX selbst In diesen Situationen m ssen also TeX und versch
14. number of vars 2 block 1 ordering dp names x y block 2 ordering C sage f singular 9 y 8 9xx 2x y 7 18 x 3 y 6 18 x 5xy 6 1 9xx 6xy 4 18xx 7xy5 36xx 8xy 4 9xx 10xy74 18xx 11xy2 u 9xx 12xy 3 18xx 13xy72 9 x 16 Wir haben also das Polynom f definiert nun geben wir es aus und faktorisieren es sage f 9xx 16 18xx 13xy 2 9xx 12x y 3 9 xx 10xy 4 18xx 11xy 2 36xx 8xy 4 18xx 7xy75 18xx 5 y 6 9x 6x y 4 18xx sage f parent Singular sage F f factorize F 4 2 GAP 63 Sage Tutorial Release 5 11 2 11479 _ 2 x 6 2xx 3xy 2 x 2xy 3 y 4 3 x 5ty 2 2 1 1 2 sage F 1 2 x 6 2xx 3xy 2 x 2xy 3 y 4 Genau wie im GAP Beispiel in GAP k nnen wir diese Faktorisierung berechnen ohne explizit die Singular Schnittstelle zu nutzen Dennoch nutzt Sage im Hintergrund die Singular Schnittstelle f r die Berechnung Bitte geben Sie ein ohne sage x y QO x y gens sage f 9xy 8 9xx 2xy 7 18xx 3xy 6 18xx 5xy 6 9xx 6xy 4 1 18xx 7 xy 5 36xx 8xy 4 9x xx 10 y 4 18xx 11 y 2 9 xx 12 y73 sao LORA LAY AZ INT sage factor f 9 amp 7819 y 2 2 x x 6 Z2ex 3ey 2 K 2xy 3 y 4 4 4 Maxima Das in Lisp implementierte Maxima ist ein Teil von Sage Hingegen wird das gnuplot Paket welches Maxima stan dardm ig zum plotten nutzt als optionales Sage Paket angeboten Neben anderen Dingen rechnet Maxi
15. oder sogar nur sage R lt t gt QQ Dies hat den zus tzlichen Nebeneffekt dass die Variable t als Unbestimmte des Polynomrings definiert wird Sie k nnen daher nun wie folgt auf einfache Weise Elemente von R definieren Beachten Sie dass die dritte M glichkeit sehr hnlich zu der Konstruktor Notation in Magma ist und genau wie in Magma kann Sie dazu verwendet werden eine Vielzahl von Objekten zu definieren sage poly t 1 t 2 poly t 2 xt 2 sage poly in R True Unabh ngig davon wie Sie den Polynomring definieren k nnen Sie die Unbestimmte als den 0t Erzeuger zur cker halten sage R PolynomialRing QQ t sage t R 0 sage t in R True Beachten Sie dass Sie bei den komplexen Zahlen eine hnliche Konstruktion verwenden k nnen Sie k nnen die komplexen Zahlen ansehen als w ren sie von dem Symbol i ber den reellen Zahlen erzeugt wir erhalten also Folgendes sage CC Complex Field with 53 bits of precision sage CC 0 Oth generator of CC 1 00000000000000x1 Beim Erzeugen von Polynomringen kann man sowohl den Ring als auch den Erzeuger oder nur den Erzeuger wie folgt erhalten sage R t QQ t objgen sage t Q0 t gen sage R t objgen QQ t sage t gen 00 t Schlie lich treiben wir etwas Arithmetik in Q t sage R t QQ t objgen sage f 2 t 7 3 t 2 15 19 sage f 2 4xt 14 12 t 9 60 19xt 7 9 t 4 90 1
16. plot cos 5 5 Sobald Sie einen Variablennamen angegeben haben k nnen Sie parametrische Plots erzeugen sage x var x sage parametric_plot cos x sin x 3 x 0 2 pi rgbcolor hue 0 6 Es ist wichtig zu beachten dass sich die Achsen eines Plots nur schneiden wenn sich der Ursprung im angezeigten Bildbereich des Graphen befindet und ab einer bestimmten Gr e der Werte wird die wissenschaftliche Notation benutzt sage plot x 2 x 300 500 Sie k nnen mehrere Plots zusammenf gen indem Sie diese addieren sage x var x sage pl parametric_plot cos x sin x x 0 2 pi rgbcolor hue 0 2 sage p2 parametric_plot cos x sin x 2 x 0 2 pi rgbcolor hue 0 4 sage p3 parametric_plot cos x sin x 3 x 0 2 pi rgbcolor hue 0 6 sage show pltp2 p3 axes false Eine gute M glichkeit ausgef llte Figuren zu erstellen ist eine Liste von Punkten zu erzeugen L im folgenden Bei spiel und dann den polygon Befehl zu verwenden um die Figur mit dem durch die Punkte bestimmten Rand zu zeichnen Zum Beispiel ist hier ein gr nes Deltoid sage L 1 cos pixi 100 x 1 cos pixi 100 nr 2xsin pi i 100 x 1 cos pixr1 100 for i in range 200 sage p polygon L rgbcolor 1 8 3 4 1 2 sage p Geben Sie show p axes false ein um dies ohne Achsen zu sehen Sie k nnen auch Text zu einem Plot hinzuf gen sage L 6xcos pixi 100 5x c0s 6 2 pixi 100
17. sage cputime t random output 0 64 sage cputime T Return the time in CPU second since SAGE started or with optional argument t return the time since time t INPUT t optional float time in CPU seconds OUTPUT float time in CPU seconds Der walltime Befehl entspricht cput ime nur misst dieser die Echtzeit Wir k nnen die oben genannte Potenz auch in einigen der Computer Algebra Systeme die Sage mitbringt berechnen In jedem Fall f hren wir einen trivialen Befehl aus um den entsprechenden Server dieses Programms zu starten Sollte es erhebliche Unterschiede zwischen Echtzeit und CPU Zeit geben deutet dies auf ein Leistungsproblem hin dem man nachgehen sollte sage time 1938799484 CPU times user 0 01 s sys 0 00 s total 0 01 s Wall time 0 01 sage gp 0 0 sage time g gp 1938 99484 CPU times user 0 00 s sys 0 00 s total 0 00 s wall time 0 04 sage maxima 0 0 sage time g maxima 1938 99484 CPU times user 0 00 s sys 0 00 s total 0 00 s wall time 0 30 sage kash 0 0 sage time g kash 1938 99484 CPU times user 0 00 s sys 0 00 s total 0 00 s wall time 0 04 sage mathematica 0 0 sage time g mathematica 1938 99484 CPU times user 0 00 s sys 0 00 s total 0 00 s Wall time 0 03 sage maple 0 0 sage time g maple 1938 99484 CPU times user 0 00 s sys 0 00 s total 0 00 s Wall time 0 11 sage gap 0 0 sage time g
18. Beispiel sage Spdb Automatic pdb calling has been turned ON sage EllipticCurve 1 infinity lt type exceptions TypeError gt Traceback most recent call last ipdb gt Tippen Sie in der ipdb gt Eingabeaufforderung um eine Liste der Befehle des Debuggers zu erhalten ipdb gt Documented commands type help lt topic gt EOF break commands debug h 1 pdef quit tbreak a bt condition disable help list pdoc ia u alias c cont down ignore n pinfo return unalias args cl continue enable j next pp S up b clear d exit jump p q step w whatis where Miscellaneous help topics exec pdb Undocumented commands retval rv Dr cken Sie Strg D oder geben Sie quit ein um zu Sage zur ckzukehren 52 Kapitel 3 Die interaktive Kommandozeile Sage Tutorial Release 5 11 3 6 R ckw rtssuche und Tab Vervollst ndigung Definieren Sie zuerst einen dreidimensionalen Vektorraum V Q wie folgt sage V VectorSpace QQ 3 sage V Vector space of dimension 3 over Rational Field Sie k nnen auch die folgende verk rzte Schreibweise verwenden sage V 0073 Schreiben Sie den Anfang eines Befehls und dr cken Sie dann Strg p oder dr cken Sie einfach die Pfeil nach oben Taste um zur vorher eingegebenen Zeile zu gelangen die ebenfalls so beginnt Das funktioniert auch nach einem kompletten Sage Neustart noch Sie k nnen den Verlauf auch mit Strg r r ckw rts durchsuchen Diese F
19. a3 a4 ag Gibt die elliptische Kurve y ary azy 2 aga age ag zur ck wobei die a s umgewandelt werden zum Typ von a Falls alle a den Typ Z haben werden sie zu Q umgewandelt e EllipticCurve a4 ag Das Gleiche wie oben jedoch ist aj a2 az 0 e EllipticCurve label Gibt die elliptische Kurve aus der Datenbank von Cremona mit dem angegebenen neuen Cremona Label zur ck Das Label ist ein String wie z B 11a oder 3752 Die Buchstaben m ssen klein geschrieben sein um sie von dem alten Label unterscheiden zu k nnen e EllipticCurve j Gibt die elliptische Kurve mit 7 Invariante j zur ck e EllipticCurve R a a2 a3 a4 ag Erzeugt die elliptische Kurve ber dem Ring R mit vorgegebenen a s wie oben Wir veranschaulichen jede dieser Konstruktionen 2 12 Etwas weiter fortgeschrittene Mathematik 39 Sage Tutorial Release 5 11 sage EllipticCurve 0 0 1 1 0 Elliptic Curve defined by y 2 y ENS x over Rational Field sage EllipticCurve GF 5 0 0 1 1 0 Elliptic Curve defined by y 2 y x 3 4 x over Finite Field of size 5 sage EllipticCurve 1 2 Elliptic Curve defined by y 2 x 3 x 2 over Rational Field sage EllipticCurve 37a Elliptic Curve defined by y 2 y x 3 x over Rational Field sage EllipticCurve_from_j 1 Elliptic Curve defined by y 2 Xx y x 3 36xx 3455 over Rational Field sage Ell
20. bar zu der Kompilierung mit der Deklaration cfile bar hinzugef gt werden 6 3 eigenst ndige Python Sage Skripte Das folgende eigenst ndige Sageskript faktorisiert ganze Zahlen Polynome usw usr bin env sage python import sys from sage all import x if len sys argv 2 print Usage s lt n gt sys argv 0 print Outputs the prime factorization of n sys exit 1 print factor sage_eval sys argv 1 Um dieses Skript benutzen zu k nnen muss SAGE_ROOT in ihrer PATH Umgebungsvariable enthalten sein Falls das das obige Skript factor genannt wurde ist hier ein beispielhafter Aufruf bash factor 2006 2 17 59 bash factor 32xx 5 1 2xx 1 x 16xx 4 8xx7 3 4xx 2 2xx 1 6 4 Datentypen Jedes Objekt hat in Sage einen wohldefinierten Datentyp Python besitzt eine Vielzahl von standardm iger elemen tarer Datentypen und die Sage Bibliothek f gt noch viele weitere hinzu Zu Pythons standardm igen Datentypen geh ren Strings Listen Tupel Ganzzahlen und Gleitkommazahlen wie hier zu sehen ist 6 3 eigenst ndige Python Sage Skripte 77 Sage Tutorial Release 5 11 sage s sage type s lt type str gt sage s sage type s Sie k nnen einfache oder doppelte Anf hrungszeichen verwenden lt type str gt sage s 1 2 3 4 type s lt type list gt sage s 1 2 3 4 type s lt type tuple gt sage s int 2006 type s lt t
21. coordinate_vector self v return self ambient_vector_space v Die coordinate_vector Funktion steckt ihre Eingabe in den umgebenden Raum was zur Folge hat dass der Koeffizientenvektor von v zur Basis des Vektorraums V ausgerechnet wird Der Raum V ist schon der umgebende n mlich gerade Q Es gibt auch eine coordinate_vector Funktion f r Unterr ume und sie funktioniert anders Wir definieren einen Unterraum und schauen uns das an sage V 00 3 W V span_of_basis V 0 V 1 sage W coordinate_vector def coordinate_vector self v hoe ho First find the coordinates of v wrt echelon basis w self echelon_coordinate_vector v Next use transformation matrix from echelon basis to 54 Kapitel 3 Die interaktive Kommandozeile Sage Tutorial Release 5 11 user basis T self echelon_to_user_matrix return T linear_combination_of_rows w Wenn Sie der Meinung sind dass diese Implementation ineffizient ist helfen Sie uns bitte unsere Lineare Algebra zu optimieren Sie k nnen auch help command_name oder help class eingeben um eine manpage artige Hilfe zu bekom men sage help VectorSpace Help on class VectorSpace class VectorSpace _builtin__ object Create a Vector Space To create an ambient space over a field with given dimension using the calling syntax Wenn Sie q dr cken um das Hilfesystem zu verlassen kommen Sie genau dahin zur ck wo Sie Ihre Sitzung verlassen hab
22. cos y 3 0 10 0 sage maxima expr_2 5xsin x x cos x 2 cos y sin x 2 sin 2xy 3 0 5x sin x sin x 2 sin 2 y cos x 2 x c0s y 3 0 sage maxima expr_3 5x sin x 2 x cos y cos x 2 sin 2xy 5x cos x 2 sin 2xy sin x 2 xcos y sage maxima plot3d expr_l expr_2 expr_3 x pi pil not tested ses ly pir Spill F arrada 40 401 plot_format openmath 4 4 Maxima 65 Sage Tutorial Release 5 11 66 Kapitel 4 Schnittstellen KAPITEL 5 Sage LaTeX und ihre Freunde Sage und der TeX Dialekt LaTeX haben eine sehr synergetische Beziehung Dieses Kapitel hat das Ziel die Vielfalt an Interaktionen von den einfachsten bis hin zu den ungew hnlichen und fast schon magischen vorzustellen Sie sollten also nicht gleich das ganze Kapitel im ersten Durchgang durch das Tutorial lesen 5 1 berblick Es ist wahrscheinlich am einfachsten die verschiedenen Einsatzm glichkeiten von LaTeX zu verstehen wenn man sich die drei grunds tzlichen Methoden in Sage ansieht 1 Jedes Objekt in Sage muss eine LaTeX Darstellung haben Sie k nnen diese Darstellung erreichen indem Sie im Notebook oder der Kommandozeile latex foo ausf hren wobei foo ein Objekt in Sage ist Die Aus gabe ist eine Zeichenkette die eine recht genaue Darstellung im mathematischen Modus von TeX bietet z B zwischen jeweils zwei Dollarzeichen Einige Beispiele hierf r folgen unten
23. die Matrixmultiplikation sind einfach und nat rlich sage A Matrix 1 2 3 sage w vector 1 1 4 sage wxA 0 0 0 sage Axw 9 1 2 sage kernel A Fr module of degr 3 and rank 1 over Integer Ring Echelon basis matrix 1 1 4 3 2 11 1 1 1 Beachten Sie dass in Sage der Kern einer Matrix A der linke Kern d h der Raum der Vektoren w mit wA 0 ist Mit der Methode solve_right k nnen Matrixgleichungen einfach gel st werden Das Auswerten von A solve_right Y gibt eine Matrix oder einen Vektor X zur ck so dass AX Y gilt sage Y vector 0 4 1 sage X A solve_right Y sage X 2 Ly 0 sage A x X wir berpr fen unsere Antwort 0 4 1 Anstelle von solve_right kann auch ein Backslash verwendet werden Benutzen Sie A Y anstelle von A solve_right Y sage A Y 2 1 0 Falls keine L sung existiert gibt Sage einen Fehler zur ck sage A solve_right w Traceback most recent call last ValueError matrix equation has no solutions Auf hnliche Weisen k nnen Sie A solve_left Y benutzen um nach X in X A Y aufzul sen Sage kann auch Eigenwerte und Eigenvektoren berechnen 2 8 Lineare Algebra 27 Sage Tutorial Release 5 11 sage A matrix 0 4 1 0 sage A eigenvalues 2 1 2x1 sage B matrix 1 3 3 1 sage B eigenvectors_left 4 1 1 r Ly 72 I 1 1 z 1
24. gap eval 1938 99484 CPU times user 0 00 s sys 0 00 s total 0 00 s Wall time 1 02 Achten Sie darauf dass GAP und Maxima am langsamsten in diesem Test sind er lief auf dem Computer sage math washington edu Aufgrund des Pexpect Schnittstellen Overheads ist es aber vielleicht unfair die se mit Sage zu vergleichen welches am schnellsten war 3 4 Befehle zur Zeitmessung 51 Sage Tutorial Release 5 11 3 5 Fehlerbehandlung Wenn irgendetwas schief geht werden Sie normalerweise eine Python Fehlermeldung sehen Python macht sogar einen Vorschlag was den Fehler ausgel st hat Oft sehen Sie den Namen der Fehlermeldung z B NameError oder ValueError vgl Python Reference Manual Py f r eine komplette Liste der Fehlermeldungen Zum Beispiel sage 3_2 File lt console gt line 1 22 3 _2 A SyntaxError invalid syntax sage EllipticCurve 0 infinity Traceback most recent call last TypeError Unable to coerce Infinity lt class sage Infinity gt to Rational Der interaktive Debugger ist manchmal hilfreich um zu verstehen was schiefgelaufen ist Sie k nnen ihn ein oder aus schalten indem Sie pdb eingeben standardm ig ist er ausgeschaltet Die Eingabeaufforderung ipdb gt erscheint wenn eine Fehlermeldung geworfen wird und der Debugger eingeschaltet ist Im Debugger k nnen Sie den Status jeder lokalen Variable ausgeben oder im Ausf hrungstack hoch und runterspringen Zum
25. gew hnliche funktionale Notation unterst tzt da dies bequem ist und manche mathematische Ausdr cke in objektorientierter Notation verwirrend aussehen k nnten Hier sind einige Beispiele sage n 2 n sgrt sqrt 2 sage sqrt 2 sqrt 2 sage V VectorSpace 00 2 sage V basis sage M MatrixSpace GF 7 2 M Full MatrixSpace of 2 by 2 dense matrices over Finite Field of size 7 sage A M 1 2 3 4 A 1 2 78 Kapitel 6 Programmierung Sage Tutorial Release 5 11 3 4 sage A charpoly x X 2 24x 5 sage charpoly A x ENLAZA RD Um alle Member Funktionen von A anzuzeigen k nnen Sie die Tab Vervollst ndigung benutzen Tippen Sie einfach A dann die tab Taste auf Ihrer Tastatur wie es in R ckw rtssuche und Tab Vervollst ndigung beschrieben ist 6 5 Listen Tupel und Folgen Der Listen Datentyp speichert Elemente eines beliebigen Typs Wie in C C usw jedoch anders als in vielen gew hnlichen Computer Algebra Systemen die Elemente der Liste werden bei 0 beginnend indiziert sage v 2 3 5 x SymmetricGroup 3 v 2 3 5 x Symmetric group of order 3 as a permutation group sage type v lt type list gt sage v 0 2 sage v 2 5 Wenn man auf ein Listenelement zugreift ist es OK wenn der Index kein Python int ist Mit einem Sage Integer oder Rational oder mit allem anderen mit einer __index___ Methode funktioniert es ge
26. guter Hinweis darauf sein welche Teile optimiert werden sollten Python und daher auch Sage stellen mehrere Profiling so wird dieser Prozess genannt Optionen zur Verf gung Am einfachsten zu Benutzen ist das prun Kommando in der interaktiven Shell Es gibt eine Zusammenfassung zu r ck die beschreibt welche Funktionen wie viel Berechnungszeit veranschlagt haben Um die zu diesem Zeitpunkt langsame Matrixmultiplikation ber endlichen K rpern zu Profilieren geben Sie z B folgendes ein sage k a GF 2xx8 a objgen sage A Matrix k 10 10 k random_element for _ in range 10x 10 sage lt prun B AxA 32893 function calls in 1 100 CPU seconds Ordered by internal time ncalls tottime percall cumtime percall filename lineno function 12127 0 160 0 000 0 160 0 000 0 isinstance 2000 0 150 0 000 0 280 0 000 matrix py 2235 __getitem__ 1000 0 120 0 000 0 370 0 000 finite_field_element py 392 __mul__ 1903 0 120 0 000 0 200 0 000 finite_field_element py 47 __init__ 1900 0 090 0 000 0 220 0 000 finite_field_element py 376 __compat 900 0 080 0 000 0 260 0 000 finite_field_element py 380 __add__ 1 0 070 0 070 1 100 1 100 matrix py 864 __mul__ 2105 0 070 0 000 0 070 0 000 matrix py 282 ncols Hier ist ncalls die Anzahl der Aufrufe tot t ime ist die Gesamtzeit die f r die Funktion verwendet wurde ausge nommen der Zeit die f r Unterfunktionsaufrufe verwendet wurde percall ist der Quotient von t
27. in der Sage Kommandozeile aufgerufen wird und latex als Prozessor eingestellt ist wird eine dvi Datei erzeugt die dann mit einem dvi Anzeigeprogramm wie xdvi angezeigt wird Im Gegensatz hierzu wird bei Aufruf von view mit dem Prozessor pdflatex eine PDF Datei erzeugt die mit dem Standard PDF Programm angezeigt wird acrobat okular evince etc Im Notebook kann es n tig sein dem System die Entscheidung abzunehmen ob MathJax f r einige TeX Schnipsel oder das systemweite LaTeX f r kompliziertere Ausdr cke genutzt werden soll Es gibt eine Liste von Befehlen die wenn einer von ihnen in einem St ck LaTeX Code erkannt wird die Ausgabe von LaTeX oder welcher Prozessor auch immer durch latex engine gesetzt ist statt von MathJax erstellen l sst Diese Liste wird verwaltet durch die Befehle latex add_to_mathjax_avoid_list und latex mathjax_avoid_list sage latex mathjax_avoid_list sage latex mathjax_avoid_list sage latex mathjax_avoid_list foo bar sage latex mathjax_avoid_list foo bar sage latex add_to_mathjax_avoid_list tikzpicture sage latex mathjax_avoid_list foo bar tikzpicture sage latex mathjax_avoid_list sage latex mathjax_avoid_list Nehmen wir an ein LaTeX Ausdruck wurde im Notebook durch view oder w hrend aktiviertem Type set Knopf erzeugt Und dann wird festgestellt dass er die externe LaTeX Installati
28. lineevents 1 sage prof run AxA lt hotshot Profile instance at 0x414cllec gt sage prof close Dies f hrt zu einer Datei pythongrind prof in aktuellen Datenverzeichnis Diese kann nun zur Visualisierung in das cachegrind Format konvertiert werden Tippen Sie in einer System Shell hotshot2calltree o cachegrind out 42 pythongrind prof Die Ausgabedatei cachegrind out 42 kann nun mit kcachegr ind untersucht werden Bitte beachten Sie dass die Namenskonvention cachegrind out XX erhalten bleiben muss 86 Kapitel 6 Programmierung KAPITEL 7 SageTeX nutzen Das SageTeX Paket erm glicht es Ihnen die Ergebnisse von Sage Berechnungen direkt in ein LaTeX Dokument zu setzen Es wird standardm ig mit Sage installiert Um es zu nutzen m ssen Sie es lediglich in Ihrem lokalen TeX System installieren wobei installieren hier eine einzige Datei kopieren bedeutet Siehe hierf r auch Installation in diesem Tutorial und den Abschnitt Make SageTeX known to TeX des Sage installation guide dieser Link sollte Sie zu einer lokalen Kopie der Installationsanleitung f hren um weitere Informationen zu erhalten Hier stellen wir ein sehr kurzes Beispiel vor wie man SageTeX nutzt Die komplette Dokumentation finden Sie un ter SAGE_ROOT local share texmf tex generic sagetex wobei SAGE_ROOT das Installationsver zeichnis von Sage ist Dieses Verzeichnis enth lt die Dokumentation eine Beispieldatei und einige n t
29. manchmal ist die nichttriviale Funktionalit t auf Ringe ber Q oder endliche K rper beschr nkt Zum Beispiel k nnen wir die Vereinigung zweier affiner planarer Kurven berechnen und dann die Kurven als irreduzible Komponenten der Vereinigung zur ck erhalten sage x y AffineSpace 2 00 xy gens sage C2 Curve x 2 y 2 1 sage C3 Curve x 3 y 3 1 sage D C2 C3 sage D Affine Curve over Rational Field defined by XD x 3y 2 x 2ey 3 y 5 x 3 yr3 x 2 y 2 1 sage D irreducible_components Closed subscheme of Affine Space of dimension 2 over Rational Field defined by o a Ty Closed subscheme of Affine Space of dimension 2 over Rational Field defined by z3 y 3 1 Wir k nnen auch alle Punkte im Schnitt der beiden Kurven finden indem wir diese schneiden und dann die irreduziblen Komponenten berechnen sage V C2 intersection C3 sage V irreducible_components Closed subscheme of Affine Space of dimension 2 over Rational Field defined by y 1 X Closed subscheme of Affine Space of dimension 2 over Rational Field defined by Yr x 1 38 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 Closed subscheme of Affine Space of dimension 2 over Rational Field defined by x y 2 2xy 2 4xy 3 Also sind zum Beispiel 1 0 und 0 1 auf beiden Kurven wie man sofort sieht genauso wie bestimmte quadrati schen Punkte dere
30. sollte f r GNU Linux Mac OS X und Windowsbenutzer einfach aus dem Quell code kompiliert werden k nnen kooperativ Sage stellt robuste Schnittstelle zu vielen anderen Computeralgebrasystemen einschlie lich PA RI GAP Singular Maxima KASH Magma Maple und Mathematica zur Verf gung Sage ist dazu gedacht bestehende Mathematik Software zu vereinheitlichen und zu erweitern gut dokumentiert Es gibt ein Tutorial einen Programmierguide ein Referenzhandbuch und Howtos mit zahl reichen Beispielen und Erl uterungen der dahinterstehenden Mathematik erweiterbar Es ist m glich neue Datentypen zu definieren oder von eingebauten Typen abzuleiten und Code vieler verschiedener Sprachen zu benutzen benutzerfreundlich Es sollte einfach sein zu verstehen welche Funktionalit t f r ein bestimmtes Objekt zur Verf gung gestellt wird und die Dokumentation und den Quellcode zu betrachten Weiterhin sollte ein hochwer tiger Benutzersupport erreicht werden 1 3 Langfristige Ziele von Sage 5 Sage Tutorial Release 5 11 6 Kapitel 1 Einleitung KAPITEL 2 Eine begleitende Tour Dieser Abschnitt ist eine begleitende Tour einiger in Sage vorhandener Funktionen Um viele weitere Beispiele zu sehen schauen Sie sich Sage Constructions an Dies ist dazu gedacht die allgemeine Frage Wie konstruiere ich in Sage zu beantworten Schauen Sie sich auch das Sage Reference Manual an welches Tausende weiterer Beispiele beinh
31. um ein neues Objekt an das Ende von v anzuh ngen und benutzen Sie del v i um den ten Eintrag von v zu l schen sage len v 4 sage v append 1 5 sage v 1 hello 2 3 sin x 3 1 50000000000000 sage del v 1 sage v 1 2 3 sin x 3 1 50000000000000 Eine weitere wichtige Datenstruktur ist das Dictionary oder assoziatives Array Dies funktioniert wie eine Liste au er dass es mit fast jedem Objekt indiziert werden kann die Indizes m ssen jedoch unver nderbar sein sage d hi 2 3 8 pi e pi sage d hi 2 sage dle pi Sie k nnen auch neue Datentypen definieren indem Sie Klassen verwenden Mathematische Objekte mit Klassen zusammenzufassen ist eine m chtige Technik die dabei helfen kann Sage Programme zu vereinfachen und zu orga nisieren Unten definieren wir eine Klasse welche die Liste der geraden Zahlen bis n darstellt Sie wird von dem Standard Typ list abgeleitet sage class Evens list def __init__ self n self n n list __init__ self range 2 n l 2 def _ repr self return Even positive numbers up to n Die __init__ Methode wird aufgerufen um das Objekt zu initialisieren wenn es erzeugt wird die __repr__ Method gibt einen Objekt String aus Wir rufen die Listen Konstruktor Methode in der zweite Zeile der__init__ Methode Ein Objekt der Klasse Evens erzeugen wir wie folgt sage e Evens 10 sage e Even positive numbers up to n Bea
32. version 3 1 0 0 lt by G M Greuel G Pfister H Schoenemann Mar 2009 FB Mathematik der Universitaet D 67653 Kaiserslautern 3 2 Ein und Ausgaben loggen Die Sage Sitzung loggen bzw speichern ist nicht das Gleiche siehe Speichern und Laden kompletter Sitzungen Um Eingaben und optional auch Ausgaben zu loggen nutzen Sie den Befehl logstart Geben Sie logstart ein um weitere Informationen zu erhalten Sie k nnen diesen Befehl nutzen um alle Eingaben und Ausgaben zu loggen und diese sogar wiederholen in einer zuk nftigen Sitzung indem Sie einfach die Log Datei laden was form sage SAGE Version 4 5 2 Release Date 2010 08 05 Type notebook for the GUI and license for information sage logstart setup Activating auto logging Current session state plus future input saved Filename setup Mode backup Output logging False Timestamping False State active sage EllipticCurve 1 2 3 4 5 minimal_model sage F 0073 sage x y QQ x y gens sage G E gens sage Exiting SAGE CPU time 0m0 61s Wall time 0m50 39s was form sage SAGE Version 4 5 2 Release Date 2010 08 05 Type notebook for the GUI and license for information sage load setup Loading log file lt setup gt one line at a time Finished replaying log file lt setup gt sage E Elliptic Curve defined by y 2 x y x 3 x 2 4
33. x 0 s 2 laplace y t t s t6 laplace x t t Das ist schwierig zu lesen es besagt jedoch dass 2z 0 25 X s 2sx 0 2Y s 6X s 0 wobei die Laplace Transformierte der Funktion mit kleinem Anfangsbuchstaben x t die Funktion mit gro em An fangsbuchstaben X s ist Berechnen Sie die Laplace Transformierte der zweiten Gleichung sage de2 maxima diff y t t 2 2 y t 2 x t sage lde2 de2 laplace t s lde2 at diff y t t 1 t 0 8s 2x laplace y t t s 2 laplace y t t s 2x laplace x t t s y 0 x s Dies besagt Y 0 s Y s 2Y s 2X s sy 0 0 Setzen Sie die Anfangsbedingungen f r x 0 x 0 y 0 und y 0 ein und l sen die beiden Gleichungen die Sie so erhalten 16 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage var s X Y s X Y sage eqns 2 s 2 6 X 2 Y 6x5 2xX s 2 2 Y 3x8 sage solve eqns X Y X 3 s 3 3x s s 4 5 s 2 4 Y 3x s 3 5xs s 4 5xs 2 4 Berechnen Sie jetzt die inverse Laplace Transformierte um die Antwort zu erhalten sage var s t s t sage inverse_laplace 3 s 3 9xs s 4 5 s 2 4 s t cos 2xt 2xcos t sage inverse_laplace 3xs 3 15 s s 4 5xs 2 4 s t cos 2 xt 4xcos t Also ist die L sung x t cos 2t 2cos t x t 4cos t cos 2t Die kann folgenderweise parametrisiert g
34. y over Rational Field sage B 1 x Traceback most recent call last ValueError object is immutable please change a copy instead Etwas damit meinen wir nicht so viel wie wir gerne h tten kommutative Algebra ist in Sage mit Hilfe von Singular implementiert vorhanden Zum Beispiel k nnen wir die Zerlegung in Primideale und die assoziierten Primideale von I berechnen sage I primary_decomposition Ideal x 2 of Multivariate Polynomial Ring in x y over Rational Field Ideal y 2 x 6 of Multivariate Polynomial Ring in x y over Rational Field sage I associated_primes Ideal x of Multivariate Polynomial Ring in x y over Rational Field Ideal y x of Multivariate Polynomial Ring in x y over Rational Field 2 10 Endliche und abelsche Gruppen Sage unterst tzt das Rechnen mit Permutationsgruppen endlichen klassischen Gruppen wie z B SU n q endli chen Matrixgruppen mit Ihren eigenen Erzeugern und abelschen Gruppen sogar unendlichen Vieles davon ist mit Hilfe der GAP Schnittstelle implementiert Zum Beispiel k nnen Sie um eine Permuationsgruppe zu erzeugen die Liste der Erzeuger wie folgt angeben sage G PermutationGroup 1 2 3 4 5 3 4 sage G Permutation Group with generators 3 4 1 2 3 4 5 sage G order 120 sage G is_abelian False 34 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage G derived_series random ish outp
35. 049 x 24 2 sage M T 11 charpoly x factor x 285311670612 x 534612 2 Wir k nnen auch R ume f r Po NV und T N erzeugen sage ModularSymbols 11 2 Modular Symbols space of dimension 3 for Gamma_0 11 of weight 2 with sign 0 over Rational Field sage ModularSymbols Gammal 11 2 Modular Symbols space of dimension 11 for Gamma_1 11 of weight 2 with sign 0 and over Rational Field Nun berechnen wir ein paar charakteristische Polynome und q Entwicklungen sage M ModularSymbols Gammal 11 2 sage M T 2 charpoly x x 11 8xx 10 20xx 9 10 x 8 145xx 7 229xx 6 58xx 5 360x x 4 70 x 3 515 x 2 1804 x 1452 sage M T 2 charpoly x factor x 3 x 2 2 x 4 Yax 3 19xx 2 23xx 11 x 4 2xx 3 4ex 2 Zee 11 5 M cuspidal_submodule sage S T 2 matrix S Il q_expansion_basis 10 q 2xq 2 q 3 2xgq4 q 5 2xq6 2xq 7 2xq 9 O g 10 Wir k nnen sogar R ume von Modulsymbolen mit Charakteren berechnen sage G DirichletGroup 13 sage e G 0 2 sage M ModularSymbols e 2 M Modular Symbols space of dimension 4 and level 13 weight 2 character zeta6 sign 0 over Cyclotomic Field of order 6 and degree 2 sage M T 2 charpoly x factor x zeta6 2 x 2xzeta6 1 x x zeta6 1 2 sage S M cuspidal_submodule S Modular Symbols subspace of dimension 2 of Modular Symbols s
36. 1 11 2 7 11 3 9x x11 5 5x11 6 4 11 7 8 11 8 7 11 9 9x11 10 3x11 11 10x11 12 11 13 5x11 14 6x11 15 2x 11 16 311117 11 18 7 11 19 0 11 20 sage b K 3211 11 2 b 10 amp 11 2 5 amp 11 1 2 2 11 O 11 18 In die Implementierung von weiteren Ringen von Zahlen ber p adischen K rpern ist viel Arbeit geflossen Der in teressierte Leser ist dazu eingelanden die Experten in der sage support Google Gruppe nach weiteren Details zu fragen Eine Vielzahl relevanter Methoden sind schon in der NumberField Klasse implementiert 2 11 Zahlentheorie 37 Sage Tutorial Release 5 11 sage R lt x gt PolynomialRing 00 sage K NumberField x 3 x 2 2xx 8 a sage K integral_basis 1 1 2xra 2 1 2xa a 2 sage K galois_group type pari Galois group PARI group 6 1 2 S3 of degree 3 of the Number Field in a with defining polynomial x 3 x 2 2xx 8 sage K polynomial_quotient_ring Univariate Quotient Polynomial Ring in a over Rational Field with modulus xX03 x 2 2xx 8 sage K units 3xa 2 13 a 13 sage K discriminant 503 sage K class_group Class group of order 1 of Number Field in a with defining polynomial x 3 x 2 2 x 8 sage K class_number an 2 12 Etwas weiter fortgeschrittene Mathematik 2 12 1 Algebraische Geometrie Sie k nnen in Sage beliebige algebraische Variet ten definieren aber
37. 1 frac 1 5 5 2 Grundlegende Nutzung Wie schon im berblick angek ndigt ist der einfachste Weg Sage s LaTeX Unterst tzung zu nutzen die latex Funktion um eine legitime LaTeX Darstellung eines mathematischen Objekts zu erhalten Diese Zeichenketten k nnen dann in unabh ngigen LaTeX Dokumenten genutzt werden Das funktioniert im Notebook genauso wie in der Sage Kommandozeile Das andere Extrem ist der view Befehl In der Sage Kommandozeile wird der Befehl view die LaTeX Darstellung von foo in ein einfaches LaTeX Dokument packen und dann dieses mit der systemweiten TeX Installation aufrufen Zuletzt wird das passende Programm zum Anzeigen der Ausgabe von TeX aufgerufen Welche Version von TeX genutzt wird und damit auch wie die Ausgabe aussieht und welches Anzeigeprogramm aufgerufen wird Kann angepasst werden siehe Anpassen der LaTeX Verarbeitung Im Notebook schafft der view foo Befehl die n tige Kombination von HTML und CSS sodass MathJax die La TeX Darstellung im Arbeitsblatt anzeigt F r den Anwender erstellt er einfach eine sch n formatierte Ausgabe die sich von der normalen ASCH Ausgabe aus Sage unterscheidet Nicht jedes mathematische Objekt in Sage hat eine LaTeX Darstellung die die eingeschr nkten M glichkeiten von MathJax unterst tzt In diesen F llen kann die Ma thJax Darstellung umgangen werden und stattdessen die systemweite TeX Installation aufgerufen werden Dessen Ausgabe kann dann als Bild im Arb
38. 5 False Sie k nnen auch ein oder mehrere Eingabeargumente explizit angeben wenn Sie die Funktion aufrufen wenn Sie die Eingaben explizit angeben k nnen Sie dies in beliebiger Reihenfolge tun sage is_divisible_by 6 divisor 5 False sage is_divisible_by divisor 2 number 6 True In Python werden Codebl cke nicht mit geschweiften Klammern oder begin und end Bl cken kenntlich gemacht Stattdessen werden Codebl cke durch Einr ckungen bestimmt welche exakt zusammenpassen m ssen Zum Beispiel ist das Folgende ein Syntaxfehler da die return Anweisung nicht genauso weit einger ckt ist wie die anderen Zeilen zuvor sage def even n v I for i in range 3 n if i 2 0 v append i es return v syntax Error return v Wenn Sie die Einr ckung korrigieren funktioniert die Funktion sage def even n v for i in range 3 n if i 2 v append i ee return v sage even 10 4 6 8 Semikola sind an den Zeilenenden nicht notwendig sie k nnen jedoch mehrere Anweisungen mit Semikola getrennt in eine Zeile schreiben 2 3 Funktionen Einr ckungen und Z hlen 11 Sage Tutorial Release 5 11 sage a 5 b a 3 c b 2 c 64 Falls Sie m chten dass sich eine einzelne Codezeile ber mehrere Zeilen erstreckt k nnen Sie einen terminierenden Backslash verwenden sage 2 3 In Sage k nnen Sie z hlen indem Sie ber einen Zahlenbereich iterieren Zum Beispiel ist n chs
39. 9 t 2 225 361 sage cyclo R cyclotomic_polynomial 7 cyclo E26 EI OA EZ el sage g 7 cyclo t 5 x t 5 10xt 2 sage g TESLE 7et 15 7xt014 7xt013 77xt012 91xt 11 91xt 10 84x t 9 84xt 78 84xt 7 84xt 6 14xt5 2 9 Polynome 31 Sage Tutorial Release 5 11 sage F factor g F 7 A ESOS x TESS 10st 2 E 6 E55 E44 4403462 HEFT sage F unit 7 sage list F t 9 ED IOE 2 Dr iR EEI EMULAR ENS 442 Fe 1 1 Beachten Sie dass die Faktorisierung die Einheit korrekt in Betracht zieht und ausgibt Falls Sie zum Beispiel die R cyclotomic_polynomial Funktion in einem Forschungsprojekt viel verwenden w rden sollten Sie neben Sage zu zitieren auch versuchen herauszufinden welche Komponente von Sage ver wendet wird um das zyklotomische Polynom zu berechnen und diese ebenso angeben In diesen Fall sehen Sie im Quellcode der Funktion welchen Sie mit R cyclotomic_polynomial erhalten schnell die Zeile pari polcyclo n was bedeutet dass PARI verwendet wird um das zyklotomische Polynom zu berechnen Zi tieren Sie PARI ebenso in Ihrer Arbeit Wenn Sie zwei Polynome teilen erzeugen Sie ein Element des Quotientenk rpers den Sage automatisch erzeugt sage x Q0 x 0 sage f x 3 1 g x 2 17 sage h f g h x 3 1 x 2 17 sage h parent Fraction Field of Univariate Polynomial Ring in x over Rational Field Mit Hil
40. Beachten Sie dass Sage factorial spyx neu kompiliert falls Sie Sage beenden und neustarten Die komplier te shared object library wird unter SHOME sage temp hostname pid spyx gespeichert Diese Dateien werden gel scht wenn Sie Sage beenden Auf spyx Dateien wird kein preparsing angewendet d h 1 3 wird in einer spyx Datei zu O ausgewertet anstelle der rationalen Zahl 1 3 Wenn foo eine Funktion in der Sage Bibliothek ist die Sie verwenden m chten m ssen Sie sage all importieren und sage all foo benutzen import sage all def foo n return sage all factorial n 6 2 1 Auf C Funktionen in separaten Dateien zugreifen Es ist auch nicht schwer auf C Funktions zuzugreifen welche in separaten c Dateien definiert sind Hier ist ein Beispiel Erzeugen Sie die Dateien test c und test spyx in dem gleichen Verzeichnis mit den Inhalten 76 Kapitel 6 Programmierung Sage Tutorial Release 5 11 Der reine C Code test c int add_one int n return n 1 Der Cython Code test spyx cdef extern from test c int add_one int n def test n return add_one n Dann funktioniert das Folgende sage attach test spyx Compiling test spyx sage test 10 11 Wenn die zus tzliche Bibliothek foo gebraucht wird um den C Code der aus einer Cython Datei generiert wurde zu kompilieren f gen Sie die Zeile clib foo zu dem Cython Quellcode hinzu Auf hnliche Weise kann eine zus tzliche Datei
41. Beispiel in dem Sage benutzt wird um ein System von nichtlinearen Gleichungen zu l sen stammt von Jason Grout Zun chst l sen wir das System symbolisch sage var x y p q x Y Pr q sage eql ptq sage eq2 qry px x 6 sage eq3 gqry 2 pxx 2 24 sage solve eql eq2 eq3 p 1 p q x y lp 1 q 8 x 4 3xsqrt 10 2 3 y 1 6xsqrt 5 sqrt 2 2 3 p 1 q 8 x 4 3xsgrt 10 2 3 y 1 6xsqrt 5 sgrt 2 2 3 Um eine numerische Approximation der L sungen zu erhalten k nnen Sie stattdessen wie folgt vorgehen sage solns solve eql eq2 eq3 p 1 p q x y solution_dict True sage s p n 30 s q n 30 s x n 30 s y n 30 for s in solns 1 0000000 8 0000000 4 8830369 0 13962039 1 0000000 8 0000000 3 5497035 1 1937129 Die Funktion n gibt eine numerische Approximation zur ck ihr Argument ist die Anzahl der Bits an Genauigkeit Gleichungen numerisch l sen Oftmals kann solve keine exakte L sung der angegebenen Gleichung bzw Gleichungen finden Wenn dies passiert k nnen Sie find_root verwenden um eine numerische Approximation zu finden Beispielsweise gibt solve bei folgender Gleichung nichts brauchbares zur ck 14 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage theta var theta sage solve cos theta sin theta theta sin theta cos theta Wir k nnen jedoch find_root verwenden um eine L sung der o
42. Python bedeutet exklusives oder und x x bedeutet Exponentiation Dieses preparsing ist in sage misc interpreter py implementiert 75 Sage Tutorial Release 5 11 Sie k nnen mehrzeiligen eingeriickten Code in Sage einf gen solange Zeilenenden neue Bl cke kenntlich machen dies ist in Dateien nicht notwendig Jedoch beseht die beste M glichkeit solchen Code in Sage einzuf gen darin diesen in einer Datei zu speichern und attach wie oben beschrieben zu verwenden 6 2 Kompilierten Code erzeugen Geschwindigkeit ist bei mathematischen Berechnungen u erst wichtig Python ist zwar eine komfortable Program miersprache mit sehr hohen Abstraktionsniveau jedoch k nnen bestimmte Berechnungen mehrere Gr enordnungen schneller als in Python sein wenn sie in einer kompilierten Sprache mit statischen Datentypen implementiert wurden Manche Teile von Sage w rden zu langsam sein wenn sie komplett in Python geschrieben w ren Um dies zu be r cksichtigen unterst tzt Sage eine kompilierte Version von Python welche Cython Cyt und Pyr genannt wird Cython ist gleichzeitig sowohl zu Python als auch zu C hnlich Die meisten von Pythons Konstruktionen einschlie lich list comprehensions bedingte Ausdr cke und Code wie sind erlaubt Sie k nnen auch Code importieren den Sie in anderen Python Modulen geschrieben haben Dar berhinaus k nnen Sie beliebige C Variablen definieren und beliebe C Bibli
43. R ckw rtssuche und Tab Vervollst ndigung 53 Sage Tutorial Release 5 11 Returns a list c such that if B is the basis for self then sum c_i Bi v If v is not in self raises an ArithmeticError exception EXAMPLES sage M FreeModule IntegerRing 2 MO MI M gens sage W M submodule MO M1 MO 2xM1 sage W coordinates 2x M0 M1 2 1 Wie Sie sehen beinhaltet die Ausgabe den Typ des Objekts den Dateinamen in welcher die Funktion definiert ist und eine Beschreibung der Funktionalit t mit Beispielen die Sie direkt in Ihre aktuelle Sitzung einf gen k nnen Fast alle dieser Beispiele werden regelm ig automatisch getestet um sicherzustellen dass sie genau wie beschrieben funktionieren Eine andere Funktionalit t die sehr eng in Verbindung mit Open Source Gedanken steht ist dass Sie sich zu jeder Funktion den Quelltext anzeigen lassen k nnen Sei f eine Sage oder Python Funktion dann k nnen Sie mit den Quellcode der definiert anzeigen Zum Beispiel sage V Q0 3 sage V coordinates Type instancemethod Source def coordinates self v nun Write v in terms of the basis for self mon return self coordinate_vector v list Das zeigt uns dass die coordinates Funktion nichts anderes tut als coordinates_vector Funktion aufruft und das Ergebnis in eine Liste umwandelt Aber was tut die coordinates Funktion sage V 0073 sage V coordinate_vector def
44. Sage Tutorial Release 5 11 The Sage Group 15 08 2013 Inhaltsverzeichnis 1 Einleitung 3 ll Installation s a 2 RANA 4 1 2 Wie man Sage benutzen kant eme ex 3 kG 0 3 Asa a uns a era 4 1 3 Langiristige Ziele vVonSage dr ze Ads re ASE ye a g 5 2 Eine begleitende Tour 7 2 1 Zuweisung Gleichheit und Arithmetik s p s pi ii a nun nn 7 2 2 Halle 44 5 eed ed A eR EE Doe Bae ee a AL 9 2 3 Funktionen Emrickungen und Zahlem Se san ae Ae RR AS es 10 24 Elementare Algebra und Analysis pe b 22 dus bee ee kee wa ee ee ee eS 14 29 PIQUED 4 veda a Gti HS ea Bae ee EEE ae Se ee ee ee oS IS 19 26 H ufige Probleme mit Funktionen lt s 4 84 22 28 6 2 80 eee a RR es 22 2 Wichtige RINSE xy rs a ark eee Bde e is AS Shire e Arena 25 2 8 Lineare Algebra su uns u don fs ee RP AER Oe ERP A ee eRe RS EE RE 27 29 Polynome 0 564 648 54 See be eA eR ee 30 2 10 Endliche und abelsche Gruppen s s s os sora ee A A Oe SE ee EO eS ey Be 34 2 11 Zahlentheone s 2 4 2 222 eA ee PAE RAR RAE AA a E N 36 2 12 Etwas weiter fortgeschrittene Mathematik s sios e caoi a a RR Ren 38 3 Die interaktive Kommandozeile 47 3 1 thre Sage Size sE naa Era ee a er 47 32 Ein und Auss benlosgen 2 244 rr a Ba ob Be A ee ea 49 3 3 Einf gen ignoriert Eingabe ufforder ngen 2 52 24 kun non her 50 34 Befehle zur Zeitmessung ocio eae ee een 50 35 Fehlerbehandl ng lt oo a eek A wu 2 u A ey 3 werke a a E g
45. Sage mit dass es das Symbol a beim Ausgeben dessen was K ist ein Zahlenfeld mit definierendem Polynom z4 1 benutzen soll Der Name a ist zu diesem Zeitpunkt nicht deklariert Sobald a K O oder quivalent a K gen evaluiert wurde repr sentiert das Symbol a eine Wurzel des erzeugenden Polynoms x 1 2 12 4 Modulformen Sage kann einige Berechnungen im Zusammenhang mit Modulformen durchf hren einschlie lich Dimensionsberech nungen das Berechnen von R umen von Symbolen von Modulformen Hecke Operatoren und Dekompositionen Es stehen mehrere Funktionen f r das Berechnen von Dimensionen von R umen von Modulformen zur Verf gung Zum Beispiel sage dimension_cusp_forms Gamma0 11 2 1 sage dimension_cusp_forms Gamma0 1 12 1 sage dimension_cusp_forms Gammal 389 2 6112 Als n chstes illustrieren wir die Berechnung von Hecke Operatoren auf einem Raum von Modulformen von Level 1 und Gewicht 12 sage M ModularSymbols 1 12 sage M basis X 8 Y 2 0 0 X 9 Y 0 0 X 10 0 0 sage t2 M T 2 sage t2 Hecke operator T_2 on Modular Symbols space of dimension 3 for Gamma_0 1 of weight 12 with sign 0 over Rational Field 2 12 Etwas weiter fortgeschrittene Mathematik 43 Sage Tutorial Release 5 11 sage t2 matrix 24 0 0 0 24 0 4860 0 2049 sage f t2 charpoly x x 3 2001 x 2 97776xx 1180224 sage factor f x 2
46. _eval repr eigA 1 2 0 lambda3 eigA 0 0 2 64 Kapitel 4 Schnittstellen Sage Tutorial Release 5 11 sage M MatrixSpace QQ 3 3 sage AA M 1 0 0 1 1 0 1 3 211 sage bl vl base_ring sage AAxvl bl lambdal vl True sage b2 v2 base_ring sage AAxv2 b2 lambda2 v2 True sage b3 v3 base_ring sage AAxv3 b3 lambda3 v3 True Zuletzt noch ein Beispiel wie man Sage zum Plotten mittels openmath nutzt Einige von ihnen wurden ver ndert aus dem Maxima Benutzerhandbuch entnommen Ein 2D Plot verschiedener Funktionen ohne eingeben sage maxima plot2d cos 7xx cos 23 x 4 sin 13 x 3 x 0 1 not tested plot_format openmath Ein live 3D Plot den man mit der Maus bewegen kann sage maxima plot3d 2 u 2 v 2 u 3 31 v 2 2 not tested T plot format openmath sage maxima plot3d atan x 2 y 3 4 x 4 41 ly 4 4 not tested grid 50 50 plot_format openmath Der n chste Plot ist das ber hmte M biusband sage maxima plot3d cos x 3 yxcos x 2 sin x 3 yxcos x 2 y sin x 2 not tested cr E A 41 ly A 41 plot_format openmath Und der letzte ist die ber hmte Kleinsche Flasche sage maxima expr_1 5 cos x cos x 2 xcos y sin x 2 x sin 2x y 3 0 10 0 5xcos x sin x 2 x sin 2x y cos x 2
47. a AAA 6 9 Schleifen Funktionen Kontrollstrukturen und Vergleiche 2 2 2 2 moon 6100 Prohling guias san au be AE A A AAA 7 SageTeX nutzen 8 Nachwort 8 1 Warum Python serios e aaa a ee Bag are 8 2 Ich m chte einen Beitrag zu Sage leisten Wie kann ich dies tun So Wiezitlere Ich Sagen sir a e ee 9 Anhang 9 1 Bin re arithmetische Operatorrangfolge nm mn nn 10 Literaturverzeichnis 11 Indizes und Tabellen Literaturverzeichnis 67 67 68 69 71 72 73 75 75 76 77 77 79 81 81 82 83 85 87 89 89 91 91 93 93 95 97 99 Sage Tutorial Release 5 11 Sage ist eine freie Open Source Software die Forschung und Lehre in Algebra Geometrie Zahlentheorie Krypto graphie numerischen Berechnungen und verwandten Gebieten unterst tzt Sowohl das Entwicklungsmodell von Sage als auch die Technologie in Sage zeichnen sich durch eine extrem starke Betonung von Offenheit Gemeinschaft Ko operation und Zusammenarbeit aus Wir bauen das Auto und erfinden nicht das Rad neu Das Ziel von Sage ist es eine aktiv gepflegte freie Open Source Alternative zu Magma Maple Mathematica und Matlab zu entwickeln Dieses Tutorial ist die beste M glichkeit mit Sage in wenigen Stunden vertraut zu werden Sie k nnen es im HTML oder PDF Format lesen oder im Sage Notebook Dazu klicken Sie zuerst auf Help und Tutorial um innerhalb von Sage interaktiv mit dem Tutorial zu arbeiten
48. a_macros sage latex extra_preamble sage latex add_to_preamble usepackage geometry 70 Kapitel 5 Sage LaTeX und ihre Freunde Sage Tutorial Release 5 11 sage latex add_to_preamble geometry letterpaper total 8in 10in sage latex extra_preamble usepackage geometry geometry letterpaper total 8in 1l0in sage print latex_extra_preamble usepackage geometry geometry letterpaper total 8in 10in newcommand ZZ Bold Z newcommand Bold 1 mathbf 1 Ein bestimmtes Paket dessen Existenz nicht sicher ist wird wie folgt eingebunden sage latex extra_preamble sage latex extra_preamble vr sage latex add_to_preamble usepackage foo bar unchecked sage latex extra_preamble usepackage foo bar unchecked sage latex add_package_to_preamble_if_available foo bar checked sage latex extra_preamble usepackage foo bar unchecked 5 4 Anpassen der LaTeX Verarbeitung Es ist m glich zu entscheiden welche Variante von TeX f r einen systemweiten Aufruf genutzt werden soll und somit auch wie die Ausgabe aussehen soll Ebenso ist es m glich zu beeinflussen ob das Notebook MathJax oder die systemweite LaTeX Installation nutzt Der Befehl latex engine entscheidet ob die systemweiten Anwendungen latex pdflatex oder xelatex genutzt werden f r kompliziertere LaTeX Ausdriicke Wenn view
49. age misc latex import MathJax sage mj MathJax sage mj xty lt html gt lt script type math tex mode display gt newcommand Bold 1 mathbf 1 newcommand foo bar Zus tzliche Makros die so hinzugefiigt wurden werden auch vom systemweiten TeX genutzt wenn MathJax an seine Grenzen gesto en ist Der Befehl latex_extra_preamble kann genutzt werden um eine Pr ambel eines kompletten LaTeX Dokuments zu erzeugen das folgende Beispiel zeigt wie Beachten Sie wiederrum die doppelten Backslashes in den Python Zeichenketten sage latex extra_macros sage latex extra_preamble sage from sage misc latex import latex_extra_preamble sage print latex_extra_preamble newcommand ZZ Bold Z newcommand Bold 1 mathbf 1 sage latex add_macro newcommand foo bar sage print latex_extra_preamble newcommand ZZ Bold Z newcommand Bold 1 mathbf 1 newcommand foo bar F r gr ere oder kompliziertere LaTeX Ausdriicke k nnen mit latex add_to_preamble Pakete oder hnliches zur LaTeX Pr ambel hinzugef gt werden Der zweite Befehl latex add_package_to_preamble_if_available pr ft hingegen erst ob das Paket vorhanden ist bevor es eingebunden wird Hier f gen wir das geometry Paket zur Pr ambel hinzu um die Seitenr nder einzustellen Achten Sie wieder auf die doppelten Backslashes in Python sage from sage misc latex import latex_extra_preamble sage latex extr
50. altet Beachten Sie auch dass Sie diese Tour interaktiv im Sage Notebook durcharbeiten k nnen indem Sie auf den Help Link klicken Falls Sie dieses Tutorial im Sage Notebook sehen dr cken Sie shift enter um die Eingabe Zellen auszuwerten Sie k nnen die Eingabe sogar ver ndern bevor Sie shift enter dr cken Auf einigen Macs m ssen Sie vielleicht shift return anstelle von shift enter dr cken 2 1 Zuweisung Gleichheit und Arithmetik Bis auf wenige Ausnahmen benutzt Sage die Programmiersprache Python deshalb werden Ihnen die meisten einf h renden B cher ber Python dabei helfen Sage zu lernen Sage benutzt f r Zuweisungen und lt gt lt und gt f r Vergleiche sage a 5 sage a 5 sage 2 2 True sage 2 3 False sage 2 lt 3 True sage a 5 True Sage unterst tzt alle grundlegenden mathematischen Operationen sage 2x x3 xx bedeutet hoch 8 sage 2 3 ist ein Synonym f r anders als in Python 8 sage 10 3 f r ganzzahlige Argumente bedeutet mod d h Restbildung il sage 10 4 Sage Tutorial Release 5 11 sage 10 4 f r ganzzahlige Argumente gibt den pea ganzzahligen Quotienten zur ck 2 sage 4 10 4 10 4 10 True sage 3 2 4 2 5 38 Die Berechnung eines Ausdrucks wie 3 2 4 2 5 h ngt von der Reihenfolge ab in der die Operationen ausge f hrt werden Dies wird in der Operatorrangfolge Tabelle in Bin re ari
51. an Matrizen berechnen die ber endlichen K rpern definiert sind sage M MatrixSpace GF 2 4 8 sage A M 1 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 PT 0 0 10 1 1 0 L 0 0715 1 2 1 1 07 sage A 11001111 01001011 00101101 00111110 sage rows A rows sage A columns 1 0 0 0 1 1 0 0 0 O 1 1 0 0 O 1 1 Ly Ly 2 hp Oy Iy Ll Gly dy Op 1 le 1 1 0 sage rows 1 1 0 0 1 1 1 1 0 1 0 0 1 O 1 1 Oy Oy Ly Or Ta Ly 0 I Or 0 Le Ty dy Ap Ls 0y Wir erstellen den Unterraum von F der von den obigen Zeilen aufgespannt wird sage V VectorSpace GF 2 8 sage S V subspace rows sage S Vector space of degree 8 and dimension 4 over Finite Field of size 2 Basis matrix 1000010 O 10010711 0 010110 1 0001001 1 sage A echelon_form 0 2 8 Lineare Algebra 29 Sage Tutorial Release 5 11 100001000 0 100101 1 0 010110 1 0 001001 1 Die Basis von S die von Sage benutzt wird wird aus den von Null verschiedenen Zeilen der reduzierten Zeilenstu fenform der Matrix der Generatoren von S erhalten 2 8 2 Lineare Algebra mit dunnbesetzten Matrizen Sage unterst tzt Lineare Algebra mit diinnbesetzten Matrizen ber Hauptidealringen sage MatrixSpace 00 100 sparse True sage A M random_element density 0 05 sage E A echelon_form Der multi modulare Algorithmus kann bei quadratischen Matrizen gut angewend
52. bigen Gleichung im Bereich 0 lt lt 7 2 zu finden sage phi var phi sage find_root cos phi sin phi 0 pi 2 0 785398163397448 2 4 2 Differentiation Integration etc Sage wei wie man viele Funktionen differenziert und integriert Zum Beispiel k nnen Sie folgendes eingeben um sin u nach u abzuleiten sage u var u sage diff sin u u cos u Um die vierte Ableitung sin x zu berechnen sage diff sin x 2 x 4 16xx 4 sin x 2 48xx 2x co0s x 2 12xsin x 2 Um die partiellen Ableitungen von x 17y nach x beziehungsweise y zu berechnen sage x y var x y sage f x 2 17xy 2 sage f diff x 2x X sage f diff y 34xy Wir machen weiter mit Integralen sowohl bestimmt als auch unbestimmt Die Berechnung von f x sin x dx und de i J PA dz sage integral xxsin x 2 x 1 2xcos x 2 sage integral x x 2 1 x 0 1 1 2 1log 2 1 Die Partialbruchzerlegung von 353 sage f 1 1 x x 1 sage f partial_fraction x 1 2 x 1 1 2 x 1 2 4 3 L sen von Differentialgleichungen Sie k nnen Sage verwenden um gew hnliche Differentialgleichungen zu berechnen Die Gleichung x x 1 0 berechnen Sie wie folgt sage t var t definiere die Variable t sage x function x t definiere x als Funktion dieser Variablen sage DE diff x t x 1 2 4 Elementare Algebra und Analysis 15 Sage Tutorial Release 5 11
53. blen aus sit zungsname in die aktuelle Sitzung zu laden Beachten Sie dass dieses Vorgehen nicht die Variablen der aktuellen Sitzung l scht viel mehr werden beide Sitzungen vereinigt Starten wir also zun chst Sage und definieren einige Variablen sage E EllipticCurve lla sage ModularSymbols 37 sage a 389 sage t M T 2003 matrix t charpoly factor 4 x 2004 x x 12 2 x x 54 2 Als n chstes speichern wir unsere Sitzung was jede der Variablen in eine Datei speichert Dann sehen wir uns die Datei die etwa 3 Kilobyte grof ist an sage save_session misc Saving a Saving M Saving t Saving E sage quit was form tmpS ls 1 misc sobj rw r r 1 was was 2979 2006 01 28 19 47 misc sobj Zuletzt starten wir Sage neu definieren uns eine extra Variable und laden unsere gespeicherte Sitzung sage b 19 sage load_session misc Loading a Loading Loading E Loading t Jede der gespeicherten Variablen ist wieder verfiigbar und die Variable b wurde nicht tiberschrieben 3 9 Speichern und Laden kompletter Sitzungen 57 Sage Tutorial Release 5 11 sage Full Modular Symbols space for Gamma_0 37 of weight 2 with sign O and dimension 5 over Rational Field sage E Elliptic Curve defined by y 2 y x 3 x 2 10xx 20 over Rational Field sage b 19 sage a 389 3 10 Die Notebook Umgebung Das Sage Browser Notebook wird mit sage no
54. chten Sie dass die Ausgabe von e die __repr___Methode verwendet die wir definiert haben Um die eigentliche Liste sehen zu K nnen benutzen wir die List Funktion sage list e 2 4 6 8 10 Wir k nnen auch das n Attribut verwenden oder e wie eine Liste behandeln sage e n 10 sage e 2 6 2 3 Funktionen Einr ckungen und Z hlen 13 Sage Tutorial Release 5 11 2 4 Elementare Algebra und Analysis Sage kann viele zur elementaren Algebra und Analysis geh rende Probleme l sen Zum Beispiel L sungen von Gleichungen finden Differentiation Integration und Laplace Transformationen berechnen Lesen Sie die Sage Con structions Dokumentation um weitere Beispiele zu finden 2 4 1 L sen von Gleichungen Gleichungen exakt l sen Die solve Funktion l st Gleichungen Legen Sie zun chst Variablen an bevor Sie diese benutzen Die Argumente von solve sind eine Gleichung oder ein System von Gleichungen zusammen mit den Variablen nach welchen Sie aufl sen m chten sage x var x sage solve x 2 3xx 2 x x 2 x 1 Sie k nnen eine Gleichung nach einer Variablen in Abh ngigkeit von den anderen aufl sen sage x b c var xbc sage solve x 2 bxx c 0 x x 1 2xb 1 2 sqrt b 2 Axc x 1 2xb 1 2xsqrt b 2 Axc Sie k nnen auch nach mehreren Variablen aufl sen sage x y var x y sage solve x y 6 x y 4 x y x 5 y 1 Das folgende
55. e rationale Zahl sage type a lt type sage rings rational Rational gt sage a hello jetzt ist a ein String sage type a lt type str gt Die Programmiersprache C welche statisch typisiert ist unterscheidet sich hierzu stark eine Variable die dazu dekla riert ist eine Ganzzahl int aufzunehmen kann in ihrem Sichtbarkeitsbereich auch nur ganze Zahlen aufnehmen F r Verwirrung in Python sorgt h ufig dass Integer Literale die mit Null beginnen als Oktalzahl d h als Zahl zur Basis 8 behandelt werden 8 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage 011 9 sage 8 1 9 sage n 011 sage n str 8 Darstellung von n als String zur Basis 8 r 117 Dies ist konsistent mit der Programmiersprache C 2 2 Hilfe Sage hat eine umfassende eingebaute Dokumentation auf die zugegriffen werden kann indem der Name der Funktion oder Konstanten zum Beispiel gefolgt von einem Fragezeichen eingegeben wird sage tan Type lt class sage calculus calculus Function_tan gt Definition tan noargspec Docstring The tangent function EXAMPLES sage tan pi 0 sage tan 3 1415 0 0000926535900581913 sage tan 3 1415 4 0 999953674278156 sage tan pi 4 1 sage tan 1 2 tan 1 2 sage RR tan 1 2 0 546302489843790 sage log2 Type lt class sage functions constants Log2 gt Definition log2 noargspec Docstring The natural logar
56. eigenst ndige Python Sage Skripte 4 Kapitel 1 Einleitung Sage Tutorial Release 5 11 1 3 Langfristige Ziele von Sage niitzlich Sages Zielgruppen sind Mathematikstudenten von der Schule bis zur Universit t Lehrer und for schende Mathematiker Das Ziel ist es Software bereitzustellen die benutzt werden kann um mathematische Konstruktionen in der Algebra Geometrie Zahlentheorie Analysis Numerik usw zu erforschen und mit ihnen zu experimentieren Sage hilft dabei einfacher mit mathematischen Objekten experimentieren zu k nnen effizient Schnell sein Sage benutzt hochoptimierte ausgereifte Software wie GMP PARI GAP und NTL und ist somit bei vielen Aufgaben sehr schnell frei und Open Source Der Quellcode muss frei verf gbar und lesbar sein damit Benutzer verstehen k nnen was das System gerade macht und es einfacher erweitern zu k nnen Genauso wie Mathematiker ein tieferes Verst ndnis eines Theorems erlangen indem sie den Beweis sorgf ltig lesen oder zumindest berfliegen soll ten Leute die Berechnungen durchf hren verstehen wie die Berechnungen zustande kommen indem sie den dokumentierten Quellcode lesen Falls Sie Sage verwenden um Berechnungen f r ein Paper durchzuf hren welches Sie ver ffentlichen k nnen Sie sicher sein dass Ihre Leser immer freien Zugang zu Sage und seinem Quellcode haben und Sie d rfen sogar Ihre Sage Version archivieren und weiterverteilen einfach zu kompilieren Sage
57. eine kanonische Um wandlung beider Objekte in einen gemeinsamen Typ zu finden Falls erfolgreich wird der Vergleich auf den umgewan delten Objekten durchgef hrt Falls nicht erfolgreich werden die Objekte als ungleich angesehen Um zu Testen ob zwei Variablen auf das gleiche Objekt zeigen verwenden Sie is Zum Beispiel sage 1 is 2 2 False sage 1 is 1 False sage 1 2 2 True In den folgenden zwei Zeilen ist der erste Gleichheitstest False da es keinen kanonischen Morphismus Q F gibt also gibt es keine kanonische M glichkeit die 1 in F5 mit der 1 Q zu vergleichen Im Gegensatz dazu gibt es eine kanonische Abbildung Z Fs also ist der zweite Gleichheitstest True Beachten Sie auch dass die Reihenfolge keine Rolle spielt sage GF 5 1 00 1 00 1 GF 5 1 False False sage GF 5 1 Z2Z 1 ZZ 1 GF 5 1 True True 84 Kapitel 6 Programmierung Sage Tutorial Release 5 11 sage ZZ 1 QQ 1 True WARNUNG Vergleiche in Sage sind restriktiver als in Magma welches die 1 F gleich der 1 Q festlegt sage magma GF 5 1 eq Rationals 1 optional magma true 6 10 Profiling Autor des Abschnitts Martin Albrecht malb informatik uni bremen de Premature optimization is the root of all evil Donald Knuth Manchmal ist es n tzlich nach Engstellen im Code zu suchen um zu verstehen welche Abschnitte die meiste Berech nungszeit beanspruchen dies kann ein
58. einer Funktion und dr cken Sie danach die Tabulatortaste Wenn Sie zum Beispiel ta gefolgt von TAB eingeben wird Sage tachyon tan tanh taylor ausgeben Dies ist eine gute M glichkeit den Namen von Funktionen und anderen Strukturen in Sage herauszufinden 2 3 Funktionen Einr ckungen und Z hlen Um in Sage eine neue Funktion zu definieren k nnen Sie den def Befehl und einen Doppelpunkt nach der Liste der Variablennamen benutzen Zum Beispiel sage def is_even n return n 2 sage is_even 2 10 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 True sage is_even 3 False Anmerkung Abh ngig von der Version des Tutorials das Sie gerade lesen sehen Sie vielleicht drei Punkte in der zweiten Zeile dieses Beispiels Tippen Sie diese nicht sie sind nur da um zu verdeutlichen dass der Code eingeriickt ist Wann immer dies der Fall ist dr cken Sie Return Enter einmal am Ende des Blocks um eine Leerzeile einzuf gen und die Funktionsdefinition zu beenden Sie bestimmen den Typ ihrer Eingabeargumente nicht Sie k nnen mehrere Argumente festlegen jedes davon kann einen optionalen Standardwert haben Zum Beispiel wird in der Funktion unterhalb standardm ig der Wert divisor 2 benutzt falls divisor nicht angegeben wurde sage def is_divisible_by number divisor 2 se return number divisor sage is_divisible_by 6 2 True sage is_divisible_by 6 True sage is_divisible_by 6
59. eitsblatt angezeigt werden Die Einstellungen und Auswirkungen dieses Prozesses wird im Kapitel Anpassen der LaTeX Generierung dargestellt Der interne pretty_print Befehl zeigt die Konvertierung von Sage Objekten in HTML Code der MathJax nutzt im Notebook 68 Kapitel 5 Sage LaTeX und ihre Freunde r zr 5 lt Sage Tutorial Release 5 11 sage from sage misc latex import pretty_print sage pretty_print x 12 lt html gt lt script type math tex gt newcommand Bold 1 mathbf 1 x 12 lt script gt lt html gt sage pretty_print integrate sin x x lt html gt lt script type math tex gt newcommand Bold 1 mathbf 1 cos left x right lt script gt lt html gt Das Notebook hat zwei weitere M glichkeiten TeX zu nutzen Die erste ist der Typeset Knopf ber der ersten Zelle eines Arbeitsblatts rechts von den vier Drop Down Boxen Ist er ausgew hlt werden die Ausgaben aller folgenden Berechnungen von MathJax interpretiert Beachten Sie dass dieser Befehl nicht r ckwirkend ist alle vorher be rechneten Zellen werden nicht neu berechnet Im Grunde ist der Typeset Knopf gleichzusetzen mit dem Aufruf des view Befehls in allen Zellen Die zweite M glichkeit im Notebook ist das Eingeben von TeX Kommentaren in einem Arbeitsblatt Wenn der Cursor zwischen zwei Zellen steht und der erscheinende blaue Balken mit gedr ckter Shift Taste geklickt wird wird ein kleiner Texteditor Tin
60. elle von python Oft bedeutet dies dass sage python setup py install eingegeben werden muss 90 Kapitel 8 Nachwort Sage Tutorial Release 5 11 8 2 Ich m chte einen Beitrag zu Sage leisten Wie kann ich dies tun Falls Sie f r Sage einen Beitrag leisten m chten wird Ihre Hilfe hoch gesch tzt Sie kann von wesentlichen Code Beitr ge bis zum Hinzuf gen zur Sage Dokumention oder zum Berichten von Fehlern reichen Schauen Sie sich die Sage Webseite an um Informationen f r Entwickler zu erhalten neben anderen Dingen k nnen Sie eine lange Liste nach Priorit t und Kategorie geordneter zu Sage geh render Projekte finden Auch der Sage Developer s Guide beinhaltet hilfreiche Informationen und Sie k nnen der sage devel Google Group beitreten 8 3 Wie zitiere ich Sage Falls Sie ein Paper schreiben das Sage verwendet zitieren Sie bitte die Berechnungen die Sie mithilfe von Sage durchgef hrt haben indem Sie Sage William A Stein et al Sage Mathematics Software Version 4 3 The Sage Development Team 2009 http www sagemath org in Ihrem Literaturverzeichnis hinzuf gen Ersetzen Sie hierbei 4 3 mit der von Ihnen benutzten Version von Sage Versuchen Sie bitte weiterhin festzustellen welche Komponenten von Sage in Ihrer Berechnung verwendet wurden z B PARI GAP Singular Maxima und zitieren Sie diese Systeme ebenso Falls Sie nicht sicher sind welche Software Ihre Berechnung verwendet k nnen Sie dies g
61. en Die help Anzeige bleibt nicht in Ihrer Sitzung zur ck im Gegensatz zu funkt ion Es ist besonders hilfreich help modul_name zu nutzen Zum Beispiel sind Vektorr ume in sage modules free_module definiert Geben Sie also help Sage modules free_module ein um die Dokumentation des ganzen Moduls zu sehen Wenn Sie sich Die Dokumentation mit help ansehen k nnen Sie mit vorw rts und mit r ckw rts suchen 3 8 Speichern und Laden von individuellen Objekten Angenommen Sie berechnen eine Matrix oder schlimmer einen komplizierten Modulsymbolraum und Sie wollen ihn f r sp ter speichern Was k nnen Sie tun Es gibt mehrere M glichkeiten f r Computer Algebra Systeme solche individuellen Objekte zu speichern 1 speichern Ihres Spiels Unterst tzt nur das Speichern und Laden kompletter Sitzungen z B GAP Magma 2 Einheitliche Ein Ausgabe Bringen Sie jedes Objekt in eine Form die Sie wieder einlesen k nnen in GP PARD 3 Eval Machen Sie beliebigen Code auswertbar im Interpreter z B Sigular PARD Da Sage Python nutzt braucht es einen anderen Ansatz n mlich dass jedes Objekt serialisiert werden kann Das hei t es in eine Zeichenkette umzuwandeln die man wieder einlesen kann Das ist im Prinzip hnlich zum einheitlichen Ein Ausgabe Ansatz von PARI abgesehen von der zu komplizierten Darstellung auf dem Bildschirm Au erdem ist das Laden und Speichern meistens vollautomatisch und ben tigt nicht einmal speziellen Prog
62. en eines GP PARI Interpreters bereitzu stellen allerdings mit einer anderen komplizierten Speicherverwaltung und der Programmiersprache Python Zuerst erstellen wir eine PARI Liste aus einer Python Liste sage sage Lee 2 Sr Ar Sd sage type v lt type sage libs pari gen gen gt v pari 1 2 3 4 5 Vv Jedes PARI Objekt ist vom Typ py_pari gen Den PARI Typ des vorliegenden Objekts k nnen Sie mit der type Unterfunktion herausfinden sage v type t_VEC Um eine elliptische Kurve in PARI zu erstellen geben Sie ellinit 1 2 3 4 5 ein Bei Sage ist es hnlich nur dass ellinit eine Methode ist die von jedem PARI Objekt aus aufgerufen werden kann z B unser t _VEC Ma sage e v ellinit sage e type t_VEC sage pari e 13 1 2 3 4 5 9 11 29 35 183 3429 10351 6128487 10351 Jetzt haben wir eine elliptische Kurve als Objekt und k nnen einige Dinge mit ihr berechnen sage e elltors 1 1 U sage e ellglobalred 10351 1 L 0 i 1 sage f e ellchangecurve 1 1 0 1 sage f 5 ki L 0 4 3 62 Kapitel 4 Schnittstellen Sage Tutorial Release 5 11 4 2 GAP Sage enth lt ausserdem GAP f r diskrete Mathematik insbesondere Gruppentheorie Hier ist ein Beispiel f r GAP s IdGroup Funktion die die optionale kleine Gruppen Datenbank ben tigt die separat installiert werden muss wie unten beschrieben sage G gap Grou
63. eplottet werden sage t var En sage P parametric_plot cos 2 t 2 cos t 4 cos t cos 2 t t 0 2xpi rgbcolor hue 0 9 sage show P Die einzelnen Komponenten k nnen so geplottet werden sage t var t sage pl plot cos 2xt 2 cos t t 0 2xpi rgbcolor hue 0 3 sage p2 plot 4 cos t cos 2xt t 0 2 pi rgbcolor hue 0 6 sage show pl p2 Um mehr ber das Plotten zu erfahren lesen Sie Plotten Lesen Sie Abschnitt 5 5 von NagleEtA12004 um weitere Informationen ber Differentialgleichungen zu erhalten 2 4 4 Das Euler Verfahren zur L sung von Systemen von Differentialgleichungen Im n chsten Beispiel illustrieren wir das Euler Verfahren f r ODEs erster und zweiter Ordnung Wir rufen zun chst die grundlegende Idee f r Differentialgleichungen erster Ordnung in Erinnerung Sei ein Anfangswertproblem der Form y f 2 y y a e gegeben Wir m chten eine Approximation des Wertes der L sung bei x b mit b gt a finden Machen Sie sich anhand der Definition der Ableitung klar dass inn AER Ya y 1 gt y yath y e wobei h gt 0 vorgegeben und klein ist Zusammen mit der Differentialgleichung gibt dies f x y x i Jetzt l sen wir nach y x h auf y a h y x h f a y 2 2 4 Elementare Algebra und Analysis 17 Sage Tutorial Release 5 11 Wenn wir h f x y x den Korrekturterm y x den alten Wert von y und y x h den
64. eraktives Drehen und Zoomen der Grafik mit Hilfe der Maus unterst tzt Benutzen Sie plot 3d um eine Funktion der Form f x y z zu zeichnen sage x y var x y sage plot3d x 2 y 2 x 2 2 7 22 Alternativ k nnen Sie auch parametric_plot3d verwenden um eine parametrisierte Fl che zu zeichnen wobei jede der Variablen x y z durch eine Funktion einer oder zweier Variablen bestimmt ist Die Argumente sind typi scherweise u und v Der vorherige Plot kann wie folgt parametrisiert angegeben werden sage u v var u v sage f_x u v u sage f_y u v v sage f_z u v u 2 v 2 sage parametric_plot3d f_x f_y f_z l u 2 2 Yr 2 2 Die dritte M glichkeit eine 3D Oberfl che zuplotten ist implicit_plot3d dies zeichnet eine Kontur einer Funk tion mit f x y 2 0 so wird eine Punktmenge definiert Wir k nnen die Sph re mithilfe einer klassischen Formel zeichnen sage x Y Z Var x y 2 sage implicit_plot3d x 2 y 2 z 2 4 x 2 2 y 2 2 2 2 2 Hier sind noch ein paar Beispiele Whitneys Regenschirm sage u v var u v sage fx uxv sage fy u sage fz v 2 sage parametric_plot3d fx fy fz u 1 1 v 1 1 frame False color yellow Die Kreuz Kappe sage u v var u v sage fx 1l cos v x cos u sage fy 1 cos v sin u sage fz tanh 2 3 u pi sin v sage parametric_plot3d fx fy fz u 0
65. erne in der sage devel Google Gruppe fragen Lesen Sie Polynome in einer Unbestimmten um weitere Information dar ber zu erhalten Falls Sie gerade das Tutorial vollst ndig durchgelesen haben und noch wissen wie lange Sie hierf r gebraucht haben lassen Sie und dies bitte in der sage devel Google Gruppe wissen Viel Spass mit Sage 8 2 Ich m chte einen Beitrag zu Sage leisten Wie kann ich dies tun 91 Sage Tutorial Release 5 11 92 Kapitel 8 Nachwort KAPITEL 9 Anhang 9 1 Binare arithmetische Operatorrangfolge Was ist 32x4 2 5 Der Wert 38 wird durch diese Operatorrangfolge Tabelle festgelegt Die Tabelle unter halb basiert auf der Tabelle in Abschnitt 5 15 des Python Language Reference Manual von G Rossum und F Drake Die Operatoren sind hier in aufsteigender Ordnung der Bindungst rke aufgelistet Operatoren Beschreibung or Boolesches oder and Boolesches und not Boolesches nicht in notin Zugeh rigkeit is is not Identit tstest gt lt gt gt Vergleich Addition Subtraktion 1 Multiplikation Division Restbildung ee Exponentiation Um also 3 2x4 2 5 zu berechnen klammert Sage den Ausdruck in folgender Weise 3 2 4 2 5 Es wird daher zuerst 372 was 9 ist dann wird sowohl 372 4 als auch 2 5 berechnet und schlie lich werden diese beiden Werte addiert 93 Sage Tutorial Release 5 11
66. et werden bei nicht quadratischen Matrizen ist er nicht so gut sage MatrixSpace QQ 50 100 sparse True sage M random_element density 0 05 sage A echelon_form sage MatrixSpace GF 2 20 40 sparse True sage M random_element sage A echelon_form D Il E Fl y Il Beachten Sie dass Python zwischen Klein und Gro schreibung unterscheidet sage M MatrixSpace 00 10 10 Sparse True Traceback most recent call last TypeError __classcall__ got an unexpected keyword argument Sparse 2 9 Polynome In diesem Abschnitt erl utern wir wie man in Sage Polynome erzeugt und benutzt 2 9 1 Polynome in einer Unbestimmten Es gibt drei M glichkeiten Polynomringe zu erzeugen sage R PolynomialRing QQ t sage R Univariate Polynomial Ring in t over Rational Field Dies erzeugt einen Polynomring und teilt Sage mit den String t als Unbestimmte bei Ausgaben auf dem Bildschirm zu verwenden Jedoch definiert dies nicht das Symbol t zur Verwendung in Sage Sie k nnen es also nicht verwenden um ein Polynom wie z B t 1 einzugeben welches zu R geh rt Eine alternative M glichkeit ist sage S QQ t sage S R True 30 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 Dies verh lt sich bez glich t gleich Eine dritte sehr bequeme M glichkeit ist sage R lt t gt PolynomialRing 00 oder sage R lt t gt QO t
67. fe von Laurentreihen k nnen Sie die Reihenentwicklung im Quotientenk rper von QQ x berechnen sage R lt x gt LaurentSeriesRing QQ R Laurent Series Ring in x over Rational Field sage 1 1 x O x 10 1 x x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 O x 10 Wenn wir die Variablen unterschiedlich benennen erhalten wir einen unterschiedlichen Polynomring sage R lt x gt PolynomialRing 00 sage S lt y gt PolynomialRing 00 sage x y False sage R S False sage R y X sage R y 2 17 Ro 17 Der Ring wird durch die Variable bestimmt Beachten Sie dass das Erzeugen eines weiteren Rings mit einer x ge nannten Variablen keinen unterschiedlichen Ring zur ck gibt sage R PolynomialRing 00 x sage T PolynomialRing 00 x sage R T True sage R is T True sage R 0 T 0 True Sage unterst tzt auch Ringe von Potenz und Laurentreihen ber beliebigen Ringen Im folgenden Beispiel erzeugen wir ein Element aus F T und teilen es um ein Element aus F T zu erhalten 32 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage R lt T gt PowerSeriesRing GF 7 R Power Series Ring in T over Finite Field of size 7 sage f T 3xT 2 T 3 O T 4 sage f 3 T 3 2 T 4 2xT 5 O T 6 sage 1 f Tosh 4 4 T OCTA sage parent 1 f Laurent Series Ring in T over Finite Field of size 7 Sie k nnen einen Poten
68. ge v 1 2 3 4 v 1 2 3 4 sage type v lt type tuple gt sage v 1 5 Traceback most recent call last TypeError tuple object does not support item assignment Folgen sind ein dritter an Listen angelehnter Sage Datentyp Anders als Listen und Tupel sind Folgen kein gew hnlicher Python Datentyp Standardm ig sind Folgen ver nderbar mit der Sequence Klassenmethode set_immutable k nnen sie auf unver nderbar gestellt werden wie das folgende Beispiel zeigt Alle Elemente einer Folge haben einen gemeinsamen Obertyp der das Folgenuniversum genannt wird sage v Sequence 1 2 3 4 5 sage v 1 2 3 4 5 sage type v lt class sage structure sequence Sequence_generic gt sage type v 1 lt type sage rings rational Rational gt sage v universe Rational Field sage v is_immutable False sage v set_immutable sage v 0 3 Traceback most recent call last ValueError object is immutable please change a copy instead Folgen sind von Listen abgeleitet und k nnen berall dort verwendet werden wo auch Listen benutzt werden k nnen sage v Sequence 1 2 3 4 5 sage isinstance v list True sage list v 1 2 3 4 5 sage type list v lt type list gt Ein weiteres Beispiel von unver nderbaren Folgen sind Basen von Vektorr umen Es ist wichtig dass sie nicht ver n dert werden k nnen sage V 003 B V basis B 80 Kap
69. gel scht w rden 3 1 Ihre Sage Sitzung Unter einer Sitzung verstehen wir die Ein und Ausgaben von Sage vom Starten bis zum Beenden Sage speichert alle Eingaben mittels IPython Wenn Sie die interaktive Kommandozeile nutzen im Gegensatz zur Browser Oberfl che Notebook so k nnen Sie jederzeit mittels hist eine Liste aller bisher get tigten Eingaben sehen Sie k nnen auch eingeben um mehr ber IPython zu erfahren Z B IPython unterst tzt Zeilennummerierung sowie Ein und Ausgabezwischenspeicherung Alle Eingaben werden gespeichert und k nnen in Variablen abgerufen werden neben der normalen Pfeiltasten Navigation Die folgenden globalen Variablen existieren immer also bitte berschreiben Sie sie nicht letzte Eingabe interaktive Kommandozeile und Browser Oberfl che vorletzte Eingabe nur in der Kommandozeile _oh Liste aller Eingaben nur in der Kommandozeile 47 Sage Tutorial Release 5 11 Hier ein Beispiel sage factor 100 _1 2 2 x 5 2 sage kronecker_symbol 3 5 2 1 sage Shist funktioniert nur in der Kommandozeile nicht im Browser 1 factor 100 2 kronecker_symbol 3 5 3 Shist sage _oh 4 iF 202 4 52 2 L sage _il _5 factor 22 100 n sage eval _il _6 2 2 x 5 2 sage Shist factor 100 kronecker_symbol 3 5 Shist _oh esl eval _il Shist YHA BUDH Wir lassen die Zeilennummerierung im restlichen Tutorial sow
70. gen 2 5 1 Zweidimensionale Plots Sage kann in zwei Dimensionen Kreise Linien und Polygone zeichnen sowie Plots von Funktionen in kartesischen Koordinaten und Plots in Polarkoordinaten Konturplots und Plots von Vektorfeldern Wir geben davon im Folgenden einige Beispiele an F r weitere Beispiele zum Plotten mit Sage lesen Sie L sen von Differentialgleichungen und Maxima sowie die Sage Constructions Dokumentation Dieser Befehl erstellt einen gelben Kreis vom Radius 1 mit dem Ursprung als Zentrum sage circle 0 0 1 rgbcolor 1 1 0 Sie k nnen auch einen ausgef llten Kreis erzeugen sage circle 0 0 1 rgbcolor 1 1 0 fill True Sie k nnen einen Kreis auch erstellen indem Sie ihn einer Variable zuweisen so wird kein Plot gezeigt sage c circle 0 0 1 rgbcolor 1 1 0 Um den Plot zu zeigen benutzen Sie c show oder show c wie folgt sage c show Alternativ f hrt das Auswerten von c save filename png dazu dass der Plot in der angegebenen Datei gespeichert wird Noch sehen diese Kreise jedoch eher wie Ellipsen aus da die Achsen unterschiedlich skaliert sind Sie k nnen dies korrigieren sage c show aspect_ratio 1 Der Befehl show c aspect_ratio 1 erreicht das Gleiche Sie k nnen das Bild auch speichern indem Sie c save filename png aspect_ratio 1 benutzen Es ist einfach elementare Funktionen zu plotten 2 5 Plotten 19 Sage Tutorial Release 5 11 sage
71. gibt und 2 3 das Ergebnis O hat Wir ber cksichtigen dies im Sage Interpreter indem wir Integer Literale mit Integer versehen und die Division als Konstruktor f r rationale Zahlen behandeln Zum Beispiel sage 2 3 2 3 sage 2 3 parent Rational Field sage 2 3 0 sage int 2 int 3 0 e Gro e ganze Zahlen Python besitzt von Hause aus Unterst tzung f r beliebig gro e ganze Zahlen zus tzlich zu C ints Diese sind bedeutend langsamer als die von GMP zur Verf gung gestellten und sie haben die Eigenschaft dass die mit einem L am Ende ausgegeben werden um sie von ints unterscheiden zu k nnen und dies wird sich in naher Zeit nicht ndern Sage implementiert beliebig gro e Integers mit Hilfe der GMP C Bibliothek und diese werden ohne L ausgegeben Anstatt den Python Interpreter zu ver ndern wie es mache Leute f r interne Projekte getan haben benutzen wir die Sprache Python unver ndert und haben einen Pr Parser geschrieben so dass sich die Kommandozeilen IPython Version so verh lt wie es Mathematiker erwarten w rden Dies bedeutet dass bereits existierender Python Code in Sage so verwendet werden kann wie er ist Man muss jedoch immernoch die standardm igen Python Regeln beachten wenn man Pakete schreibt die in Sage importiert werden k nnen Um eine Python Bibliothek zu installieren die Sie zum Beispiel im Internet gefunden haben folgen Sie den An weisungen aber verwenden sie sage python anst
72. ie in der weiteren Sage Dokumentation weg Sie k nnen auch eine Liste von Eingaben einer Sitzung in einem Makro fiir diese Sitzung speichern sage E EllipticCurve 1 2 3 4 51 sage ModularSymbols 37 sage schist 1 E EllipticCurve 1 2 3 4 5 23 ModularSymbols 37 3 Shist sage Smacro em 1 2 acro m created To execute type its name without quotes sage E Elliptic Curve defined by y 2 xxy 3xy x 3 2xx 2 4 x 5 over Rational Field sage E 5 sage None sage em Executing Macro sage E Elliptic Curve defined by y 2 xxy 3xy x 3 2xx 2 4 x 5 over Rational Field W hrend Sie die interaktive Kommandozeile nutzen k nnen Sie jeden UNIX Kommandozeilenbefehl in Sage aus f hren indem Sie ihm ein Ausrufezeichen voranstellen Zum Beispiel gibt sage ls auto example sage glossary tex t tmp tut log tut tex den Inhalt des aktuellen Verzeichnisses aus In der PATH Variablen steht das Sage bin Verzeichnis vorne Wenn Sie also gp gap singular maxima usw eingeben starten Sie die in Sage enthaltenden Versionen 48 Kapitel 3 Die interaktive Kommandozeile Sage Tutorial Release 5 11 sage gp Reading GPRC etc gprc Done GP PARI CALCULATOR Version 2 2 11 alpha 1686 running linux ix86 GMP 4 1 4 kernel 32 bit version sage singular SINGULAR Development A Computer Algebra System for Polynomial Computations
73. iedene Konverter installiert sein um alle M glichkeiten nutzen zu k nnen Hier f hren wir einige grundlegenden Funktionen von latex vor 67 Sage Tutorial Release 5 11 sage var z zZ sage latex z 12 Z 12 sage latex integrate z 4 z frac 1 5 z 5 sage latex a string verb a phantom verb x verb string sage latex QQ Bold Q sage latex matrix 00 2 3 2 4 6 1 1 1 left begin array rrr 2646 6 1 amp 1 6 1 end array right Grundlegende MathJax Funktionen gibt es im Notebook weitgehend automatisch aber wir k nnen es teilweise mit Hilfe der MathJax Klasse demonstrieren Die eval Funktion dieser Klasse konvertiert ein Sage Objekt in seine LaTeX Darstellung und dann in HTML mit der CSS math Klasse die dann MathJax verwendet sage from sage misc latex import MathJax sage mj MathJax sage var z Z sage mj z 12 lt html gt lt script type math tex mode display gt newcommand Bold 1 mathbf 1 z 12 lt script gt lt html gt sage mj QQ lt html gt lt script type math tex mode display gt newcommand Bold 1 mathbf 1 Bold Q lt script gt lt htm sage mj ZZ x lt html gt lt script type math tex mode display gt newcommand Bold 1 mathb f 1 Bold 2 x lt script gt lt sage mj integrate z 4 z lt html gt lt script type math tex mode display gt newcommand Bold 1 mathbf
74. ilieren eines LaTeX Dokuments werden also alle Berechnungs oder LaTeX Formatierungseigenschaften von Sage automatisch genutzt Als Beispiel hierf r kann in einer mathematischen Betrachtung die korrekte Reihenfolge von Fragen und Antworten beibehalten werden indem sagetex dazu genutzt wird Sage die einen aus den anderen berechnen zu lassen Siehe hierf r auch SageTeX nutzen tex2sws beginnt mit einem LaTeX Dokument aber definiert einige zus tzliche Umgebungen f r Sage Code Wenn es richtig genutzt wird ist das Ergebnis ein Sage Arbeitsblatt mit korrekt von MathJax formatiertem Inhalt und dem dazugeh rigen Sage Code in den Eingabezellen Ein Lehrbuch oder Artikel kann also mit Sage Code Bl cken in LaTeX gesetzt werden und es kann live das ganze Dokument in ein Sage Arbeitsblatt berf hrt werden unter Beibehaltung der Sage Code Bl cke und mit sch n formatiertem mathematischen Text Momentan in Arbeit siehe tex2sws BitBucket 5 6 Eine vollfunktionsf hige TeX Installation 73 Sage Tutorial Release 5 11 sws2tex kehrt den Prozess um indem es mit einem Sage Arbeitsblatt beginnt und es in ein legitimes LaTeX Dokument zur weiteren Bearbeitung mit allen LaTeX Werkzeugen verwandelt Momentan in Arbeit siehe sws2tex BitBucket 74 Kapitel 5 Sage LaTeX und ihre Freunde KAPITEL 6 Programmierung 6 1 Sage Dateien Laden und Anh ngen Als n chstes zeigen wir wie man Programme die einer separaten Datei geschriebe
75. im ist und schauen uns die ersten Werte an sage w 4 p 1 for p in Primes if is_prime 4x p 1 sage w in the next line 0xb0853d6c is a random 0x number lt generator object at 0xb0853d6c gt sage w next 13 sage w next 29 sage w next 53 Bestimmte Ringe z B endliche K rper und die ganzen Zahlen haben zugehGrige Iteratoren sage x for x in GF 7 0 1 2 3 4 5 6 sage W x y for x in ZZ for y in ZZ 82 Kapitel 6 Programmierung Sage Tutorial Release 5 11 sage W next 0 0 sage W next 0 1 sage W next 0 1 6 9 Schleifen Funktionen Kontrollstrukturen und Vergleiche Wir haben schon ein paar Beispiele gesehen in denen die for Schleife blicherweise Verwendung findet In Python hat eine for Schleife eine einger ckte Struktur wie hier gt gt gt for i in range 5 print i Ss w o HH Oa Beachten Sie den Doppelpunkt am Ende der for Anweisung dort befindet sich kein do oder od wie in GAP oder Maple und die Einr ckung vor dem Schleifenrumpf dem print i Diese Einr ckung ist wichtig In Sage wird die Einr ckung automatisch hinzugef gt wenn Sie nach einem die enter Taste dr cken wie etwa im Folgenden Beispiel sage for i in range 5 SER print i now hit enter twice Das Symbol wird bei Zuweisungen verwendet Das Symbol wird verwendet um Gleichheit zu testen sage for i in range 15 if gcd i 15 1 pri
76. in Hauptmerkmal ist neben weiteren typischen Mengenope rationen dass das Nachschlagen ob ein Element zu der Menge geh rt oder nicht sehr schnell geht sage X set 1 19 a Y set 1 1 1 2 31 sage X set a 1 19 6 6 Dictionaries 81 Sage Tutorial Release 5 11 sage Y set 1 2 3 sage a in X True sage a in Y False sage X intersection Y set 1 Sage besitzt auch einen eigenen Mengen Datentyp welcher manchmal mit Hilfe des standardm igen Python Mengen Datentyps implementiert ist jedoch dar berhinaus manche Sage spezifischen Funktionen aufweist Sie k n nen eine Sage Menge erzeugen indem Sie Set verwenden Zum Beispiel sage X Set 1 19 a Y Set 1 1 1 2 31 sage X tar Ly 19 sage Y LL 2 3 sage X intersection Y 1 sage print latex Y left 1 frac 2 3 right sage Set 22 Set of elements of Integer Ring 6 8 Iteratoren Iteratoren sind seit Version 2 2 ein Teil von Python und erweisen sich in mathematischen Anwendungen als besonders n tzlich Wir geben hier ein paar Beispiele an Lesen Sie PyT um weitere Details zu erfahren Wir erstellen einen Iterator ber die Quadrate der nichtnegativen ganzen Zahlen bis 10000000 sage v n 2 for n in xrange 10000000 sage v next 0 sage v next 1 sage v next 4 Nun erzeugen wir einen Iterator ber den Primzahlen der Form 4p 1 wobei auch p pr
77. individuellen Objekte anderer Computer Algebra Systeme wie GAP Singular Maxima usw laden und speichern Sie sind mit invalid gekennzeichnet nach dem Laden In GAP werden viele Objekte in einer Form dargestellt die man wiederherstellen kann viele andere allerdings nicht Deshalb ist das Wiederherstellen aus ihren Druckdarstellungen nicht erlaubt sage a gap 2 sage a save a sage load a Traceback most recent call last ValueError The session in which this object was defined is no longer running GP PARI Objekte k nnen hingegen gespeichert und geladen werden da ihre Druckdarstellung ausreicht um sie wie derherzustellen sage a gp 2 sage a save a sage load a 2 Gespeicherte Objekte k nnen auch auf Computern mit anderen Architekturen oder Betriebssystemen wieder geladen werden Zum Beispiel k nnen Sie eine riesige Matrix auf einem 32 Bit Mac OS X speichern und sp ter auf einem 64 Bit Linux System laden dort die Stufenform herstellen und dann wieder zur ckladen Au erdem k nnen Sie in den meisten F llen auch Objekte laden die mit anderen Sage Versionen gespeichert wurden solange der Quelltext des Objekts nicht zu verschieden ist Alle Attribute eines Objekts werden zusammen mit seiner Klasse aber nicht dem Quellcode gespeichert Sollte diese Klasse in einer neueren Sage Version nicht mehr existieren kann das Objekt in dieser neueren Sage Version nicht mehr geladen werden Aber Sie k n
78. ions trig Function_sin gt sage plot sin 0 2 sage type sin x lt type sage symbolic expression Expression gt sage plot sin x 0 2 Alleinestehend kann sin nicht differenziert werden zumindest nicht um cos zu erhalten sage f sin sage f derivative Traceback most recent call last AttributeError f sin x anstelle von sin zu benutzen funktioniert aber es ist wohl noch besser x sin x zu benut zen um einen aufrufbaren symbolischen Ausdruck zu definieren sage S x sin x sage S derivative x gt cos x Hier sind ein paar h ufige Probleme mit Erkl rungen 4 Versehentliche Auswertung sage def h x if ZAS return 0 else return x 2 Das Problem plot h x 0 4 zeichnet die Linie y x 2 und nicht die mehrzeilige Funktion welche durch h definiert wird Der Grund In dem Befehl plot h x 0 4 wird zuerst h x ausgewertet Das bedeutet dass x in die Funktion h eingesetzt wird was wiederum bedeutet dass x lt 2 ausgewertet wird sage type x lt 2 lt type sage symbolic expression Expression gt Wenn eine symbolische Gleichung ausgewertet wird wie in der Definition von h wird falls sie nicht offensichtlicher weise wahr ist False zur ck gegeben Also wird h x zu x 2 ausgewertet und dies ist die Funktion die geplottet wird Die L sung verwenden Sie nicht plot h x 0 4 benutzen Sie stattdessen sage plot h 0 4 5 Versehentliches Erzeuge
79. ipticCurve GF 5 0 0 1 1 0 Elliptic Curve defined by y 2 y x 3 4xx over Finite Field of size 5 Das Paar 0 0 ist ein Punkt auf der elliptischen Kurve E definiert durch y y x x Um diesen Punkt in Sage zu erzeugen geben Sie E 0 0 ein Sage kann auf einer solchen elliptischen Kurve Punkte addieren erinnern Sie sich elliptische Kurven haben eine additive Gruppenstruktur wobei der unendlich ferne Punkt das Nullelement ist und drei kollineare Punkte auf der Kurve sich zu Null addieren EllipticCurve 0 0 1 1 0 zH Elliptic Curve defined by y 2 y x 3 x over Rational Field sage P E 0 0 P sage P 1 0 1 sage 10xP 161 16 2065 64 1 sage 20xP 683916417 264517696 18784454671297 4302115807744 1 sage E conductor 37 Die elliptischen Kurven ber den komplexen Zahlen sind durch die 7 Invariante parametrisiert Sage berechnet j Invarianten wie folgt sage E EllipticCurve 0 0 0 4 2 E Elliptic Curve defined by y 2 x 3 4xx 2 over Rational Field sage E conductor 2368 sage E j_invariant 110592 37 Wenn wir eine Kurve mit der gleichen j Invarianten wie E erstellen muss diese nicht isomorph zu E sein Im folgen den Beispiel sind die Kurven nicht isomorph da ihre F hrer unterschiedlich sind sage F EllipticCurve_from_3 110592 37 sage F conductor 37 Jedoch ergibt der Twist von F mit 2 eine isomor
80. itel 6 Programmierung Sage Tutorial Release 5 11 sage type B lt class sage structure sequence Sequence_generic gt sage B 0 B 1 Traceback most recent call last ValueError object is immutable please change a copy instead sage B universe Vector space of dimension 3 over Rational Field 6 6 Dictionaries Ein Dictionary manchmal auch assoziativer Array genannt ist eine Abbildung von hashbaren Objekten z B Strings Zahlen und Tupel Lesen Sie die Python documentation http docs python org tut node7 html und http docs python org lib typesmapping html f r weitere Details zu beliebigen Objekten sage d 1 5 sage 17 22 GF 7 sage type d lt type dict gt sage d keys 1 sage Integer Ring sage d sage 17 sage d ZZ Finite Field of size 7 sage d 1 5 Der dritte key zeigt dass Indizes eines Dictionaries kompliziert also beispielsweise der Ring der ganzen Zahlen sein k nnen Sie k nnen das obige Dictionary auch in eine Liste mit den gleichen Daten umwandeln sage d itens 1 5 sage 17 Integer Ring Finite Field of size 7 Eine h ufig vorkommende Ausdrucksweise ist ber einem Paar in einem Dictionary zu iterieren sage d 2 4 4 16 3 9 sage ab for a b in d iteritens 8 27 64 Ein Dictionary ist ungeordnet wie die letzte Ausgabe verdeutlicht 6 7 Mengen Python hat einen standardm igen Mengen Datentyp Se
81. ithm of the real number 2 EXAMPLES sage log2 1092 sage float log2 0 69314718055994529 sage RR log2 0 693147180559945 sage R RealField 200 R Real Field with 200 bits of precision sage R log2 0 69314718055994530941723212145817656807550013436025525412068 sage 1 1 log2 1t log2 1 1 log 2 log 2 1 sage R 1l 2 2 Hilfe 9 Sage Tutorial Release 5 11 0 18123221829928249948761381864650311423330609774776013488056 sage maxima log2 log 2 sage maxima loqg2 float 6931471805599453 sage gp log2 0 6931471805599453094172321215 32 bit 0 69314718055994530941723212145817656807 64 bit sage sudoku File sage local lib python2 5 site packages sage games sudoku py Type lt type function gt Definition sudoku A Docstring Solve the 9x9 Sudoku puzzle defined by the matrix A XAMPL sage A matrix ZZ 9 5 0 0 0 8 0 0 4 9 0 0 0 5 0 0 0 3 0 0 6 7 3 0 0 0 0 1 1 5 0 0 0 0 0 0 0 0 0 0 2 0 8 0 0 0 0 0 0 0 0 0 0 1 8 7 0 0 0 0 4 1 5 0 043 0 0 0 2 00307 419 07 0 50 070 31 sage A 50008 00 4 9 000500030 067300001 150000000 000208000 00000001 8 700004150 030002000 49005000 3 sage sudoku A 513687249 84952163 7 2673495 81 158463972 974218365 326795418 736 2 9 3 Ay 1 56 635172894 491856723 Sage stellt auch eine Tab Vervollst ndigung zur Verf gung Schreiben Sie die ersten Buchstaben
82. ker G M Greuel G Pfister and H Sch nemann Singular 3 3 1 A Computer Algebra System for Poly nomial Computations University of Kaiserslautern 2010 http www singular uni kl de SJ William Stein David Joyner Sage System for Algebra and Geometry Experimentation Comm Computer Al gebra 39 2005 61 64 99
83. ktiven Schnittstelle aus usw 4 1 GP PARI PARI ist ein kompaktes sehr ausgereiftes stark optimiertes C Programm dessen prim rer Fokus Zahlentheorie ist Es gibt zwei sehr verschiedene Schnittstellen die Sie in Sage nutzen k nnen gp Der Go P ARI Interpreter und e pari Die PARI C Bibliothek Die folgenden Zeilen zum Beispiel sind zwei Wege genau das gleiche zu tun Sie sehen identisch aus aber die Ausgabe ist verschieden und was hinter den Kulissen passiert ist v llig unterschiedlich sage gp znprimroot 10007 Mod 5 10007 sage pari znprimroot 10007 Mod 5 10007 Im ersten Fall wird eine separate Kopie des GP Interpreters als Server gestartet die Zeichenkette znprimroot 10007 bergeben von GP ausgewertet und das Ergebnis wird einer Variable in GP zugewie sen was Platz im Speicher des GP Unterprozesses ben tigt der nicht wieder freigegeben wird Dann wird der Wert der Variablen erst angezeigt Im zweiten Fall wird kein separates Programm gestartet stattdessen wird die Zeichenket te znprimroot 10007 von einer bestimmten PARI C Bibliotheksfunktion ausgewertet Das Ergebnis wird im Speicher von Python gehalten welcher freigegeben wird wenn die Variable nicht mehr referenziert wird Die Objekte haben au erdem verschiedene Typen 61 Sage Tutorial Release 5 11 sage type gp znprimroot 10007 lt class sage interfaces gp GpElement gt sage t
84. ma mit Sym bolen Maxima integriert und differenziert Funktionen symbolisch l st gew hnliche Differentialgleichungen ersten Grades sowie viele lineare Differentialgleichungen zweiten Grades und besitzt eine Methode zur Laplace Transfor mation linearer Differentialgleichungen von beliebigem Grad Maxima kennt eine gro e Zahl spezieller Funktionen plottet mittels gnuplot und hat Methoden um Polynomgleichungen oder Matrizen zu l sen oder zu ver ndern z B Zeilenelimination oder Eigenwerte und Eigenvektoren berechnen Wir zeigen die Sage Maxima Schnittstelle indem wir die Matrix konstruieren deren i 7 Eintrag gerade ist f r ij 1 4 sage f maxima eval ij_entry i j i j sage A maxima genmatrix ij_entry 4 4 A matrix 1 1 2 1 3 1 4 2 1 2 3 1 2 3 3 2 1 3 4 4 2 4 3 1 sage A determinant 0 sage A echelon matrix 1 1 2 1 3 1 4 0 0 0 0 0 0 0 0 0 0 0 0 sage A eigenvalues 0 4 3 1 sage A eigenvectors 0 41 3 111 1 0 0 41 0 1 0 2 1 0 0 1 4 311 1 2 3 4111 Hier ein anderes Beispiel sage A maxima matrix 1 0 0 1 1 0 1 3 2 sage eigA A eigenvectors sage V VectorSpace 00 3 sage ee 2 1 1 1 1 1 0 0 1 0 1 31 1 1 2 5 6 sage u V sage_eval repr eigA 1 0 0 lambdal eigA 0 0 0 sage v2 V sage_eval repr eigA 1 1 0 lambda2 eigA 0 0 1 sage v3 V sage
85. matrix_delimiters left right sage latex A left begin array rr 0 amp 1 2 amp 3 end array right Die latex vector_delimiters Methode funktioniert hnlich Die Darstellung von Ringen und K rpern ganze rationale reelle Zahlen etc kann mit der latex blackboard_bold Methode ver ndert werden Diese Mengen werden in standardm ig in fett ge druckt alternativ k nnen sie auch mit Doppelstrichen geschrieben werden Hierf r wird das Bold Makro genutzt das in Sage integriert ist 5 3 Anpassen der LaTeX Generierung 69 Sage Tutorial Release 5 11 sage latex 00 Bold Q sage from sage misc latex import MathJax sage mj MathJax sage mj QQ lt html gt lt script type math tex mode display gt newcommand Bold 1 mathb f 1 Bold Q lt script gt lt htm sage latex blackboard_bold True sage mj QQ lt html gt lt script type math tex mode display gt newcommand Bold 1 mathbb 1 Bold Q lt script gt lt htm sage latex blackboard_bold False Dank der Erweiterbarkeit von TeX k nnen Sie selbst Makros und Pakete einbinden Individuelle Makros k nnen hinzugef gt werden die dann von MathJax als TeX Schnipsel interpretiert werden sage latex extra_macros vr sage latex add_macro newcommand foo bar sage latex extra_macros newcommand foo bar sage var x y x y sage latex xty x y sage from s
86. monaDatabase sage db curves 37 ali 0 0 1 1 0 1 1 b1 0 1 1 23 50 0 3 sage db allcurves 37 ales 107 Oy Ly gt 10 Ir I pits Pop 1 By 23 gt 80 Oy Sy b2 0 1 1 1873 31833 1 0 115 bs EEO 1 Ly 3y 117 05 313 Die Objekte die aus der Datenbank zur ckgegeben werden sind nicht vom Typ EllipticCurve Sie sind Elemente einer Datenbank und haben ein paar Komponenten und das war s Es gibt eine kleine Version von Cremonas Daten bank die standardm ig zu Sage geh rt und beschr nkte Information zu elliptischen Kurven mit F hrer lt 10000 enth lt Es gibt auch eine gro e optionale Version welche ausgiebige Daten zu allen elliptischen Kurven mit F hrer bis zu 120000 enth lt Stand Oktober 2005 Es gibt auch ein riesiges 2GB gro es optionales Datenbank Paket f r Sage das in der Stein Watkins Datenbank hunderte Millionen von elliptischen Kurven enth lt 2 12 3 Dirichlet Charaktere Ein Dirichlet Charakter ist die Erweiterung eines Homomorphismus Z NZ R f r einen Ring R zu der Abbildung Z R welche erhalten wird wenn man diese ganzen Zahlen x mit ged N x gt 1 nach 0 schickt 2 12 Etwas weiter fortgeschrittene Mathematik 41 Sage Tutorial Release 5 11 sage G DirichletGroup 12 sage G list Dirichlet character modulo 12 of conductor 1 mapping 7 gt 1 5 gt 1 Dirichlet character modulo 12 of conductor 4 mapping 7 g
87. n einer Konstanten anstelle von einer Funktion 2 6 H ufige Probleme mit Funktionen 23 Sage Tutorial Release 5 11 sage f x sage g f derivative sage g 1 Das Problem g 3 zum Beispiel gibt folgenden Fehler zuriick ValueError the number of arguments must be less than or equal to 0 sage type f lt type sage symbolic expression Expression gt sage type g lt type sage symbolic expression Expression gt g ist keine Funktion es ist eine Konstante hat also keine zugeh rigen Variablen und man kann in sie nichts einsetzen Die L sung Es gibt mehrere M glichkeiten e Definieren Sie f anfangs als symbolischen Ausdruck sage f x x statt f x sage g f derivative sage g x gt 1 sage g 3 1 sage type g lt type sage symbolic expression Expression gt e Oder mit der urspr nglichen Definition von f definieren Sie g als symbolischen Ausdruck sage f sage g x f derivative statt g f derivative sage g x gt 1 sage g 3 di sage type g lt type sage symbolic expression Expression gt e Oder mit den urspr nglichen Definitionen von f and g geben Sie die Variable an in diese Sie den Wert einset zen sage x sage g f derivative sage g al sage g x 3 statt g 3 1 Schlie lich ist hier noch eine M glichkeit den Unterschied zwischen der Ableitung von x und der von f x x
88. n wurden in Sage l dt Erstellen Sie eine Datei welche Sie beispiel sage nennen mit folgendem Inhalt print Hello World print 2 3 Sie k nnen beispiel sage einlesen und ausf hren indem Sie den 1oad Befehl verwenden sage load beispiel sage Hello World 8 Sie k nnen auch eine Sage Datei an eine laufende Sitzung anh ngen indem Sie den attach Befehl verwenden sage attach beispiel sage Hello World 8 Wenn Sie nun beispiel sage ver ndern und eine Leerzeile in Sage eingeben d h return dr cken wird der Inhalt von beispiel sage automatisch in Sage neu geladen Insbesondere l dt der attach Befehl eine Datei jedesmal wenn diese ver ndert wird automatisch neu was beim Debuggen von Code n tzlich sein kann wobei der 1oad Befehl eine Datei nur einmal l dt Wenn Sage die Datei beispiel sage l dt wird sie zu Python Code konvertiert welcher dann vom Python Interpreter ausgef hrt wird Diese Konvertierung ist geringf gig sie besteht hauts chlich daraus Integer Literale mit Integer und Flie komma Literale mit RealNumber zu versehen durch xx zu ersetzen und z B R 2 durch R gen 2 auszutauschen Die konvertierte Version von beispiel sage befindet sich im gleichen Ver zeichnis wie beispiel sage und ist beispiel sage py genannt Diese Datei enth lt den folgenden Code print Hello World print Integer 2 Integer 3 Integer Literale wurden mit Integer versehen und das wurde durch ein x ersetzt In
89. n y Koordinaten 2y 4y 3 0 erf llen Sage kann auch das torische Ideal der gedrehten Kubik im dreidimensionalen projektiven Raum berechnen sage R lt a b c d gt PolynomialRing 00 4 sage I ideal b 2 axc c 2 bxd axd b c sage F I groebner_fan F Groebner fan of the ideal Ideal b 2 axc c 2 bxd bx c axd of Multivariate Polynomial Ring in a b c d over Rational Field sage F reduced_groebner_bases e 2 bed bec avd b 2 axc c 2 bed b 2 axc b c axd c 2 bed bec axd b 2 arc 0 3 axd 2 63 axd 2 e 2 bed bec aed b 2 axc a a bed b c axd b 2 axc er2 bed bec axd 5 2 20 b S a 2 d c 2 bed b xc axd b 3 a 2xd b 2 axcl o 2 bed bec aed b 2 xe sage F polyhedralfan Polyhedral fan in 4 dimensions of dimension 4 2 12 2 Elliptische Kurven Die Funktionalitat elliptischer Kurven beinhaltet die meisten von PARIs Funktionen zu elliptischen Kurven den Zu griff auf die Daten von Cremonas Online Tabellen dies ben tigt ein optionales Datenbankpaket die Funktionen von mwrank d h 2 Abstiege mit der Berechnung der vollen Mordell Weil Gruppe der SEA Algorithmus Berechnung aller Isogenien viel neuem Code f r Kurven ber Q und Teile von Denis Simons algebraic descent Software Der Befehl EllipticCurve zum Erzeugen von Elliptischen Kurven hat viele Formen e EllipticCurve a a2
90. nauso sage v 1 2 3 sage v 2 3 sage n 2 SAGE Integer sage v n Perfectly OK 3 sage v int n Also OK 3 Die range Funktion erzeugt eine Liste von Python int s nicht Sage Integers sage range 1 15 CL 2p 3p Bp Sp Op Vp Be 9 LO Thy 12 135 TA Dies ist niitzlich wenn man List Comprehensions verwendet um Listen zu konstruieren sage L factor n for n in range 1 15 sage print L hy 25 By 2 25 9 2 3 Tp 2S 392 2 e Dy 11 272 35 13 2 7 sage L 12 13 sage type L 12 lt class sage structure factorization_integer IntegerFactorization gt sage factor n for n in range 1 15 if is_odd n 1p 3 By Ti 3827 11 13 Um mehr dar ber zu erfahren wie man Listen mit Hilfe von List Comprehensions erzeugt lesen Sie PyT List Slicing ist eine wunderbare Eigenschaft Wenn L eine Liste ist dann gibt L m n die Teilliste von L zur ck die erhalten wird wenn man mit dem m Element beginnt und bei dem n 1 Element aufh rt wie unten gezeigt wird 6 5 Listen Tupel und Folgen 79 Sage Tutorial Release 5 11 sage L factor n for n in range 1 20 sage L 4 9 5 28 3p Tp 2 37 3 2 sage print L 4 Lo 25 Sp 22 sage L 14 4 sage L 14 3 5 2 4 17 2 3 2 19 Tupel sind hnlich wie Listen au er dass sie unver nderbar sind was bedeutet dass sie sobald sie erzeugt wurden nicht mehr ver ndert werden k nnen sa
91. neuen Wert von y nennen kann diese Approximation neu ausgedr ckt werden als Ynew Yold h f a Yold Wenn wir das Intervall von a bis b in n Teilintervalle aufteilen so dass h ba gilt k nnen wir die Information in folgender Tabelle festhalten z y h f x y a c h f a c a h c h f a c a 2h b a nh Unser Ziel ist zeilenweise alle leeren Eintr ge der Tabelle auszuf llen bis wir den Eintrag erreichen welcher die Approximation des Euler Verfahrens f r y b ist Die Idee f r Systeme von ODEs ist hnlich Beispiel Approximiere z t mit 4 Schritten der Eulermethode numerisch bei t 1 wobei 2 tz z 0 z 0 1 und 2 0 0 ist Wir m ssen die ODE zweiter Ordnung auf ein System von zwei Differentialgleichungen erster Ordnung reduzieren wobei x z y 2 und das Euler Verfahren anwenden sage t x y PolynomialRing RealField 10 3 txy gens sage f y g x yrt sage eulers_method_2x2 f g 0 1 0 1 4 1 E x hxf t x y y h g t x y 0 1 0 00 0 0 25 1 4 1 0 0 062 0 25 0 23 1 2 0 94 0 12 0 48 O 017 3 4 0 82 0 16 0 66 0 081 1 0 65 0 18 0 74 0 022 Also ist z 1 0 75 Wir k nnen auch die Punkte x y plotten um ein ungef hres Bild der Kurve zu erhalten Die Funktion eulers_method_2x2_plot macht dies um sie zu benutzen m ssen wir die Funktionen f und g definieren welche ein Argument mit drei Koordinaten t x
92. nn Sie foo save filename eps in Sage aufrufen w rden Grunds tzlich gilt e lassen Sie LaTeX ber Ihre tex Datei laufen e lassen Sie Sage ber die neu generierte sage Datei laufen e lassen Sie LaTeX erneut laufen Sie k nnen das Aufrufen von Sage weglassen wenn Sie keine nderung an den Sage Befehlen in Ihrem Dokument vorgenommen haben Es gibt noch viel mehr ber SageTeX zu sagen aber da sowohl Sage alsauch LaTeX komplexe und m chtige Werkzeuge sind sollten Sie die Dokumentation ber SageTeX in SAGE_ROOT local share texmf tex generic sagetex lesen 88 Kapitel 7 SageTeX nutzen KAPITEL 8 Nachwort 8 1 Warum Python 8 1 1 Vorteile von Python Sage ist hauts chlich in der Programmiersprache Python implementiert siehe Py Jedoch ist Code bei dem Ge schwindigkeit ausschlaggebend ist in einer kompilierten Sprache implementiert Python hat folgende Vorteile Speichern von Objekten wird in Python gut unterst tzt F r das Speichern von nahezu beliebigen Objekten auf Festplatten oder in Datenbanken sind in Python weitgehende Hilfsmittel vorhanden Exzellente Unterst tztung f r die Dokumentation von Funktionen und Paketen im Quellcode einschlie lich der automatischen Erstellung der Dokumentation und automatisches Testen aller Beispiele Die Beispiele werden regelm ig automatisch getestet und es wird garantiert dass sie wie angegeben funktionieren Speicherverwaltung Python besitzt
93. nt i BNF 8 dey 13 14 Behalten Sie im Ged chtnis dass die Block Struktur von if for und while Ausdriicken durch die Einriickung bestimmt wird sage def legendre a p is_sqr_modp 1 for i in range p if a p 125 p is_sqr_modp 1 6 9 Schleifen Funktionen Kontrollstrukturen und Vergleiche 83 Sage Tutorial Release 5 11 return is_sqr_modp sage legendre 2 7 1 sage legendre 3 7 1 Nat rlich ist dies keine effiziente Implementierung des Legendre Symbols Dies soll nur bestimmte Aspekte won Py thon Sage verdeutlichen Die Funktion kronecker welche zu Sage geh rt berechnet das Legendre Symbol effizient mittels eines Aufrufs von PARIs C Bibliothek Schlie lich merken wir an dass Vergleiche wie lt gt gt lt von zwei Zahlen automatisch beide Zahlen in den gleichen Typ konvertieren falls dies m glich ist sage 2 lt 3 1 3 1 lt 1 True False sage 2 3 lt 3 2 3 2 lt 3 1 True True Fast immer k nnen zwei beliebige Objekte verglichen werden Es gibt keine Voraussetzung die besagt dass die Ob jekte mit einer totalen Ordnung versehen sein miissen sage 2 lt CC 3 1 1 True sage 5 lt VectorSpace 00 3 output can be somewhat random True Nutzen Sie bool f r symbolische Ungleichungen sage x lt x 1 x lt x 1 sage bool x lt x 1 True Beim Vergleichen von Objekten unterschiedlichen Typs versucht Sage in den meisten Fallen
94. nten es in der alten Sage Version laden die Objekt Dictionaries mit x __dict__ laden und das Objekt zusammen mit diesem in der neuen Sage Version laden 56 Kapitel 3 Die interaktive Kommandozeile Sage Tutorial Release 5 11 3 8 1 Als Text speichern Sie k nnen die ASCII Text Darstellung eines Objekts in eine Klartextdatei schreiben indem Sie die Datei einfach mit Schreibzugriff ffnen und die Textdarstellung des Objekts hineinkopieren Sie k nnen auch viele andere Objekte auf diese Art speichern Wenn Sie alle Objekte hineinkopiert haben schlie en Sie die Datei einfach sage R lt x y gt PolynomialRing 00 2 sage f x y 7 sage o open file txt w sage o write str f sage o close 3 9 Speichern und Laden kompletter Sitzungen Sage hat eine sehr flexible Unterstiitzung fiir das Speichern und Laden kompletter Sitzungen Der Befehl save_session sitzungsname speichert alle Variablen die Sie w hrend dieser Sitzung definiert haben als ein Dictionary sessionname Im seltenen Fall dass eine Variable nicht gespeichert werden kann fehlt sie anschlie end einfach im Dictionary Die erzeugte Datei ist eine sob j Datei und kann genau wie jedes andere Objekt geladen werden Wenn Sie Objekte aus einer Sitzung laden werden Sie diese in einem Dictionary finden Dessen Schliissel sind die Variablen und dessen Werte sind die Objekte Sie k nnen den load_session sitzungsname Befehl nutzen um die Varia
95. nun einen gut durchdachten und robusten Speicherverwalter und einen Speicherbereiniger der zirkul re Referenzen korrekt behandelt und lokale Variablen in Dateien ber cksichtigt Python besitzt mittlerweile viele Pakete die f r Sagenutzer sehr reizvoll sein k nnten numerische Analysis und lineare Algebra 2D und 3D Visualisierungen Vernetzungen f r verteilte Berechnungen und Server z B mithilfe von twisted Datenbankunterst tzung usw Portabilit t Python kann auf den meisten Systemen unkompliziert innerhalb von Minuten aus dem Quellcode kompiliert werden Fehlerbehandlung Python besitzt ein ausgekl geltes und wohl durchdachtes System f r die Behandlung von Ausnahmebedingunen mit dem Programme sinnvoll weiterarbeiten k nnen sogar wenn bei ihrem Aufruf Fehler auftreten Debugger Python beinhaltet einen Debugger Folglich kann der Benutzer falls der Code aus irgendeinem Grund fehlschl gt auf eine ausgiebige Stack Ablaufverfolgung zugreifen den Zustand aller relevanter Variablen betrachten und sich auf dem Stack nach oben oder unten bewegen Profiler Es gibt einen Python Profiler welcher Code ausf hrt und einen Bericht erstellt in dem detailliert aufgestellt wurde wie oft und wie lange jede Funkion aufgerufen wurde Eine Sprache Anstatt eine neue Sprache f r mathematische Software zu schreiben wie es f r Magma Maple Mathematica Matlab GP PARI GAP Macaulay 2 Simath usw gemacht wurde benutzen wir die Program
96. nverter installiert haben falls nicht wird Ihnen eine Fehlermeldung angezeigt die Ihnen sagt was fehlt und wo Sie es herunterladen k nnen F r ein konkretes Beispiel wie komplizierte LaTeX Ausdr cke verarbeitet werden k nnen sehen Sie sich das Beispiel des tkz graph Pakets zum Erstellen von hochwertigen kombinatorischen Graphen im n chsten Abschnitt Ein Beispiel Kombinatorische Graphen mit tkz graph an F r weitere Beispiele gibt es einige vorgepackte Testf lle Um diese zu nutzen m ssen Sie das sage misc latex latex_examples Objekt importieren Dieses ist eine Instanz der sage misc latex LatexExamples Klasse wie unten beschrieben Diese Klasse enth lt momentan Beispiele von kommutativen Diagrammen kombinatorischen Graphen Knotentheorie und Beispiele f r Graphen mit pstricks Es werden damit die folgenden Pakete getestet xy tkz graph xypic pstricks Nach dem Import k nnen Sie mittels Tab Vervollst ndigung von latex_examples die vorgepackten Beispiele sehen Bei Aufruf vom jedem Beispiel erhalten Sie eine Erkl rung was n tig ist damit das Beispiel korrekt dargestellt wird Um die Darstellung tats chlich zu sehen m ssen Sie view benutzen sofern die Pr ambel der LaTeX Prozessor etc richtig eingestellt sind sage from sage misc latex import latex_examples sage latex_examples diagram LaTeX example for testing display of a commutative diagram produced by xypic To use try to view this object it won
97. of order 6 and degree 2 Group of Dirichlet characters of modulus 7 over Cyclotomic Field of order 6 and degree 2 Als n chstes konstruieren wir die Gruppe der Dirichlet Charaktere mod 20 jedoch mit Werten in Q sage K lt i gt NumberField x 2 1 sage G DirichletGroup 20 K sage G Group of Dirichlet characters of modulus 20 over Number Field in i with defining polynomial x 2 1 Nun berechnen wir mehrere Invarianten von G 42 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage G gens Dirichlet character modulo 20 of conductor 4 mapping 11 gt 1 17 gt 1 Dirichlet character modulo 20 of conductor 5 mapping 11 gt 1 17 gt i sage G unit_gens 11 27 sage G zeta i sage G zeta_order 4 In diesem Beispiel erzeugen wir einen Dirichlet Charakter mit Werten in einem Zahlenfeld Wir geben die Wahl der Einheitswurzel im dritten Argument von DirichletGroup an sage x polygen 00 x sage K NumberField x 4 1 a a K 0 sage b K gen a b True sage K Number Field in a with defining polynomial x 4 1 sage G DirichletGroup 5 K a G Group of Dirichlet characters of modulus 5 over Number Field in a with defining polynomial x 4 1 sage chi G 0 chi Dirichlet character modulo 5 of conductor 5 mapping 2 gt a 2 sage chi i 2 for i in range 4 1 a 2 1 a 2 Hier teilt NumberField x 4 1 a
98. on ben tigt weil er in der mathjax_avoid_list steht Der Ausdruck wird nun vom ausgew hlten durch latex engine Prozes sor erzeugt und statt der Anzeige in einem externen Programm was in der Kommandozeile passieren w rde wird 5 4 Anpassen der LaTeX Verarbeitung 71 Sage Tutorial Release 5 11 Sage versuchen das Ergebnis in einem einzigen leicht beschnittenen Bild in der Ausgabezelle darzustellen Wie diese Umwandlung abl uft h ngt von einigen Faktoren ab haupts chlich vom verwendeten LaTeX Prozessor und davon welche Konvertierungswerkzeuge auf dem System vorhanden sind Vier n tzliche Konverter die alle Eventua lit ten abdecken sind dvips ps2pdf dvipng und aus dem ImageMagick Paket convert Das Ziel ist die Erzeugung einer png Datei die sp ter wieder im Arbeitsblatt eingebunden werden kann Wenn ein LaTeX Ausdruck erfolgreich von latex in eine dvi Datei verwandelt wird dann sollte dvipng die Umwandlung vornehmen Wenn der LaTeX Ausdruck und der gew hlte LaTeX Prozessor eine dvi Datei mit Erweiterungen erstellt die dvipng nicht unterst tzt so wird dvips eine PostScript Datei erzeugen So eine PostScript Datei oder eine pdf Datei aus dem Pro zessor pdflatex wird dann von convert in eine png Datei gewandelt Das Vorhandensein von zweier solcher Konverter kann mit Hilfe der have_dvipng und have_convert Routinen berpr ft werden Diese Umwandlungen werden automatisch ausgef hrt wenn Sie die n tigen Ko
99. othekaufrufe direkt ausf hren Der daraus entstehende Code wird nach C konvertiert und mithilfe eines C Compilers kompiliert Um eigenen kompilierten Sagecode zu erstellen geben Sie der Datei eine spyx Endung anstelle von sage Falls Sie mit der Kommandozeile arbeiten k nnen Sie kompilierten Code genau wie interpretierten Code anh ngen und laden Im Moment wird das Anh ngen von Cythoncode vom Notebook aus nicht unterst tzt Die tats chliche Kompilierung wird hinter den Kulissen durchgef hrt ohne dass Sie explizit etwas tun m ssen Schauen Sie sich SAGE_ROOT examples programming sagex factorial spyx an um ein Beispiel einer kompilierten Implementation der Fakult tsfunktion zu sehen welche die GMP C Bibliothek unmittelbar benutzt Um dies selbst auszuprobierten wechseln Sie in das Verzeichnis SSAGE_ROOT examples programming sagex und f hren Sie Folgendes aus sage load factorial spyx EKXKKAKKKKKKKKKKKAKKKKA KK RL KK KH KH KH KH KH A KH FH A A I TFA TA AH KH AH FA AH A KH A A Recompiling factorial spyx KKKKKKKKKKKK KK KK KK HH HIHI TH TH HK AH TH FH FH TH AH FH FH I TI A TH FH AH AAA sage factorial 50 30414093201713378043612608166064768844377641568960512000000000000L sage time n factorial 10000 CPU times user 0 03 s sys 0 00 s total 0 03 s Wall time 0 03 Hier gibt das abschlie ende L ein Python long integer zu erkennen Lesen Sie Der Pre Parser Unterschiede zwi schen Sage und Python
100. ottime geteilt durch ncalls cumt me ist die Gesamtzeit die f r diese Funktion und alle Unterfunktionsaufrufe d h vom Aufruf bis zum Ende verwendet wurde percall ist der Quotient von cumt ime geteilt durch die Zeit elementarer Funkti onsaufrufe und filename lineno function stellt die entsprechenden Daten jeder Funktion zur Verf gung Die Daumenregel ist hier Je h her die Funktion in dieser Liste steht desto teurer ist sie Also ist sie interessanter f r Optimierungen Wie sonst auch stellt prun Details zur Benutzung des Profilers und zum Verstehen seines Outputs zur Verfiigung Die Profilierungsdaten k nnen auch in ein Objekt geschrieben werden um eine weitere Untersuchung zu erm glichen sage prun r AxA sage stats _ sage stats 6 10 Profiling 85 Sage Tutorial Release 5 11 Beachten Sie das Eingeben von stats prun r A xA erzeugt eine Syntaxfehlermeldung da prun ein IPython Shell Kommando ist und keine regul re Funktion Um eine sch ne graphische Repr sentation der Profilerdaten zu erhalten k nnen Sie den hotshot Profiler ein kleines Skript genannt hotshot2cachetree und das Programm kcachegrind nur f r Unix benutzen Hier ist das gleiche Beispiel mit dem hotshot Profiler sage k a GF 2xx8 a objgen A sage Matrix k 10 10 k random_element for _ in range 10x10 sage import hotshot sage filename pythongrind prof sage prof hotshot Profile filename
101. p 1 2 3 4 5 3 4 sage G Group 1 2 3 4 5 3 4 sage G Center Group sage G IdGroup optional database_gap 120 34 sage G Order 120 Wir k nnen die gleiche Berechnung in Sage durchfiihren ohne vorher explizit die GAP Schnittstelle aufzurufen sage G PermutationGroup 1 2 3 4 5 3 4 sage G center Subgroup of Permutation Group with generators 3 4 1 2 3 4 5 generated by sage G group_id optional database_gap 120 34 sage n G order n 120 F r einige GAP Funktionen sollten Sie zwei optionale Sage Pakete installieren Geben Sie sage optional ein um eine Liste zu erhalten und w hlen Sie das Paket aus das etwa so aussieht gap _packages x y z Geben Sie dann sage i gap _packages x y z ein Das gleiche machen Sie bitte mit database _gap x y z Einige nicht GPL Pakete k nnen installiert werden indem Sie sie von der GAP Website GAPkg herunter laden und nach SSAGE_ROOT local lib gap 4 4 10 pkg entpacken 4 3 Singular Singular bietet eine sehr gute ausgereifte Bibliothek f r Gr bnerbasen gr te gemeinsame Teiler von mehrdimensio nalen Polynomen Basen von Riemann Roch R umen einer planaren Kurve und Faktorisierungen unter anderem Wir zeigen hier die Faktorisierung mehrdimensionaler Polynome mit Sages Singular Schnittstelle ohne die sage R1 singular ring 0 x y dp sage R1 characteristic 0
102. pace of dimension 4 and level 13 weight 2 character zeta6 sign 0 over Cyclotomic Field of order 6 and degree 2 sage S T 2 charpoly x factor x zeta6 1 2 sage S q_expansion_basis 10 q zeta6 1 q 2 2xzeta6 2 q 3 zetabxg 4 2xzeta6 1 xq 5 2 zeta6 4 q 6 2xzeta6 1 q 8 zeta6 q 9 O q 10 Hier ist ein weiteres Beispiel davon wie Sage mit den Operationen von Hecke Operatoren auf dem Raum von Modul 44 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 formen rechnen kann sage T ModularForms Gamma0 11 2 sage T Modular Forms space of dimension 2 for Congruence Subgroup Gamma0 11 of weight 2 over Rational Field sage T degree 2 sage T level Al sage T group Congruence Subgroup Gamma0 11 sage T dimension 2 sage T cuspidal_subspace Cuspidal subspace of dimension 1 of Modular Forms space of dimension 2 for Congruence Subgroup Gamma0 11 of weight 2 over Rational Field sage T eisenstein_subspace Eisenstein subspace of dimension 1 of Modular Forms space of dimension 2 for Congruence Subgroup Gamma0 11 of weight 2 over Rational Field sage ModularSymbols 11 M odular Symbols space of dimension 3 for Gamma_0 11 of weight 2 with sign 0 over Rational Field sage M weight 2 sage M basis 1 0 1 8 1 9 sage sign 0 Sei T die Bezeichnung der gew hnlichen Hecke Operato
103. phe Kurve sage G F quadratic_twist 2 G Elliptic Curve defined by y 2 x 3 4xx 2 over Rational Field sage G conductor 2368 40 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage G j_invariant 110592 37 Wir k nnen die Koeffizienten a der zur elliptischen Kurve geh renden L Reihe oder der Modulform IH anq berechnen Die Berechnung benutzt die PARI C Bibliothek sage E EllipticCurve 0 0 1 1 0 sage print E anlist 30 Oy Ty 2 8 72 2 6p 1 0 6 4 9y 6p 2 2 6 4 0 12 0 4 3 10 2 0 1 4 9 2 6 12 sage v E anlist 10000 Alle Koeffizienten a bis zun lt 10 zu berechnen dauert nur eine Sekunde sage time v E anlist 100000 CPU times user 0 98 s sys 0 06 s total 1 04 s wall time 1 06 Elliptische Kurven k nnen mit Hilfe ihres Cremona Labels konstruiert werden Dies l dt die Kurve zusammen mit Informationen ber ihren Rank mit Tamagawa Zahlen Regulatoren usw sage E EllipticCurve 37b2 sage E Elliptic Curve defined by y 2 y 273 4 292 1873 x 31833 over Rational Field sage E EllipticCurve 389a sage E Elliptic Curve defined by y 2 y HPS e 2 x over Rational Field sage E rank 2 sage E EllipticCurve 5077a sage E rank 3 Wir k nnen auch direkt auf die Cremona Datenbank zugreifen sage db sage databases cremona Cre
104. r bestimmten Potenzierung auf verschiedene Arten vergleichen Die unten genannte Laufzeit wird unter Umst nden weit von der Laufzeit auf Ihrem Computer oder sogar zwischen verschiedenen Sage Versionen abweichen Zuerst natives Python sage time a int 1938 int 99484 CPU times user 0 66 s sys 0 00 s total 0 66 s wall time 0 66 Das bedeutet insgesamt 0 66 Sekunden wurden ben tigt und die vergangene Wall time also die vergangene Echtzeit auf Ihrer Wanduhr betrug auch 0 66 Sekunden Wenn auf Ihrem Computer viele andere Programme gleichzeitig laufen kann die Wall time wesentlich gr er als die CPU Zeit sein Als n chstes messen wir die Laufzeit der Potenzierung unter Verwendung des nativen Sage Ganzzahl Typs der in Cython implementiert ist und die GMP Bibliothek nutzt sage time a 193899484 CPU times user 0 04 s sys 0 00 s total 0 04 s wall time 0 04 Unter Verwendung der PARI C Bibliothek sage time a pari 1938 pari 99484 CPU times user 0 05 s sys 0 00 s total 0 05 s wall time 0 05 GMP ist also ein bisschen besser wie erwartet da die f r Sage verwendete PARI Version GMP f r Ganzzahlarithmetik nutzt Sie k nnen ebenso Befehlsbl cke messen indem Sie cputime wie unten verwenden sage t cputime sage a int 1938 int 99484 sage b 193899484 sage c pari 1938 pari 99484 50 Kapitel 3 Die interaktive Kommandozeile Sage Tutorial Release 5 11
105. r f z einen Fehler zur ck Das Folgende funktioniert in diesem Fall obwohl es im Allgemeinen Probleme verursachen kann und deshalb vermieden werden sollte Beachten Sie unten den 4 Punkt sage var z z wird als Variable definiert Z sage f z 2 2 sage plot f z 0 2 Nun ist f z ein symbolischer Ausdruck Dies ist unser n chster Stichpunkt unserer Aufz hlung 2 Definition eines aufrufbaren symbolischen Ausdrucks Diese k nnen geplottet differenziert und integriert werden sage g x x 2 sage g g bildet x auf x 2 ab x gt x 2 sage g 3 9 sage Dg g derivative Dg x gt 2xx sage Dg 3 6 sage type g lt type sage symbolic expression Expression gt sage plot g 0 2 Beachten Sie dass w hrend g ein aufrufbarer symbolischer Ausdruck ist g x ein verwandtes aber unterschiedliches Objekt ist welches auch geplottet differenziert usw werden kann wenn auch mit einigen Problemen Lesen Sie den 5 Stichpunkt unterhalb um eine Erl uterung zu erhalten 22 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage g x a sage type g x lt type sage symbolic expression Expression gt sage g x derivative 2x X sage plot g x 0 2 3 Benutzung einer vordefinierten trigonometrischen Sage Funktion Diese k nnen mit ein wenig Hilfestellung dif ferenziert und integriert werden sage type sin lt class sage funct
106. rammieraufwand es ist einfach ein Merkmal das von Grund auf in Python war Fast alle Objekte x in Sage k nnen in komprimierter Form gespeichert werden via save x Dateiname oder in vielen F llen x save Dateiname Um das Objekt wieder zu laden nutzen Sie load Dateiname sage A MatrixSpace 00 3 range 9 2 sage A 15 18 21 42 54 66 69 90 111 sage save A A Sie sollten Sage nun schlie en und neu starten Dann k nnen Sie A wieder laden 3 8 Speichern und Laden von individuellen Objekten 55 Sage Tutorial Release 5 11 sage A load A sage A 15 18 21 42 54 66 69 90 111 Sie k nnen das selbe mit komplizierteren Objekten wie etwa elliptischen Kurven machen Alle Daten ber das Objekt sind zwischengespeichert und werden mit dem Objekt gespeichert Zum Beispiel sage E EllipticCurve 11a sage v E anlist 100000 dauert etwas l nger sage save E E sage quit Die gespeicherte Version von E braucht 153 Kilobyte da die ersten 100000 a mitgespeichert werden tmp ls 1 E sobj rw r r 1 was was 153500 2006 01 28 19 23 E sobj tmp sage sage E load E sage v E anlist 100000 sofort In Python wird das Laden und Speichern mittels des cPick1e Moduls umgesetzt Genauer Ein Sage Objekt x kann mit cPickle dumps x 2 gespeichert werden Beachten Sie die 2 Sage kann allerdings keine
107. ren p prim Wie operieren die Hecke Operatoren 73 T3 Ts auf dem Raum der Modulsymbole sage M T 2 matrix 3 0 1 0 2 0 0 0 2 sage M T 3 matrix 4 0 1 0 1 0 0 0 1 sage M T 5 matrix 6 0 1 0 1 0 00 1 2 12 Etwas weiter fortgeschrittene Mathematik 45 Sage Tutorial Release 5 11 46 Kapitel 2 Eine begleitende Tour KAPITEL 3 Die interaktive Kommandozeile In den meisten Teilen dieses Tutorials gehen wir davon aus dass Sie Sage mit dem sage Befehl starten Dieser startet eine angepasste Version der IPython Kommandozeile und l dt Funktionen und Klassen sodass sie in der Kommando zeile genutzt werden k nnen Weitere Anpassungen k nnen Sie in der Datei SSAGE_ROOT ipythonrc vornehmen Nach dem Start von Sage sehen Sie etwa folgendes SAGE Version 4 5 2 Release Date 2010 08 05 Type notebook for the GUI and license for information sage Um Sage zu beenden dr cken Sie Strg D oder geben Sie quit oder exit ein sage quit Exiting SAGE CPU time 0m0 00s Wall time 0m0 89s Unter wall time finden Sie die vergangene Echtzeit der Uhr an Ihrer Wand Diese ist n tig da die CPU Zeit Unterprozesse wie GAP oder Singular nicht ber cksichtigt Vermeiden Sie es den Sage Prozess mit kill 9 in der Konsole zu beenden da so m glicherweise Unterprozesse wie z B Maple Prozesse nicht beendet oder tempor re Dateien in HOME sage tmp nicht
108. rgebnis erzeugt wird Es ist also ratsam den LaTeX Prozessor auf pdflatex zu stellen 72 Kapitel 5 Sage LaTeX und ihre Freunde Sage Tutorial Release 5 11 Nun sollte ein Befehl wie view graphs CompleteGraph 4 in der Sage Kommandozeile erfolgreich eine pdf Datei mit einem Bild vom kompletten K4 Graphen erzeugen Um das Gleiche im Notebook zu erstellen m ssen Sie MathJax f r die Verarbeitung von LaTeX Code aus schalten indem Sie die mathjax avoid list benutzen Graphen werden in einer tikzpicture Umge bung eingebunden das ist also eine gute Wahl f r die Zeichenkette f r die Ausschlussliste Jetzt sollte view graphs CompleteGraph 4 in einem Arbeitsblatt eine pdf Datei mit pdflatex erstellen mit dem convert Werkzeug eine png Grafik erstellen und in die Ausgabezelle des Arbeitsblatts einf gen Die folgenden Befehle veranschaulichen die Schritte einen Graphen mittels LaTeX in einem Notebook darzustellen sage from sage graphs graph_latex import setup_latex_preamble sage setup_latex_preamble sage latex extra_preamble random depends on system s TeX installation usepackage tikz n usepackage tkz graph n usepackage tkz berge n sage latex engine pdflatex sage latex add_to_mathjax_avoid_list tikzpicture sage latex mathjax_avoid_list tikzpicture Beachten Sie dass es eine Vielzahl von Optionen gibt die die Darstellung des Graphen in LaTeX mit tkz graph beeinfl
109. s a 32 3 6 R ckw rtssuche und Tab Vervollst ndigung 2 2 2 22 20mm 53 3 7 Intesnierteskulfesystem u a 22 2 088 wh a A Daran are 53 3 8 Speichern und Laden von individuellen Objekten 2 2 Cm mn nn 55 3 9 Speichern und Laden kompletter Sitzungen po o sorto oeoa opako e a Eo E e 57 3 10 Die Notebook Umgebung s ec acea aea e As AA 58 4 Schnittstellen 61 4 GP PARI oa 22 ei dr a e dl dor bbe See Pea amp 61 42 AA E AE So eh ie Be Br i 63 AS AMP A ai a e Bile A BAS Bade ee a 44 Maxima e scese a A A a a Eee Bes a Bd 5 Sage LaTeX und ihre Freunde SA berblick caer A e PEA AA ita 3 2 Grundiegende Nutzung 2 5 oc eee a a Re ee PERE EME EERE PS 5 3 AnpassenderLalex Generierne o i dee ee ete eevee bie bee Bees Bhd 34 Anpassen der LaTeX Verarbeitung s so ccenn kede e kn ee a nn Re ee 5 53 Ein Beispiel Kombinatorische Graphen mit tkz graph 2 222 nn 5 6 Eine vollfunktionsf hige TeX Installation e e 3 7 Externe Programme 4 4 ua aa sn e A e da E 6 Programmierung 6 1 Sage Dateien Laden und Anh ngen oos sac ces we zus zw res ker SE EES en 6 2 Kompilierten Code erzeugen cotos arts ns karriere 6 3 eigenst ndige Python Sage Skripte x s s ro m mikia o e 64 Datentypen rio e da Be ei ad a a a we las le E 6 9 Listen Tupel und Folgen sc w eta 42 2 22 28 a a ne eS 6 6 Dictionaries usina Sa Se eed ae en BS ra Be ka 67 Mengen 2 2244 ee a add ee a A 6 8
110. s von Null verschiedene Element in dem Ring einen Kehrwehrt besitzt Die rationalen Zahlen bilden also auch einen K rper die ganzen Zahlen jedoch nicht sage RationalField Rational Field sage QO Rational Field sage 1 2 in QQ True Die Dezimalzahl 1 2 wird als rationale Zahl in QQ gesehen Dezimalzahlen die auch rational sind k nnen in rationale Zahlen umgewandelt engl coerced werden Die Zahlen m und v2 sind jedoch nicht rational sage 1 2 in QQ True sage pi in 00 False sage pi in RR True sage sqrt 2 in QO False sage sqrt 2 in CC True F r die Verwendung in der h heren Mathematik kennt Sage noch weitere Ringe wie z B endliche K rper p adische Zahlen den Ring der algebraischen Zahlen Polynomringe und Matrizenringe Hier sind Konstruktionen einiger von ihnen 26 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage GF 3 Finite Field of size 3 sage GF 27 a Sie m ssen den Names des Generators angeben Y tales wenn es sich um keinen Primk rper handelt Finite Field in a of size 3 3 sage Zp 5 5 adic Ring with capped relative precision 20 sage sqrt 3 in OObar algebraischer Abschluss von QQ True 2 8 Lineare Algebra Sage stellt standardm ige Konstruktionen der Linearen Algebra zur Verf gung Zum Beispiel das charakteristische Polynom die Zeilenstufenform die Spur die Zerlegung von Matrizen usw Das Erzeugen von Matrizen und
111. seite ist vielleicht einfacher und schnel ler zu installieren als die Quellcode Version Sie m ssen die Datei nur entpacken und das Kommando sage ausf hren 3 Falls Sie das SageTeX Paket benutzen m chten mit welchem Sie die Ergebnisse von Sage Berechnungen in eine LaTeX Datei einbauen k nnen m ssen Sie SageTeX Ihrer TeX Distribution bekannt machen Um dies zu tun lesen Sie den Abschnitt Make SageTeX known to TeX im Sage Installation Guide Dieser Link sollte Sie zu eine lokalen Kopie des Installation Guides f hren Es ist ziemlich einfach Sie m ssen nur eine Umgebungsvariable setzen oder eine einzige Datei in ein Verzeichnis kopieren welches TeX durchsucht Die Dokumentation f r SageTeX befindet sich in SSAGE_ROOT local share texmf tex generic sagetex wobei SSAGE_ROOT auf das Verzeichnis zeigt in welches Sie Sage installiert haben zum Beispiel opt sage 4 2 1 1 2 Wie man Sage benutzen kann Sie k nnen Sage auf verschiedene Weise benutzen e sraphisches Notebook Interface lesen Sie den Abschnitt zum Notebook im Referenzhandbuch und Die No tebook Umgebung weiter unten e interaktive Kommandozeile lesen Sie Die interaktive Kommandozeile e Programme Indem Sie interpretierte und kompilierte Programme in Sage schreiben lesen Sie Sage Dateien Laden und Anh ngen und Kompilierten Code erzeugen und e Skripte indem Sie eigenst ndige Pythonskripte schreiben welche die Sage Bibliothek benutzen lesen Sie
112. sischen Rest satz sage d u v xgcd 12 15 sage d ux12 vx15 True sage n 2005 sage inverse_mod 3 n 1337 sage 3 x 1337 4011 sage prime_divisors n 36 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 5 401 sage phi nx prod 1 1 p for p in prime _divisors n phi 1600 sage euler_phi n 1600 sage prime_to_m_part n 5 401 Als n chstes verifizieren wir ein Beispiel des 3n 1 Problems sage n 2005 sage for i in range 1000 n 3xodd_part n 1 if odd_part n 1 print i break 38 Schlie lich illustrieren wir den chinesischen Restsatz sage x crt 2 1 3 5 x 11 sage x 3 xmod 3 2 2 sage x 5 x mod 5 1 1 sage binomial 13 m for m in range 14 1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1 sage binomial 13 m 2 for m in range 14 1 1 0 0 1 1 0 0 1 1 Op 0 1 1 sage kronecker m 13 for m in range 1 13 1 1 1 1 1 1 1 1 1 1 1 1 sage n 10000 sum moebius m for m in range 1 n 23 sage Partitions 4 list ELIA 13 11 2 215 27 2 11 le I 1 27 2 11 1 p adische Zahlen Der K rper der p adischen Zahlen ist in Sage implementiert Beachten Sie dass sobald Sie einen p adischer K rper erzeugt haben dessen Genauigkeit nicht mehr ndern k nnen sage K Op 11 K ll adic Field with capped relative precision 20 sage a K 211 17 a 4 4x1
113. st tzen sage ARDF matrix RDF 1 2 2 2 3 sage ARDF eigenvalues 0 0931712199461 4 29317121995 sage ACDF matrix CDF 1 2 I 2 3 sage ACDF eigenvectors_right 0 881845698329 0 820914065343x1I 0 750560818381 0 616145932705 0 238794153033 1 l 1 3 31815430167 0 820914065343x x1I 0 145594698293 0 37566908585 I 0 915245825866 1 2 8 1 Matrizenr ume Wir erzeugen den Raum Mat3x3 Q der 3 x 3 Matrizen mit rationalen Eintr gen sage M MatrixSpace QQ 3 sage M Full MatrixSpace of 3 by 3 dense matrices over Rational Field Um den Raum der 3 mal 4 Matrizen anzugeben w rden Sie MatrixSpace 00 3 4 benutzen Falls die 28 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 Anzahl der Spalten nicht angegeben wurde ist diese standardm ig gleich der Anzahl der Zeilen so dass MatrixSpace QQ 3 ein Synonym f r MatrixSpace QQ 3 3 ist Der Matrizenraum hat eine Basis die Sage als Liste speichert sage B M basis sage len B 9 sage B 1 ro 1 0 0 0 0 0 0 0 Wir erzeugen eine Matrix als ein Element von M sage o 1 2 3 4 5 6 7 8 A M range 9 A Als n chstes berechnen wir die reduzierte Zeilenstufenform und den Kern sage A echelon_form 1 0 1 o 1 2 0 0 0 sage A kernel Vector space of degree 3 and dimension 1 over Rational Field Basis matrix 1 2 1 Nun zeigen wir wie m
114. t 1 5 gt 1 Dirichlet character modulo 12 of conductor 3 mapping 7 gt 1 5 gt 1 Dirichlet character modulo 12 of conductor 12 mapping 7 gt 1 5 gt 1 sage G gens Dirichlet character modulo 12 of conductor 4 mapping 7 gt 1 5 gt 1 Dirichlet character modulo 12 of conductor 3 mapping 7 gt 1 5 gt 1 sage len G 4 Nachdem wir dies Gruppe erzeugt haben erstellen wir als n chstes ein Element und rechnen damit sage G DirichletGroup 21 sage chi G 1 chi Dirichlet character modulo 21 of conductor 7 mapping 8 gt 1 10 gt zeta6 sage chi values 0 1 zeta6 1 0 zeta6 zeta6 1 0 0 1 0 zeta6 zeta6 0 1 0 0 zeta6 1 zeta6 0 zeta6 1 1 sage chi conductor 7 sage chi modulus 21 sage chi order 6 sage chi 19 zeta6b 1 sage chi 40 zeta6 1 Es ist auch m glich die Operation der Galoisgruppe Gal Q y Q auf diesen Charakteren zu berechnen sowie die Zerlegung in direkte Produkte die der Faktorisierung des Moduls entsprechen sage chi galois_orbit Dirichlet character modulo 21 of conductor 7 mapping 8 gt 1 10 gt zeta6 Dirichlet character modulo 21 of conductor 7 mapping 8 gt 1 10 gt zeta6 1 sage go G galois_orbits sage len orbit for orbit in go 1 2 2 1 1 2 2 1 sage G decomposition Group of Dirichlet characters of modulus 3 over Cyclotomic Field
115. te Zeile unterhalb gleichwertig zu for i 0 i lt 3 i in C oder Java sage for i in range 3 print i p Die n chste Zeile unterhalb ist gleichwertig zu for i 2 i lt 5 i sage for i in range 2 5 z print i 2 3 4 Das dritte Argument bestimmt die Schrittweite also ist das Folgende gleichwertig zu for i 1 i lt 6 i 2 sage for i in range 1 6 2 print i 1 3 5 Oft will man eine sch ne Tabelle erstellen um die mit Sage berechneten Zahlen auszugeben Eine einfache M glich keit dies zu tun ist String Formatierung zu verwenden Unten erstellen wir drei Spalten jede genau 6 Zeichen breit und erzeugen somit eine Tabelle mit Quadrat und Kubikzahlen sage for i in range 5 print 6s 6s 6s 1 i 2 13 0 0 1 1 4 8 9 27 16 64 b UN H O Die elementarste Datenstruktur in Sage ist die Liste Sie ist wie der Name schon sagt nichts anderes als eine Liste beliebiger Objekte Zum Beispiel erzeugt der range Befehl den wir schon verwendet haben eine Liste sage range 2 10 2 3 4 5 6 7 8 9 Hier ist eine etwas kompliziertere Liste sage v 1 hello 2 3 sin x 3 sage v Li hello 2 3 sin x 3 Listenindizierung beginnt wie in vielen Programmiersprachen bei 0 12 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage v 0 1 sage v 3 sin x 3 Benutzen Sie len v um die L nge von v zu erhalten benutzen Sie v append obj
116. tebook in der Sage Kommandozeile gestartet Der Befehl startet das Sage Notebook und ebenso Ihren Standardbrowser Die Serverstatus Dateien liegen unter SHOME sage sage _notebook Die andere Optionen enthalten z B sage notebook Verzeichnis was einen neuen Notebook Server mit den Dateien aus dem angegebenen Verzeichnis startet anstelle des Standardver zeichnises HOME sage sage_notebook Das kann hilfreich sein wenn Sie einige Worksheets f r ein Projekt oder verschiedene gleichzeitig laufende Notebook Server von einander trennen wollen Wenn Sie das Notebook starten werden zuerst die folgenden Dateien erzeugt in HOME sage sage_notebook nb sobj Die notebook SAGE Objekt Datei objects Ein Verzeichnis das SAGE Objekte enth lt Worksheets Ein Verzeichnis das SAGE Worksheets enth lt Nach dem Anlegen dieser Dateien startet das notebook als Webserver Ein Notebook ist eine Sammlung von Benutzerkonten von dem jedes verschiedene Worksheets enthalten kann Wenn Sie ein neues Worksheet erstellen werden alle zugeh rigen Daten unter Worksheets username number gespeichert In jedem solchen Verzeichnis ist eine Klartextdatei namens Worksheet t xt sollte mit Ihren Works heets oder Sage irgendetwas Unvorhergesehenes passieren enth lt diese Datei alles was Sie ben tigen um Ihre Works heets wiederherzustellen Innerhalb von Sage k nnen Sie mit notebook mehr Informationen zum Start eines No
117. tebook Servers erhalten Das folgende Diagramm veranschaulicht die Architektur eines Sage Notebooks firefox safari javascript programm 58 Kapitel 3 Die interaktive Kommandozeile Sage Tutorial Release 5 11 sage SAGE Prozess 1 web gt SAGE Prozess 2 Python Prozesse E server pexpect SAGE Prozess 3 Um Hilfe zu einem Sage Befehl befehl im Notebook Browser zu bekommen geben Sie befehl ein und dr cken Sie lt esc gt nicht lt shift enter gt F r Informationen zu Tastenbefehlen des Notebook Browsers klicken Sie auf den Help Link 3 10 Die Notebook Umgebung 59 Sage Tutorial Release 5 11 60 Kapitel 3 Die interaktive Kommandozeile KAPITEL 4 Schnittstellen Ein zentraler Aspekt von Sage ist dass es Berechnungen mit Objekten vieler verschiedener Computer Algebra Systeme unter einem Dach durch eine einheitliche Schnittstelle und Programmiersprache vereinigt Die console und interact Methoden einer Schnittstelle unterst tzen viele verschiedene Dinge Zum Beispiel anhand von GAP l gap console ffnet die GAP Konsole und bergibt GAP die Kontrolle Hier ist Sage nichts weiter als ein praktischer Programmstarter hnlich einer Linux Bash Konsole 2 gap interact Ist eine einfache Art mit einer GAP Instanz zu interagieren die Sage Objekte enthalten kann Sie k nnen Sage Objekte in diese GAP Sitzung importieren sogar von der intera
118. tet funktionieren Zum Beispiel wenn der Varia blen i ein unterschiedlicher Wert etwa wenn diese als Schleifenvariable verwendet wurde zugewiesen wurde Falls dies der Fall ist tippen Sie sage reset i 2 7 Wichtige Ringe 25 Sage Tutorial Release 5 11 um den urspr nglichen komplexen Wert der Variable i zu erhalten Es ist noch eine Feinheit beim Definieren von komplexen Zahlen zu beachten Wie oben erw hnt wurde stellt das Symbol i eine Quadratwurzel von 1 dar es ist jedoch eine formale oder symbolische Quadratwurzel von 1 Das Aufrufen von CC i oder CC 0 gibt die komplexe Quadratwurzel von 1 zur ck sage i CC i komplexe Gleitkommazahl sage i CC 0 True sage a b 4 3 2 3 sage z a bei sage z 1 33333333333333 0 666666666666667x1 sage z imag Imagin rteil 0 666666666666667 sage z real a automatische Umwandlung vor dem Vergleich True sage a b 2 sage 2xb True sage parent 2 3 Rational Field sage parent 4 2 Rational Field sage 2 3 0 1 automatische Umwandlung vor der Addition 0 76666666666666 7 sage 0 1 2 3 Umwandlungsregeln sind symmetrisch in SAGE 0 766666666666667 Hier sind weitere Beispiele von Ringen in Sage Wie oben angemerkt kann auf den Ring der rationalen Zahlen mit 00 zugegriffen werden ebenso wie mit RationalField ein K rper engl field ist ein Ring in dem die Multi plikation kommutativ ist und in dem jede
119. thmetische Operatorrangfolge festgelegt Sage stellt auch viele bekannte mathematische Funktionen zur Verf gung hier sind nur ein paar Beispiele sage sqrt 3 4 1 84390889145858 sage sin 5 135 0 912021158525540 sage sin pi 3 1 2xsqrt 3 Wie das letzte Beispiel zeigt geben manche mathematische Ausdr cke exakte Werte anstelle von numerischen Ap proximationen zur ck Um eine numerische Approximation zu bekommen k nnen Sie entweder die Funktion n oder die Methode n verwenden beide haben auch den l ngeren Namen numerical_approx und die Funktion N ist die gleiche wie n Diese nehmen auch die optionalen Argumente prec welches die gew nschte Anzahl von Bit an Genauigkeit ist und digits welches die gew nschte Anzahl Dezimalstellen an Genauigkeit ist entgegen der Standardwert ist 53 Bit Genauigkeit sage exp 2 er2 sage n exp 2 7 38905609893065 sage sqrt pi numerical_approx 1 77245385090552 sage sin 10 n digits 5 0 54402 sage N sin 10 digits 10 0 5440211109 sage numerical_approx pi prec 200 3 1415926535897932384626433832795028841971693993751058209749 Python ist dynamisch typisiert also ist dem Wert auf den jede Variable weist ein Typ zugeordnet jedoch darf eine Variable Werte eines beliebigen Python Typs innerhalb eines Sichtbarkeitsbereich aufnehmen sage a 5 a ist eine ganze Zahl sage type a lt type sage rings integer Integer gt sage a 5 3 jetzt ist a ein
120. tional wenn Sie also mit Polynomen ber rationalen Koeffizienten arbeiten l sst sich das Polynom nicht faktorisieren Mit reellen Koeffizienten l sst es sich faktorisieren Deshalb m ssen Sie den Ring angeben um sicher zu gehen dass Sie die Information erhalten die Sie erwarten Die folgenden beiden Befehle definieren jeweils die Mengen der Polynome mit rationalen und reellen Koeffizienten Diese Mengen werden ratpoly und realpoly genannt aber das ist hier nicht wichtig beachten Sie jedoch dass die Strings lt t gt und lt z gt die Variablen benennen die in beiden F llen benutzt werden sage ratpoly lt t gt PolynomialRing QQ sage realpoly lt z gt PolynomialRing RR Jetzt verdeutlichen wir die Behauptung ber das Faktorisieren von x 2 sage factor t 2 2 EAD 2 sage factor z 2 2 z 1 41421356237310 z 1 41421356237310 hnliche Kommentare treffen auf Matrizen zu Die zeilenreduzierte Form eine Matrix kann vom Ring abh ngen ber dem sie definiert ist genauso wie ihre Eigenwerte und Eigenvektoren Um mehr ber das Konstruieren von Polynomen zu erfahren lesen Sie Polynome und f r mehr ber Matrizen lesen Sie Lineare Algebra Das Symbol I steht f r die Quadratwurzel von 1 i ist ein Synonym f r I Nat rlich ist dies keine rationale Zahl sage i Wurzel von 1 I sage i in QQ False Beachten Sie Der obige Code kann m glicherweise nicht wie erwar
121. unktiona lit t wird vom readline Paket bereitgestellt welches in nahezu jeder Linux Distribution verf gbar ist Es ist sehr einfach alle Unterfunktionen f r V mittels Tab Vervollst ndigung aufzulisten indem Sie erst V eingeben und dann die Tabulator Taste dr cken sage V tab key V _VectorSpace_generic__base_field ambient_space base_field base_ring basis coordinates ssa V zero_vector Wenn Sie die ersten paar Buchstaben einer Funktion tippen und dann die Tabulator Taste dr cken bekom men Sie nur die Funktionen die so beginnen angezeigt sage V i tab key V is_ambient V is_dense Vais full V is_sparse Wenn sie wissen wollen was eine bestimmte Funktion tut z B die coordinates Funktion so geben Sie V coordinates ein um die Hilfe und V coordinates um den Quelltext der Funktion zu sehen 3 7 Integriertes Hilfesystem Sage hat ein integriertes Hilfesystem H ngen Sie an einen beliebigen Funktionsnamen ein an um die Dokumenta tion dazu aufzurufen sage V 0073 sage V coordinates Type instancemethod Base Class lt type instancemethod gt String Form lt bound method FreeModule_ambient_field coordinates of Vector space of dimension 3 over Rational Field gt Namespace Interactive File home was s local lib python2 4 site packages sage modules f ree_module py Definition V coordinates self v Docstring Write v in terms of the basis for self 3 6
122. ussen Auch das wiederrum ist nicht Ziel dieses Abschnitts Sehen Sie sich hierf r den Abschnitt LaTeX Optionen fiir Graphen aus dem Handbuch fiir weitere Anleitungen und Details an 5 6 Eine vollfunktionsfahige TeX Installation Viele der erweiterten Integrationsm glichkeiten von TeX in Sage ben tigen eine systemweite Installation von TeX Viele Linuxdistributionen bieten bereits TeX Pakete basierend auf TeX live f r OSX gibt es TeXshop und f r Win dows MikTeX Das convert Werkzeug ist Teil der ImageMagick Suite welche ein Paket oder zumindest ein simpler Download sein sollte Die drei Programme dvipng ps2pdf und dvips sind wahrscheinlich bereits Teil Ihrer TeX Distribution Die ersten beiden sollten auch von http sourceforge net projects dvipng als Teil von Ghostscript bezo gen werden k nnen Um kombinatorische Graphen darstellen zu k nnen wird eine aktuelle Version der PGF Bibliothek und die Dateien tkz graph sty tkz arith sty und eventuell tkz berge sty ben tigt allesamt verf gbar auf der Alter mundus Seite 5 7 Externe Programme Es sind drei Programme verf gbar um TeX weiter in Sage zu integrieren Das erste ist sagetex Eine kurze Beschrei bung von sagetex w re Es ist eine Sammlung von TeX Makros die es einem LaTeX Dokument erlauben Anweisun gen einzubinden mit denen Sage genutzt wird um verschiedene Objekte zu berechnen und oder mittels eingebauter latex Funktion darzustellen Als Zwischenschritt zum Komp
123. ut Permutation Group with generators 1 2 3 4 5 3 4 Permutation Group with generators 1 5 3 4 1 5 2 4 1 3 5 sage G center Subgroup of Permutation Group with generators 3 4 1 2 3 4 5 generated by sage G random_element random output 1 5 3 2 4 sage print latex G langle 3 4 1 2 3 4 5 rangle Sie k nnen in Sage auch die Tabelle der Charaktere im LaTeX Format erhalten sage G PermutationGroup 1 2 3 4 1 2 3 sage latex G character_table left begin array rrrr 161616 14M 1 amp 16 zeta_ 3 1 zeta_ 3 MM 1 amp 146 zeta_ 3 zeta_ 3 1 AM 36 1 0850 end array right Sage beinhaltet auch klassische und Matrixgruppen ber endlichen K rpern sage MS MatrixSpace GF 7 2 sage gens MS 1 0 1 1 MS 1 1 0 1 sage G MatrixGroup gens sage G conjugacy_class_representatives 1 0 0 1 0 1 0 1 0 1 EO a 0 1 0 3 0 3 0 1 0 1 6 1 6 3 6 2 6 6 6 4 6 5 2 2 2 5 6 0 6 0 0 6 sage G Sp 4 GF 7 sage G Symplectic Group of degree 4 over Finite Field of size 7 sage G random_element random output 555 11 LO 2 6 3 5 1 0 4 6 3 4 sage G order 276595200 Sie k nnen auch mit endlichen oder unendlichen abelschen Gruppen rechnen sage F AbelianGroup 5 5 5 7 8 9 names abcde sage a b c d e
124. x 3 over Rational Field sage Xx y XrYy sage G 2 3 2 1 3 2 Ein und Ausgaben loggen 49 Sage Tutorial Release 5 11 Wenn Sie Sage in der Linux KDE Konsole konsole verwenden k nnen Sie Ihre Sitzung wie folgt speichern Nach dem Sie Sage in konsole gestartet haben w hlen Sie Einstellungen dann Verlauf dann auf unbegrenzt setzen Wenn Sie soweit sind Ihre Sitzung zu speichern w hlen Sie Bearbeiten und dann Verlauf speichern unter und geben einen Namen ein um den Text ihrer Sitzung auf dem Computer zu speichern Nach dem Speichern der Datei k nnen Sie jene in einem Editor wie GNU Emacs ffnen und ausdrucken 3 3 Einf gen ignoriert Eingabeaufforderungen Stellen Sie sich vor Sie lesen eine Sitzung von Sage oder Python Berechnungen und wollen sie in Sage kopieren aber berall sind noch die st renden gt gt gt oder sage Eingabeaufforderungen Tats chlich k nnen Sie einfach die gew nschte Stelle mit Eingabeaufforderungen in Sage einf gen Der Sage Parser wird standardm ig die f hrenden gt gt gt oder sage Eingabeaufforderungen entfernen bevor er es an Python weitergibt Zum Beispiel sage 2 10 1024 sage sage sage 2 10 1024 sage gt gt gt 210 1024 3 4 Befehle zur Zeitmessung Wenn Sie den t ime Befehl vor eine Eingabe schreiben wird die Zeit die der Aufruf ben tigt ausgegeben nachdem er gelaufen ist Zum Beispiel k nnen wir die Laufzeit eine
125. y erwarten sage f lambda z z 2 f t x y y sage g lambda z sin z 1 g t x y sin x sage P eulers_method_2x2_plot f g 0 0 0 75 0 0 0 1 1 0 Zu diesem Zeitpunkt enth lt P die beiden Plots P 0 der Plot von x nach t und P 1 der Plot von y nach t Wir k nnen beide wie folgt anzeigen sage show P 0 P 1 Um mehr ber das Plotten zu erfahren lesen Sie Plotten 2 4 5 Spezielle Funktionen Mehrere orthogonale Polynome und spezielle Funktionen sind implementiert wobei sowohl PARI GP als auch Ma xima Max verwendet wird Sie sind in den dazugeh rigen Abschnitten Orthogonal polynomials beziehungsweise Special functions des Sage Referenzhandbuchs dokumentiert 18 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage x polygen 00 x sage chebyshev_U 2 x 4xx 2 1 sage bessel_I 1 1 n 250 0 56515910399248502720769602760986330732889962162109200948029448947925564096 sage bessel_I 1 1 n 0 565159103992485 sage bessel_I 2 1 1 n 0 167089499251049 Zum jetzigen Zeitpunkt enth lt Sage nur Wrapper Funktionen f r numerische Berechnungen Um symbolisch zu rechen rufen Sie die Maxima Schnittstelle bitte wie im folgenden Beispiel direkt auf sage maxima eval f bessel_y v w bessel_y v w sage maxima eval diff f w bessel_ y v 1 w bessel_ y v 1 w 2 2 5 Plotten Sage kann zwei und dreidimensionale Plots erzeu
126. yMCE ge ffnet Dieser erlaubt die Eingabe von HTML und CSS formatiertem Text mit einem WYSIWYG Editor Es ist also m glich den so formatierten Text als Kommentar in einem Arbeitsblatt unterzubrin gen Text den Sie hier zwischen oder eingeben wird ebenfalls von MathJax in einer inline bzw display math Umgebung gesetzt 5 3 Anpassen der LaTeX Generierung Es gibt verschiedene Arten den vom latex Befehl generierten LaTeX Code anzupassen Im Notebook und der Sage Kommandozeile gibt es ein vordefiniertes Objekt Namens latex das verschiedene Methoden hat die Sie sich auflisten lassen k nnen indem Sie latex eingeben und die Tab Taste dr cken beachten Sie den Punkt Ein gutes Beispiel ist die latex matrix_delimiters Methode Es kann benutzt werden um die Darstellung der Matrizen zu beeinflussen runde Klammern eckige Klammern geschwungene Klammern oder senkrechte Striche Sie m ssen sich nicht f r eine Darstellung entscheiden Sie k nnen verschiedene miteinander kombinieren wie Sie es w nschen Beachten Sie dass die in LaTeX ben tigten Backslashes einen zus tzlichen Slash ben tigen damit sie in Python korrekt erkannt werden sage A matrix ZZ 2 2 range 4 sage latex A left begin array rr 0 amp 1 N 2 amp 3 end array right sage latex matrix_delimiters left right sage latex A left begin array rr 0 amp 1 2 amp 3 end array right sage latex
127. ype int gt sage s float 2006 type s lt type float gt Hierzu f gt Sage noch viele weitere hinzu Zum Beispiel Vektorr ume sage V VectorSpace 00 1000000 V Vector space of dimension 1000000 over Rational Field sage type V lt class sage modules free_module FreeModule_ambient_field_with_category gt Nur bestimmte Funktionen k nnen auf V aufgerufen werden In anderen mathematischen Softwaresystemem wiirde dies mit der Funktionalen Notation foo V geschehen In Sage sind bestimmte Funktionen an den Typ oder der Klasse von V angeh ngt und diese werden unter Benutzung einer objektorientierten Syntax wie in Java oder C aufgerufen Zum Beispiel V foo Dies hilft dabei eine Uberfiillung des globalen Namensraums mit tausenden von Funktionen zu vermeiden Das bedeutet auch dass viele verschiedene Funktionen mit unterschiedlichen Funktionsweisen foo genannt werden k nnen ohne dass der Typ des Arguments berpr ft oder Case Anweisungen ausgef hrt werden muss um zu entscheiden welche aufgerufen werden soll Weiterhin ist die Funktion auch dann noch verf gbar wenn ihr Name zu einem anderen Zweck verwendet wurde Zum Beispiel wenn Sie etwas zeta nennen und dann den Wert der Riemannschen Zeta Funktion bei 0 5 berechnen wollen k nnen Sie immernoch s 5 s zeta benutzen sage zeta 1 sage s 5 s zeta 1 46035450880959 In manchen sehr oft auftretenden F llen wird auch die
128. ype pari znprimroot 10007 lt type sage libs pari gen gen gt Welche Variante sollten Sie also nutzen Das kommt darauf an was Sie tun Die GP Schnittstelle kann alles was ein normales GP PARI Konsolenprogramm k nnte da es das Programm startet Genauergesagt k nnten Sie komplizierte PARI Programme laden und laufen lassen Im Gegensatz dazu ist die PARI Schnittstelle mittels C Bibliothek we sentlich restriktiver Zuerst einmal sind nicht alle Unterfunktionen implementiert Au erdem wird relativ viel Quell code nicht in der PARI Schnittstelle funktionieren z B numerisches Integrieren Abgesehen davon ist die PARI Schnittstelle wesentlich schneller und robuster als die von GP Wenn der GP Schnittstelle der Speicher ausgeht beim Auswerten einer Zeile wird sie automatisch und unbemerkt den Speicherbereich verdoppeln und das Auswerten erneut versuchen Dadurch wird Ihre Berechnung nicht abst rzen falls Sie den ben tigen Speicher falsch eingesch tzt haben Das ist eine hilfreiche Erweiterung die der gew hnliche GP Interpreter nicht bietet Die PARI C Bibliothek hingegen kopiert jedes neue Objekt sofort vom PARI Stack daher wird der Stapel nicht gr er Allerdings muss jedes Objekt kleiner als 100 MB sein da ansonsten der Stapel berl uft wenn das Objekt erstellt wird Dieses zus tzliche Kopieren erzeugt allerdings ein wenig Leistungseinbu en Zusammengefasst nutzt Sage also die PARI C Bibliothek um Funktionalit t
129. zliche Python Skripte Um zu sehen wie SageTeX funktioniert folgen Sie den Anweisungen zur Installation von SageTeX in Installation und kopieren Sie den folgenden Text in eine Datei namens sagen wir st_example tex Warnung Der folgende Text wird mehrere Fehler bez glich unbekannten Kontrollsequenzen anzeigen wenn Sie ihn in der live Hilfe ansehen Nutzen Sie stattdessen die statische Version um den korrekten Text zu sehen documentclass article usepackage sagetex Wbegin document Wenn Sie Sage TeX nutzen k nnen Sie Sage nutzen um Dinge auszurechen und sie direkt in ein LaTeX Dokument zu setzen Zum Beispiel gibt es S sage number_of_partitions 1269 ganzzahlige Partitionen von 1269 Sie m ssen die Zahl nicht selbst ausrechnen oder aus einem anderen Programm herauskopieren Hier ein wenig Sage Code begin sageblock f x exp x sin 2xx end sageblock Die zweite Ableitung von f ist frac mathrm d 2 mathrm d x 2 sage f x sage diff f x 2 x 87 Sage Tutorial Release 5 11 Hier ein Plot von f von 1 bis 15 sageplot plot f 1 1 Nend document Lassen Sie LaTeX ganz normal ber st_example tex laufen Beachten Sie dabei dass LaTeX sich ber einige Dinge beschwert z B Package sagetex Warning Graphics file sage plots for st_example tex plot 0 eps on page 1 does not exist Plot command is on input line 25
130. zreihenring auch mit der Kurzschreibweise doppelter eckiger Klammern erzeugen sage GF 7 T Power Series Ring in T over Finite Field of size 7 2 9 2 Polynome in mehreren Unbestimmten Um mit Polynomringen in mehreren Variablen zu arbeiten deklarieren wir zun chst den Ring und die Variablen sage R PolynomialRing GF 5 3 z here 3 number of variables sage R Multivariate Polynomial Ring in z0 zl z2 over Finite Field of size 5 Genau wie bei dem Definieren von Polynomringen in einer Variablen gibt es mehrere M glichkeiten sage GF 5 z0 zl z2 Multivariate Polynomial Ring in z0 zl z2 over Finite Field of size 5 sage R lt z0 z1 z2 gt GF 5 R Multivariate Polynomial Ring in z0 zl z2 over Finite Field of size 5 Falls die Variablennamen nur einen Buchstaben lang sein sollen k nnen Sie auch die folgende Kurzschreibweise verwenden sage PolynomialRing GF 5 3 xyz Multivariate Polynomial Ring in x y z over Finite Field of size 5 Als n chstes treiben wir wieder etwas Arithmetik sage z GF 5 z0 z1 z2 gens sage z 20 Ziy 22 sage z 0 z 1 z 2 2 zZO 2 2xz0xz1 21 2 2xz0xz2 2xzl z2 z2 2 Sie k nnen auch eine mathematisch etwas weiter verbreitete Schreibweise verwenden um den Polynomring zu defi nieren sage R GF 5 x y 2 1 sage x y z R gens sage Q00 x Univariate Polynomial Ring in x over Rational Field sage OO x y
131. zu erkennen sage f x x sage g f derivative sage g variables Die in g pr senten Variablen O sage g arguments Die Argumente die in g gesteckt werden k nnen x sage f x sage h f derivative 24 Kapitel 2 Eine begleitende Tour Sage Tutorial Release 5 11 sage h variables O sage h arguments Wie dieses Beispiel verdeutlichen sollte nimmt h keine Argumente an und deshalb gibt h 3 einen Fehler zuriick 2 7 Wichtige Ringe Wenn wir Matrizen Vektoren oder Polynome definieren ist es manchmal niitzlich und manchmal notwendig den Ring anzugeben tiber dem diese definiert sind Ein Ring ist ein mathematisches Objekt fiir das es die wohldefinier ten Operationen Addition und Multiplikation gibt Falls Sie davon noch nie geh rt haben brauchen Sie wahrscheinlich nur die folgenden vier h ufig verwendeten Ringe zu kennen e die ganzen Zahlen 1 0 1 2 welche ZZ in Sage genannt werden e die rationalen Zahlen d h Br che oder Quotienten von ganzen Zahlen welche QQ in Sage genannt werden e die reellen Zahlen welche RR in Sage genannt werden e die komplexen Zahlen welche CC in Sage genannt werden Sie m ssen diese Unterschiede kennen da das gleiche Polynom zum Beispiel unterschiedlich abh ngig von dem Ring ber dem es definiert ist behandelt werden kann Zum Beispiel hat das Polynom x 2 die beiden Nullstellen v 2 Diese Nullstellen sind nicht ra
Download Pdf Manuals
Related Search
Related Contents
Sharp PN-V601 デウォルト電動工具 取扱説明書 DCF885L2 DCF885N 取扱説明書 基準表(PDF形式:100KB) Ksix B8543FU20 mobile phone case Nova 820 - Tameco SRL Copyright © All rights reserved.
Failed to retrieve file