diff -r f0c93ea97e4c -r 9ced58c5c3b6 symbolics/script.rst --- a/symbolics/script.rst Thu Oct 21 18:22:07 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,277 +0,0 @@ -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( - -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( - -{{{ 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( 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( - 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 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 . -