diff -r 88a01948450d -r d33698326409 getting-started-with-symbolics/script.rst --- a/getting-started-with-symbolics/script.rst Wed Nov 17 23:24:57 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,340 +0,0 @@ -.. Objectives -.. ---------- - -.. By the end of this tutorial, you will be able to - -.. 1. Defining symbolic expressions in sage. -.. # Using built-in constants and functions. -.. # Performing Integration, differentiation using sage. -.. # Defining matrices. -.. # Defining Symbolic functions. -.. # Simplifying and solving symbolic expressions and functions. - - -.. Prerequisites -.. ------------- - -.. 1. getting started with sage notebook - - -.. Author : Amit - Internal Reviewer : - External Reviewer : - Language Reviewer : Bhanukiran - Checklist OK? : <, if OK> [2010-10-05] - -Symbolics with Sage -------------------- - -Hello friends and welcome to the tutorial on Symbolics with Sage. - -{{{ Show welcome slide }}} - -During the course of the tutorial we will learn - -{{{ Show outline slide }}} - -* Defining symbolic expressions in Sage. -* Using built-in constants and functions. -* Performing Integration, differentiation using Sage. -* Defining matrices. -* Defining symbolic functions. -* Simplifying and solving symbolic expressions and functions. - -In addtion to a lot of other things, Sage can do Symbolic Math and we shall -start with defining symbolic expressions in Sage. - -Have your Sage notebook opened. If not, pause the video and -start you Sage notebook right now. - -On the sage notebook type:: - - sin(y) - -It raises a name error saying that ``y`` is not defined. We need to -declare ``y`` as a symbol. We do it using the ``var`` function. -:: - - var('y') - -Now if you type:: - - sin(y) - -Sage simply returns the expression. - -Sage treats ``sin(y)`` as a symbolic expression. We can use this to do -symbolic math using Sage's built-in constants and expressions. - -Let us try out a few examples. :: - - var('x,alpha,y,beta') - x^2/alpha^2+y^2/beta^2 - -We have defined 4 variables, ``x``, ``y``, ``alpha`` and ``beta`` and -have defined a symbolic expression using them. - -Here is an expression in ``theta`` :: - - var('theta') - sin(theta)*sin(theta)+cos(theta)*cos(theta) - -Now that you know how to define symbolic expressions in Sage, here is -an exercise. - -{{ show slide showing question 1 }} - -%% %% Define following expressions as symbolic expressions in Sage. - - 1. x^2+y^2 - #. y^2-4ax - -Please, pause the video here. Do the exercise and then continue. - -The solution is on your screen. - -{{ show slide showing solution 1 }} - -Sage also provides built-in constants which are commonly used in -mathematics, for instance pi, e, infinity. The function ``n`` gives -the numerical values of all these constants. -:: - n(pi) - n(e) - n(oo) - -If you look into the documentation of function ``n`` by doing - -:: - n( - -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 in the course of this script. - -Also we can define the number of digits we wish to have in the -constants. For this we have to pass an argument -- digits. Type - -:: - - n(pi, digits = 10) - -Apart from the constants Sage also has a lot of built-in 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) - -Following are exercises that you must do. - -{{ show slide showing question 2 }} - -%% %% Find the values of the following constants upto 6 digits - precision - - 1. pi^2 - #. euler_gamma^2 - - -%% %% Find the value of the following. - - 1. sin(pi/4) - #. ln(23) - -Please, pause the video here. Do the exercises and then continue. - -The solutions are on your screen - -{{ show slide showing solution 2 }} - -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 -:: - - - var('x') - h(x)=x^2 - g(x)=1 - - f=Piecewise([[(0,1),h(x)],[(1,2),g(x)]],x) - f - -We can also define functions convergent series and other 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. - -Following are exercises that you must do. - -{{ show slide showing question 3 }} - -%% %% Define the piecewise function. - f(x)=3x+2 - when x is in the closed interval 0 to 4. - f(x)=4x^2 - between 4 to 6. - -%% %% Sum of 1/(n^2-1) where n ranges from 1 to infinity. - -Please, pause the video here. Do the exercise(s) and then continue. - -{{ show slide showing solution 3 }} - -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) - -The diff function differentiates an expression or a function. It's -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(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 - -:: - - 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) - -Let's 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. - -Following are a few exercises that you must do. - -%% %% Differentiate the following. - - 1. sin(x^3)+log(3x) , degree=2 - #. x^5*log(x^7) , degree=4 - -%% %% Integrate the given expression - - sin(x^2)+exp(x^3) - -%% %% Find x - cos(x^2)-log(x)=0 - Does the equation have a root between 1,2. - -Please, pause the video here. Do the exercises and then continue. - - -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() - - -Following is an (are) exercise(s) that you must do. - -%% %% Find the determinant and inverse of : - - A=[[x,0,1][y,1,0][z,0,y]] - -Please, pause the video here. Do the exercise(s) and then continue. - - -{{{ Show the summary slide }}} - -That brings us to the end of this tutorial. In this tutorial we learnt -how to - -* define symbolic expression and functions -* use built-in constants and functions -* use to see the documentation of a function -* do simple calculus -* substitute values in expressions using ``substitute`` function -* create symbolic matrices and perform operations on them -