--- 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.