Python-3.4.3/C3/Least-square-fit/English-timed
From Script | Spoken-Tutorial
|
|
00:01 | Welcome to the spoken tutorial on Least Square Fit. |
00:06 | In this tutorial, you will learn to,
Generate the least square fit line for a given set of points. |
00:16 | To record this tutorial, I am using Ubuntu Linux 16.04 operating system |
00:24 | Python 3.4.3 and IPython 5.1.0 |
00:31 | To practise this tutorial, you should know about
using plot interactively |
00:38 | Loading data from files |
00:41 | Using arrays and matrices and theoretical knowledge of least square method |
00:48 | If not, see the relevant Python tutorials on this website. |
00:53 | Before beginning this tutorial, please download the file pendulum.txt from the Code files link of this tutorial. |
01:03 | Save it in the current working directory. |
01:07 | Let us start the tutorial with the help of an example. |
01:12 | Generate a least square fit line for L versus t square using the data in the file 'pendulum.txt'. |
01:22 | Let us open the file pendulum.txt. |
01:26 | This is an input file generated from a simple pendulum experiment. |
01:32 | The first column is the length of the pendulum. |
01:36 | The second is the corresponding time period of the pendulum. |
01:41 | The square of time period is directly proportional to its length. |
01:47 | We shall plot L versus t square and verify this. |
01:52 | Let us start ipython. Open the terminal. |
01:57 | Type ipython3 and press Enter. |
02:03 | From here onwards remember to press the Enter key after typing every command on the terminal. |
02:10 | To read the input file and parse the data, we are going to use the loadtxt function. |
02:17 | Type, from numpy import loadtxt |
02:23 | Now type, Capital L comma t is equal to loadtxt inside brackets inside double quotes pendulum.txt comma unpack is equal to True |
02:37 | loadtxt is a method available in the numpy library. |
02:42 | Since True is passed to unpack argument, the returned array is transposed. |
02:49 | This means that we will get one array per column in the file. |
02:54 | Type capital L |
02:59 | Then type t |
03:03 | We can see that L and t are length and time values. |
03:08 | To know more about loadtxt, type loadtxt question mark |
03:16 | Press q to exit. |
03:19 | Let us first plot L versus t square.
Type as shown. |
03:27 | Here bo represents the blue circle marker. |
03:32 | Then type, plt.show open and close brackets |
03:38 | We can see that there is a visible linear trend, but we do not get a straight line connecting them. |
03:45 | Looking at the trend, we can now propose a model for the data. |
03:50 | Let me close this image. |
03:53 | We need to fit a line through points for the the equation.
Capital T square is equal to m asterisk Capital L plus c |
04:03 | Where m represents the slope of the line and c represents the intercept of the line. |
04:10 | We will obtain m and c using linear regression. |
04:15 | Let us see the steps to generate a least square fit line. |
04:20 | First generate the two matrices tsq and A. Use the lstsq function to find the values of the slope m and the intercept c. |
04:33 | In matrix form, the equation can be represented as
tsq is equal to A asterisk p |
04:41 | tsq is a one-dimensional array of size n. |
04:46 | Each element of this array will contain the square of the time period. |
04:52 | A is a matrix of size n by 2. |
04:56 | The first column will contain the length of the pendulum. |
05:00 | The second column will contain the number 1. |
05:04 | p is a one-dimensional array of size 2. |
05:08 | The first row contains the slope of the line. |
05:12 | The second row contains the intercept of the line.
We need to find p to plot the line. |
05:20 | Let us now generate the A matrix with L values. |
05:25 | We shall generate a matrix with the first row as L values and the second row as ones.
Then take the transpose of it. |
05:34 | Type as shown. |
05:38 | We see that we have intermediate matrix. |
05:42 | Now we need the transpose. |
05:45 | Type, Capital A is equal to inter underscore mat dot Capital T |
05:53 | Now type capital A |
05:56 | Now we have both the matrices A and tsq. |
06:01 | We only need to use lstsq.
Type as shown. |
06:08 | Now to see the result, type result
The result is a sequence of values. |
06:16 | Now we will store result of index 0 in m and c respectively. |
06:23 | Type, p is equal to result inside square brackets 0
|
06:34 | Now type, m c |
06:39 | We can see the values for m and c. |
06:43 | Now we have m and c.
We need to generate the fitted values of t square. |
06:51 | Type as shown. |
06:55 | Then type, plt.show open and close brackets |
07:01 | We get the least square fit of L versus t square. |
07:06 | Let me close this window. |
07:09 | This brings us to the end of this tutorial. Let us summarize. |
07:15 | In this tutorial, we have learnt to, Generate a least square fit using matrices |
07:23 | Use the function lstsq() to generate a least square fit line |
07:29 | Here is a self assessment question for you to solve |
07:33 | What does the following function produce? |
07:35 | And the answer,
The function ones underscore like inside brackets inside square brackets 1 comma 2 comma 3 will generate array inside brackets inside square brackets 1 comma 1 comma 1. |
07:51 | Please post your timed queries in this forum. |
07:55 | Please post your general queries on Python in this forum. |
08:00 | FOSSEE team coordinates the TBC project. |
08:04 | Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India.
For more details, visit this website. |
08:14 | This is Priya from IIT Bombay signing off. Thanks for watching. |