author | amit |
Thu, 16 Sep 2010 19:40:33 +0530 | |
changeset 149 | b9ae88095ade |
parent 144 | 476ea1730aee |
child 196 | 966be1a847c9 |
permissions | -rw-r--r-- |
144
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
1 |
======== |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
2 |
Script |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
3 |
======== |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
4 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
5 |
{{{ show the welcome slide }}} |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
6 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
7 |
Welcome to this tutorial on using Sage. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
8 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
9 |
{{{ show the slide with outline }}} |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
10 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
11 |
In this tutorial we shall quickly look at a few examples of the areas |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
12 |
(name the areas, here) in which Sage can be used and how it can be |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
13 |
used. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
14 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
15 |
{{{ show the slide with Calculus outline }}} |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
16 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
17 |
Let us begin with Calculus. We shall be looking at limits, |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
18 |
differentiation, integration, and Taylor polynomial. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
19 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
20 |
{{{ show sage notebook }}} |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
21 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
22 |
We have our Sage notebook running. In case, you don't have it running, |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
23 |
start is using the command, ``sage --notebook``. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
24 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
25 |
To find the limit of the function x*sin(1/x), at x=0, we say:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
26 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
27 |
lim(x*sin(1/x), x=0) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
28 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
29 |
We get the limit to be 0, as expected. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
30 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
31 |
It is also possible to the limit at a point from one direction. For |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
32 |
example, let us find the limit of 1/x at x=0, when approaching from |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
33 |
the positive side.:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
34 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
35 |
lim(1/x, x=0, dir='above') |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
36 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
37 |
To find the limit from the negative side, we say,:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
38 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
39 |
lim(1/x, x=0, dir='above') |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
40 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
41 |
Let us now see how to differentiate, using Sage. We shall find the |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
42 |
differential of the expression ``exp(sin(x^2))/x`` w.r.t ``x``. We |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
43 |
shall first define the expression, and then use the ``diff`` function |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
44 |
to obtain the differential of the expression.:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
45 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
46 |
var('x') |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
47 |
f = exp(sin(x^2))/x |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
48 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
49 |
diff(f, x) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
50 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
51 |
We can also obtain the partial differentiation of an expression w.r.t |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
52 |
one of the variables. Let us differentiate the expression |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
53 |
``exp(sin(y - x^2))/x`` w.r.t x and y.:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
54 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
55 |
var('x y') |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
56 |
f = exp(sin(y - x^2))/x |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
57 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
58 |
diff(f, x) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
59 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
60 |
diff(f, y) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
61 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
62 |
Now, let us look at integration. We shall use the expression obtained |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
63 |
from the differentiation that we did before, ``diff(f, y)`` --- |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
64 |
``e^(sin(-x^2 + y))*cos(-x^2 + y)/x``. The ``integrate`` command is |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
65 |
used to obtain the integral of an expression or function.:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
66 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
67 |
integrate(e^(sin(-x^2 + y))*cos(-x^2 + y)/x, y) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
68 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
69 |
We get back the correct expression. The minus sign being inside or |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
70 |
outside the ``sin`` function doesn't change much. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
71 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
72 |
Now, let us find the value of the integral between the limits 0 and |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
73 |
pi/2. :: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
74 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
75 |
integral(e^(sin(-x^2 + y))*cos(-x^2 + y)/x, y, 0, pi/2) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
76 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
77 |
Let us now see how to obtain the Taylor expansion of an expression |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
78 |
using sage. Let us obtain the Taylor expansion of ``(x + 1)^n`` up to |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
79 |
degree 4 about 0.:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
80 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
81 |
var('x n') |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
82 |
taylor((x+1)^n, x, 0, 4) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
83 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
84 |
This brings us to the end of the features of Sage for Calculus, that |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
85 |
we will be looking at. For more, look at the Calculus quick-ref from |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
86 |
the Sage Wiki. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
87 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
88 |
Next let us move on to Matrix Algebra. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
89 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
90 |
{{{ show the equation on the slides }}} |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
91 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
92 |
Let us begin with solving the equation ``Ax = v``, where A is the |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
93 |
matrix ``matrix([[1,2],[3,4]])`` and v is the vector |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
94 |
``vector([1,2])``. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
95 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
96 |
To solve the equation, ``Ax = v`` we simply say:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
97 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
98 |
x = solve_right(A, v) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
99 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
100 |
To solve the equation, ``xA = v`` we simply say:: |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
101 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
102 |
x = solve_left(A, v) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
103 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
104 |
The left and right here, denote the position of ``A``, relative to x. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
105 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
106 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
107 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
108 |
Now, let us look at Graph Theory in Sage. |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
109 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
110 |
Graph: G = Graph({0:[1,2,3], 2:[4]}) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
111 |
Directed Graph: DiGraph(dictionary) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
112 |
Graph families: graphs. tab |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
113 |
Invariants: G.chromatic polynomial(), G.is planar() |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
114 |
Paths: G.shortest path() |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
115 |
Visualize: G.plot(), G.plot3d() |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
116 |
Automorphisms: G.automorphism group(), G1.is isomorphic(G2), G1.is subgraph(G2) |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
117 |
|
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
118 |
Now let us look at bits and pieces of Number theory, combinatorics, |
476ea1730aee
Added rst files for scripts.
Puneeth Chaganti <punchagan@gmail.com>
parents:
diff
changeset
|
119 |