getting-started-with-symbolics/script.rst
changeset 351 054117c9dd59
child 376 3e947a3fa83e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-with-symbolics/script.rst	Tue Oct 26 16:08:02 2010 +0530
@@ -0,0 +1,277 @@
+Symbolics with Sage
+-------------------
+
+Hello friends and welcome to the tutorial on symbolics with sage.
+
+{{{ Show welcome slide }}}
+
+
+.. #[Madhu: What is this line doing here. I don't see much use of it]
+
+During the course of the tutorial we will learn
+
+{{{ Show outline slide  }}}
+
+* Defining symbolic expressions in sage.  
+* Using built-in costants and functions. 
+* Performing Integration, differentiation using sage. 
+* Defining matrices. 
+* Defining Symbolic functions.  
+* Simplifying and solving symbolic expressions and functions.
+
+We can use Sage for symbolic maths. 
+
+On the sage notebook type::
+   
+    sin(y)
+
+It raises a name error saying that y is not defined. But in sage we
+can declare y as a symbol using var function.
+
+
+::
+    var('y')
+   
+Now if you type::
+
+    sin(y)
+
+sage simply returns the expression.
+
+
+Thus sage treats sin(y) as a symbolic expression . We can use
+this to do  symbolic maths using sage's built-in constants and
+expressions..
+
+
+So let us try ::
+   
+   var('x,alpha,y,beta') 
+   x^2/alpha^2+y^2/beta^2
+ 
+taking another example
+   
+   var('theta')
+   sin^2(theta)+cos^2(theta)
+
+
+Similarly, we can define many algebraic and trigonometric expressions
+using sage .
+
+
+Sage also provides a few built-in constants which are commonly used in
+mathematics .
+
+example : pi,e,infinity , Function n gives the numerical values of all these
+    constants.
+
+{{{ Type n(pi)
+   	n(e)
+	n(oo) 
+    On the sage notebook }}}  
+
+
+
+If you look into the documentation of function "n" by doing
+
+.. #[Madhu: "documentation of the function "n"?]
+
+::
+   n(<Tab>
+
+You will see what all arguments it takes and what it returns. It will be very
+helpful if you look at the documentation of all functions introduced through
+this script.
+
+
+
+Also we can define the no. of digits we wish to use in the numerical
+value . For this we have to pass an argument digits.  Type
+
+.. #[Madhu: "no of digits"? Also "We wish to obtain" than "we wish to
+     use"?]
+::
+
+   n(pi, digits = 10)
+
+Apart from the constants sage also has a lot of builtin functions like
+sin,cos,log,factorial,gamma,exp,arcsin etc ...
+lets try some of them out on the sage notebook.
+
+
+::
+     
+   sin(pi/2)
+   
+   arctan(oo)
+     
+   log(e,e)
+
+
+Given that we have defined variables like x,y etc .. , We can define
+an arbitrary function with desired name in the following way.::
+
+       var('x') 
+       function('f',x)
+
+
+Here f is the name of the function and x is the independent variable .
+Now we can define f(x) to be ::
+
+     f(x) = x/2 + sin(x)
+
+Evaluating this function f for the value x=pi returns pi/2.::
+	   
+	   f(pi)
+
+We can also define functions that are not continuous but defined
+piecewise.  Let us define a function which is a parabola between 0
+to 1 and a constant from 1 to 2 .  Type the following as given on the
+screen
+
+::
+      
+
+      var('x') 
+      h(x)=x^2 g(x)=1 
+      f=Piecewise(<Tab>
+
+{{{ Show the documentation of Piecewise }}} 
+    
+::
+      f=Piecewise([[(0,1),h(x)],[(1,2),g(x)]],x) f
+
+
+
+
+We can also define functions which are series 
+
+
+We first define a function f(n) in the way discussed above.::
+
+   var('n') 
+   function('f', n)
+
+
+To sum the function for a range of discrete values of n, we use the
+sage function sum.
+
+For a convergent series , f(n)=1/n^2 we can say ::
+   
+   var('n') 
+   function('f', n)
+
+   f(n) = 1/n^2
+
+   sum(f(n), n, 1, oo)
+
+ 
+Lets us now try another series ::
+
+
+    f(n) = (-1)^(n-1)*1/(2*n - 1)
+    sum(f(n), n, 1, oo)
+
+
+This series converges to pi/4. 
+
+
+Moving on let us see how to perform simple calculus operations using Sage
+
+For example lets try an expression first ::
+
+    diff(x**2+sin(x),x) 
+    2x+cos(x)
+
+The diff function differentiates an expression or a function. Its
+first argument is expression or function and second argument is the
+independent variable.
+
+We have already tried an expression now lets try a function ::
+
+   f=exp(x^2)+arcsin(x) 
+   diff(f(x),x)
+
+To get a higher order differential we need to add an extra third argument
+for order ::
+ 
+   diff(<tab> diff(f(x),x,3)
+
+in this case it is 3.
+
+
+Just like differentiation of expression you can also integrate them ::
+
+     x = var('x') 
+     s = integral(1/(1 + (tan(x))**2),x) 
+     s
+
+
+
+Many a times we need to find factors of an expression ,we can use the "factor" function
+
+::
+    factor(<tab> 
+    y = (x^100 - x^70)*(cos(x)^2 + cos(x)^2*tan(x)^2) 
+    f = factor(y)
+
+One can  simplify complicated expression ::
+    
+    f.simplify_full()
+
+This simplifies the expression fully . We can also do simplification
+of just the algebraic part and the trigonometric part ::
+
+    f.simplify_exp() 
+    f.simplify_trig()
+    
+
+
+One can also find roots of an equation by using find_root function::
+
+    phi = var('phi') 
+    find_root(cos(phi)==sin(phi),0,pi/2)
+
+Lets substitute this solution into the equation and see we were
+correct ::
+
+     var('phi') 
+     f(phi)=cos(phi)-sin(phi)
+     root=find_root(f(phi)==0,0,pi/2) 
+     f.substitute(phi=root)
+
+as we can see when we substitute the value the answer is almost = 0 showing 
+the solution we got was correct.
+
+
+
+
+Lets us now try some matrix algebra symbolically ::
+
+
+
+   var('a,b,c,d') 
+   A=matrix([[a,1,0],[0,b,0],[0,c,d]]) 
+   A
+
+Now lets do some of the matrix operations on this matrix
+
+
+::
+    A.det() 
+    A.inverse()
+
+
+
+{{{ Part of the notebook with summary }}}
+
+So in this tutorial we learnt how to
+
+
+* We learnt about defining symbolic expression and functions.  
+* Using built-in constants and functions.  
+* Using <Tab>  to see the documentation of a function.  
+* Simple calculus operations .  
+* Substituting values in expression using substitute function.
+* Creating symbolic matrices and performing operation on them .
+