# HG changeset patch # User Madhusudan.C.S # Date 1285230335 -19800 # Node ID d95288e57cfc602bdfac4caf84ed55b834864330 # Parent 65e5e2362bc95293f609f435f16d1fc2bbadf678 Review of Amit' Symbolics in Sage. diff -r 65e5e2362bc9 -r d95288e57cfc symbolics.rst --- a/symbolics.rst Thu Sep 23 13:14:31 2010 +0530 +++ b/symbolics.rst Thu Sep 23 13:55:35 2010 +0530 @@ -4,11 +4,19 @@ This tutorial on using Sage for symbolic calculation is brought to you by Fossee group. +.. #[Madhu: Sounds more or less like an ad!] + {{{ Part of Notebook with title }}} +.. #[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 }}} @@ -21,16 +29,27 @@ .. #[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 ..."] -Using sage we can perform mathematical operations on symbols . +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] 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. :: - +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') Now if you type:: @@ -39,17 +58,30 @@ 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 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 . -Try out :: +.. #[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 + +.. #[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 using sage . +.. #[Madhu: comma again. Show some more examples?] Sage also provides a few built-in constants which are commonly used in @@ -58,6 +90,11 @@ example : pi,e,oo , 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:: n(e) @@ -66,22 +103,33 @@ gives numerical value of e. -If you look into the documentation of n by doing :: +If you look into the documentation of 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 - + +.. #[Madhu: What does etc .. mean in a 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:: - +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,sinh,cosh,log,factorial,gamma,exp,arcsin,arccos,arctan etc ... -lets try some out on the sage notebook. :: +lets try some out on the sage notebook. + +.. #[Madhu: Here "a lot" makes sense] +:: sin(pi/2) @@ -96,6 +144,10 @@ var('x') function( {{{ Just to show the documentation extend this line }}} 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 :: @@ -105,10 +157,14 @@ f(pi) -We can also define function that are not continuous but defined +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 -screen:: +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 @@ -117,21 +173,27 @@ 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 . +.. #[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) +.. #[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 :: +For a convergent series , f(n)=1/n^2 we can say :: var('n') function('f', n) @@ -141,11 +203,18 @@ For the famous Madhava series :: var('n') function('f', n) +.. #[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] + For a divergent series, sum would raise a an error 'Sum is divergent' :: @@ -158,6 +227,10 @@ We can perform simple calculus operation 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) @@ -166,6 +239,8 @@ first argument is expression or function and second argument is the independent variable . +.. #[Madhu: Full stop, Full stop, Full stop] + We have already tried an expression now lets try a function :: f=exp(x^2)+arcsin(x) diff(f(x),x) @@ -175,6 +250,7 @@ diff( diff(f(x),x,3) +.. #[Madhu: Please try to be more explicit saying third argument] in this case it is 3. @@ -183,10 +259,13 @@ x = var('x') s = integral(1/(1 + (tan(x))**2),x) s +.. #[Madhu: Two separate lines.] +To find the factors of an expression use the "factor" function -To find factors of an expression use the function factor +.. #[Madhu: See the diff] +:: factor( y = (x^100 - x^70)*(cos(x)^2 + cos(x)^2*tan(x)^2) f = factor(y) @@ -198,20 +277,25 @@ 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?] + 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?] as we can see the solution is almost equal to zero . +.. #[Madhu: So what?] We can also define symbolic matrices :: @@ -219,11 +303,16 @@ var('a,b,c,d') A=matrix([[a,1,0],[0,b,0],[0,c,d]]) A +.. #[Madhu: Why don't you break the lines?] -Now lets do some of the matrix operations on this matrix :: +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() - A.det() A.inverse() +.. #[Madhu: Why don't you break the lines?] You can do :: @@ -231,6 +320,7 @@ To see what all operations are available +.. #[Madhu: Sounds very abrupt] {{{ Part of the notebook with summary }}} @@ -247,3 +337,7 @@ factor() , simplify_full, simplify_exp , simplify_trig . Substituting values in expression using substitute function. And finally 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]