diff -r 3893bac8e424 -r 2eff0ebac2dc solving-equations.org --- a/solving-equations.org Sat Apr 17 12:50:42 2010 +0530 +++ b/solving-equations.org Sat Apr 17 15:51:43 2010 +0530 @@ -9,12 +9,12 @@ *** Script Welcome. - In this tutorial we shall look at solving linear equations, roots - of polynomials and other non-linear equations. In the process, we - shall look at defining functions. + In this tutorial we shall look at solving linear equations, obtaining + roots of polynomial and other non-linear equations. In the process, we + shall look at defining functions as well. We would be using concepts related to arrays which we have covered - in previous session + in a previous tutorial. Let's begin with solving linear equations. {show a slide of the equations} @@ -23,7 +23,7 @@ be in the form of matrices to solve the system of linear equations. Lets start ipython -pylab interpreter. - Then we begin by entering the coefficients and the constants as + We begin by entering the coefficients and the constants as matrices. In []: A = array([[3,2,-1], @@ -45,9 +45,9 @@ In []: Ax = dot(A, x) In []: Ax - The result Ax, doesn't look exactly like b, but if you carefully - observe, you will see that it is the same as b. To save yourself - this trouble, you can use the allclose function. + The result Ax, doesn't look exactly like b, but if we carefully + observe, we will see that it is the same as b. To save ourself + all this trouble, we can use the allclose function. allclose checks if two matrices are close enough to each other (with-in the specified tolerance level). Here we shall use the @@ -58,30 +58,32 @@ x, and b are close enough. This validates our solution x. Let's move to finding the roots of polynomials. We shall use the - roots function to calculate the roots of the polynomial x^2-5x+6. + roots function to calculate the roots of a polynomial. The function requires an array of the coefficients of the polynomial in the descending order of powers. + Consider the polynomial x^2-5x+6 In []: coeffs = [1, -5, 6] In []: roots(coeffs) - As you can see, roots returns the result in an array. - # It even works for polynomials with imaginary solutions. - # roots([1, 1, 1]) + As we can see, roots returns the result in an array. + It even works for polynomials with imaginary roots. + roots([1, 1, 1]) - To find the roots of non linear equations, we use the fsolve - function. We shall use the function sin(x)+cos^2(x) as our - function, in this tutorial. This function is not part of pylab - package which we import during starting, so we will have to - import it. It is part of scipy package. + What if I want the solution of non linear equations? + For that we use the fsolve function. We shall use the function + sin(x)+cos^2(x) as our function, in this tutorial. This function + is not part of pylab package which we import at the beginning, + so we will have to import it. It is part of scipy package. Let's + import it using. In []: from scipy.optimize import fsolve - Now, let's look at the documentation of fsolve using fsolve? + Now, let's look at the documentation of fsolve by typing fsolve? In []: fsolve? - As mentioned in docs the first argument, func, is a python + As mentioned in documentation the first argument, func, is a python function that takes atleast one argument. So, we should now define a python function for the given mathematical expression sin(x)+cos^2(x). @@ -98,17 +100,17 @@ ... return sin(x)+cos(x)*cos(x) ... ... - hit return thrice for coming out of function definition. + hit the enter key thrice for coming out of function definition. def, is a key word in python that tells the interpreter that a function definition is beginning. f, here, is the name of the function and x is the lone argument of the function. The whole definition of the function is done with in an indented block same - as for loops and conditional statements we have used in our - earlier sessions. Our function f has just one line in it's + as the loops and conditional statements we have used in our + earlier tutorials. Our function f has just one line in it's definition. - You can test your function, by calling it with an argument for + We can test our function, by calling it with an argument for which the output value is known, say x = 0. We can see that sin(x) + cos^2(x) has a value of 1, when x = 0. @@ -126,8 +128,7 @@ fsolve has returned a root of sin(x)+cos^2(x) that is close to 0. That brings us to the end of this tutorial. We have covered solution - of linear equations, finding roots of polynomials and other - non-linear + of linear equations, finding roots of polynomials and non-linear equations. We have also learnt how to define functions and call them.