# HG changeset patch # User Puneeth Chaganti # Date 1285149141 -19800 # Node ID e8a251048213aa9b0fa90df981cd16f24b0502e6 # Parent ca81c0a67c75219cb1371582fc17118897bb5871 Comments and changes for lstsq script. diff -r ca81c0a67c75 -r e8a251048213 lstsq.rst --- a/lstsq.rst Wed Sep 22 14:48:44 2010 +0530 +++ b/lstsq.rst Wed Sep 22 15:22:21 2010 +0530 @@ -1,3 +1,8 @@ +.. Author : Nishanth + Internal Reviewer 1 : Puneeth + Internal Reviewer 2 : + External Reviewer : + Hello friends and welcome to the tutorial on Least Square Fit {{{ Show the slide containing title }}} @@ -17,31 +22,14 @@ pendulum and the second is the corresponding time period of the pendulum. As we know, the square of time period of a pendulum is directly proportional to -its length, we shall plot l vs t^2 and verify if the proportionality is linear. - -If it is not linear, we shall generate a least square fit line. - -{{{ show the slide containing explanation on least square fit }}} - -As shown in the slide, we are first going to generate the two matrices tsq and -A. Then we are going to use the =lstsq= function to find the values of m and c. - -To read the input file and parse the data, we are going to loadtxt function. -Type -:: +its length, we shall plot l vs t^2 and verify this. - data = loadtxt("/home/fossee/pendulum.txt") - data +#[Puneeth:] removed the explanation about loadtxt and unpack + option. It's been done in another LO already. simple dependency + should work? -As you can see, data is a sequence containing 90 records. Each record contains -two values. The first is length and second is time period. But what we need is -two sequences. One sequence containing all the length values and one containing -all the time values. - -Hence we have to use the unpack option with loadtxt. It unpacks the data into - sequences depending on the structure of data. - -Type +To read the input file and parse the data, we are going to use the +loadtxt function. Type :: l, t = loadtxt("/home/fossee/pendulum.txt", unpack=True) @@ -57,10 +45,20 @@ tsq = t * t plot(l, tsq, 'bo') - {{{ switch to the plot window }}} -We can see that there is a visible linear trend. +#[Puneeth:] Moved explanation of least square fit here. seems more +apt. + +We can see that there is a visible linear trend, but we do not get a +straight line connecting them. We shall, therefore, generate a least +square fit line. + +{{{ show the slide containing explanation on least square fit }}} + +As shown in the slide, we are first going to generate the two matrices +tsq and A. Then we are going to use the ``lstsq`` function to find the +values of m and c. let us now generate the A matrix with l values. We shall first generate a 2 x 90 matrix with the first row as l values and the @@ -70,20 +68,20 @@ inter_mat = array((l, ones_like(l))) inter_mat -We see that we have intermediate matrix. Now we need the transpose.Type +We see that we have intermediate matrix. Now we need the transpose. Type :: A = inter_mat.T A -Now we have both the matrices A and tsq. We only need to use the =lstsq= +Now we have both the matrices A and tsq. We only need to use the ``lstsq`` Type :: result = lstsq(A, tsq) -The result is a sequence of values. The first item is the matrix p or in simple -words, the values of m and c. Hence, +The result is a sequence of values. The first item in this sequence, +is the matrix p i.e., the values of m and c. Hence, :: m, c = result[0] @@ -120,9 +118,5 @@ This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India Hope you have enjoyed and found it useful. -Thankyou +Thank you -.. Author : Nishanth - Internal Reviewer 1 : - Internal Reviewer 2 : - External Reviewer :