diff -r 9f7eb1ed0e08 -r 588b681e70c6 symbolics/script.rst --- a/symbolics/script.rst Wed Oct 20 16:19:55 2010 +0530 +++ b/symbolics/script.rst Thu Oct 21 00:22:42 2010 +0530 @@ -3,43 +3,23 @@ Hello friends and welcome to the tutorial on symbolics with sage. - -.. #[Madhu: Sounds more or less like an ad!] - -{{{ Part of Notebook with title }}} +{{{ Show welcome slide }}} -.. #[Madhu: Please make your instructions, instructional. While - recording if I have to read this, think what you are actually - meaning it will take a lot of time] - -We would be using simple mathematical functions on the sage notebook -for this tutorial. .. #[Madhu: What is this line doing here. I don't see much use of it] During the course of the tutorial we will learn -{{{ Part of Notebook with outline }}} - -To define symbolic expressions in sage. Use built-in costants and -function. Integration, differentiation using sage. Defining -matrices. Defining Symbolic functions. Simplifying and solving -symbolic expressions and functions. +{{{ Show outline slide }}} -.. #[Nishanth]: The formatting is all messed up - First fix the formatting and compile the rst - The I shall review -.. #[Madhu: Please make the above items full english sentences, not - the slides like points. The person recording should be able to - read your script as is. It can read something like "we will learn - how to define symbolic expressions in Sage, using built-in ..."] +* 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. -Using sage we can perform mathematical operations on symbols. - -.. #[Madhu: Same mistake with period symbols! Please get the - punctuation right. Also you may have to rephrase the above - sentence as "We can use Sage to perform sybmolic mathematical - operations" or such] +We can use Sage for symbolic maths. On the sage notebook type:: @@ -48,7 +28,7 @@ It raises a name error saying that y is not defined. But in sage we can declare y as a symbol using var function. -.. #[Madhu: But is not required] + :: var('y') @@ -56,66 +36,56 @@ sin(y) - sage simply returns the expression . +sage simply returns the expression. + -.. #[Madhu: Why is this line indented? Also full stop. When will you - learn? Yes we can correct you. But corrections are for you to - learn. If you don't learn from your mistakes, I don't know what - to say] +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.. -thus now sage treats sin(y) as a symbolic expression . You can use -this to do a lot of symbolic maths using sage's built-in constants and -expressions . -.. #[Madhu: "Thus now"? It sounds like Dus and Nou, i.e 10 and 9 in - Hindi! Full stop again. "a lot" doesn't mean anything until you - quantify it or give examples.] - -Try out +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) -.. #[Madhu: "So let us try" sounds better] - :: - - var('x,alpha,y,beta') x^2/alpha^2+y^2/beta^2 - -Similarly , we can define many algebraic and trigonometric expressions + +Similarly, we can define many algebraic and trigonometric expressions using sage . -.. #[Madhu: comma again. Show some more examples?] - Sage also provides a few built-in constants which are commonly used in mathematics . -example : pi,e,oo , Function n gives the numerical values of all these +example : pi,e,infinity , Function n gives the numerical values of all these constants. -.. #[Madhu: This doesn't sound like scripts. How will I read this - while recording. Also if I were recording I would have read your - third constant as Oh-Oh i.e. double O. It took me at least 30 - seconds to figure out it is infinity] - -For instance:: +{{{ Type n(pi) + n(e) + n(oo) + On the sage notebook }}} - n(e) - - 2.71828182845905 + -gives numerical value of e. - -If you look into the documentation of n by doing +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 can take etc .. It will be very -helpful if you look at the documentation of all functions introduced +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. -.. #[Madhu: What does etc .. mean in a script?] + -Also we can define the no of digits we wish to use in the numerical +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 @@ -125,10 +95,10 @@ n(pi, digits = 10) Apart from the constants sage also has a lot of builtin functions like -sin,cos,sinh,cosh,log,factorial,gamma,exp,arcsin,arccos,arctan etc ... -lets try some out on the sage notebook. +sin,cos,log,factorial,gamma,exp,arcsin etc ... +lets try some of them out on the sage notebook. -.. #[Madhu: Here "a lot" makes sense] + :: sin(pi/2) @@ -141,12 +111,9 @@ 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( {{{ Just to show the documentation - extend this line }}} function('f',x) + var('x') + function('f',x) -.. #[Madhu: What will the person recording show in the documentation - without a script for it? Please don't assume recorder can cook up - things while recording. It is impractical] Here f is the name of the function and x is the independent variable . Now we can define f(x) to be :: @@ -158,186 +125,153 @@ f(pi) We can also define functions that are not continuous but defined -piecewise. We will be using a function which is a parabola between 0 -to 1 and a constant from 1 to 2 . type the following as given on the +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 -.. #[Madhu: Instead of "We will be using ..." how about "Let us define - a function ..."] :: - var('x') h(x)=x^2 g(x)=1 f=Piecewise( {{{ Just to show the - documentation extend this line }}} + 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 -Checking f at 0.4, 1.4 and 3 :: f(0.4) f(1.4) f(3) -.. #[Madhu: Again this doesn't sound like a script] - -for f(3) it raises a value not defined in domain error . -Apart from operations on expressions and functions one can also use -them for series . +We can also define functions which are series -.. #[Madhu: I am not able to understand this line. "Use them as -.. series". Use what as series?] We first define a function f(n) in the way discussed above.:: - var('n') function('f', n) + var('n') + function('f', n) -.. #[Madhu: Shouldn't this be on 2 separate lines?] 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) + var('n') + function('f', n) f(n) = 1/n^2 sum(f(n), n, 1, oo) -For the famous Madhava series :: var('n') function('f', n) + +Lets us now try another series :: -.. #[Madhu: What is this? your double colon says it must be code block - but where is the indentation and other things. How will the - recorder know about it?] f(n) = (-1)^(n-1)*1/(2*n - 1) - -This series converges to pi/4. It was used by ancient Indians to -interpret pi. - -.. #[Madhu: I am losing the context. Please add something to bring - this thing to the context] + sum(f(n), n, 1, oo) -For a divergent series, sum would raise a an error 'Sum is -divergent' :: - - var('n') - function('f', n) - f(n) = 1/n sum(f(n), n,1, oo) +This series converges to pi/4. - -We can perform simple calculus operation using sage +Moving on let us see how to perform simple calculus operations using Sage -.. #[Madhu: When you switch to irrelevant topics make sure you use - some connectors in English like "Moving on let us see how to - perform simple calculus operations using Sage" or something like - that] For example lets try an expression first :: - diff(x**2+sin(x),x) 2x+cos(x) + diff(x**2+sin(x),x) + 2x+cos(x) -The diff function differentiates an expression or a function . Its +The diff function differentiates an expression or a function. Its first argument is expression or function and second argument is the -independent variable . - -.. #[Madhu: Full stop, Full stop, Full stop] +independent variable. We have already tried an expression now lets try a function :: - f=exp(x^2)+arcsin(x) diff(f(x),x) + f=exp(x^2)+arcsin(x) + diff(f(x),x) -To get a higher order differentiation we need to add an extra argument +To get a higher order differential we need to add an extra third argument for order :: diff( diff(f(x),x,3) -.. #[Madhu: Please try to be more explicit saying third argument] - 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 - -.. #[Madhu: Two separate lines.] + x = var('x') + s = integral(1/(1 + (tan(x))**2),x) + s -To find the factors of an expression use the "factor" function + -.. #[Madhu: See the diff] +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) + factor( + y = (x^100 - x^70)*(cos(x)^2 + cos(x)^2*tan(x)^2) + f = factor(y) -One can also simplify complicated expression using sage :: +One can simplify complicated expression :: + f.simplify_full() -This simplifies the expression fully . You can also do simplification +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() + f.simplify_exp() + f.simplify_trig() -.. #[Madhu: Separate lines?] + 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) - -.. #[Madhu: Separate lines?] + 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) - -.. #[Madhu: Separate lines?] + 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 the solution is almost equal to zero . +as we can see when we substitute the value the answer is almost = 0 showing +the solution we got was correct. -.. #[Madhu: So what?] - -We can also define symbolic matrices :: - var('a,b,c,d') A=matrix([[a,1,0],[0,b,0],[0,c,d]]) A +Lets us now try some matrix algebra symbolically :: + + -.. #[Madhu: Why don't you break the lines?] + 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 -.. #[Madhu: Why don't you break the lines? Also how do you connect - this up? Use some transformation keywords in English] -:: - A.det() A.inverse() - -.. #[Madhu: Why don't you break the lines?] -You can do :: - - A. +:: + A.det() + A.inverse() -To see what all operations are available -.. #[Madhu: Sounds very abrupt] {{{ Part of the notebook with summary }}} So in this tutorial we learnt how to -We learnt about defining symbolic expression and functions . -And some built-in constants and functions . -Getting value of built-in constants using n function. -Using Tab to see the documentation. -Also we learnt how to sum a series using sum function. -diff() and integrate() for calculus operations . -Finding roots , factors and simplifying expression using find_root(), -factor() , simplify_full, simplify_exp , simplify_trig . -Substituting values in expression using substitute function. -And finally creating symbolic matrices and performing operation on them . +* 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 . -.. #[Madhu: See what Nishanth is doing. He has written this as - points. So easy to read out while recording. You may want to - reorganize like that]