Scilab/C4/Linear-equations-Iterative-Methods/English-timed

From Script | Spoken-Tutorial
Revision as of 11:05, 12 March 2014 by PoojaMoolya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time Narration
00.01 Dear Friends,
00.02 Welcome to the Spoken Tutorial on “Solving System of Linear Equations using Iterative Methods”
00.10 At the end of this tutorial, you will learn how to:
00.14 Solve system of linear equations using iterative methods
00.18 Develop Scilab code to solve linear equations
00.22 To record this tutorial, I am using
00.25 Ubuntu 12.04 as the operating system


00.28 and Scilab 5.3.3 version
00.33 Before practising this tutorial, a learner should have basic knowledge of
00.38 Scilab
00.39 and Solving Linear Equations
00.42 For Scilab, please refer to the relevant tutorials available on the Spoken Tutorial website.
00.50 The first iterative method we will be studying is Jacobi method.
00.56 Given a system of linear equations, with n equations and n unknowns
01.02 We rewrite the equations such that x of i k plus one is equal to b i minus summation of a i j x j k from j equal to one to n divided by a i i where i is from one to n
01.24 We assume values for each x of i


01.27 Then we substitute the values in the equations obtained in the previous step.
01.34 We continue the iteration until the solution converges.
01.39 Let us solve this example using Jacobi Method
01.44 Let us look at the code for Jacobi Method.
01.48 We use format method to specify the format of the displayed answers on the Scilab console.
01.56 Here e denotes the answer should be in scientific notation.
02.01 And twenty specifies the number of digits to be displayed.


02.06 Then we use input function to get the values for


02.10 the matrices coefficient matrix,
02.12 right hand side matrix,
02.14 initial values matrix,


02.17 maximum number of iteration and


02.19 convergence tolerance
02.22 Then we use size function to check if A matrix is a square matrix.
02.29


If it isn't, we use error function to display an error.
02.34 We then check if matrix A is diagonally dominant.
02.40 The first half calculates the sum of each row of the matrix.
02.45 Then it checks if twice the product of the diagonal element is greater than the sum of the elements of that row.
02.54 If it isn't, an error is displayed using error function.
03.01 Then we define the function Jacobi Iteration with input arguments
03.07 A, b , x zero,


03.09 maximum iteration and tolerance level.


03.14 Here x zero is the initial values matrix.


03.19 We check if the size of A matrix and initial values matrix are compatible with each other.
03.28 We calculate the value for x k p one and then check if the relative error is lesser than tolerance level.
03.38 If it is lesser than tolerance level, we break the iteration and the solution is returned.
03.45 Finally we end the function.


03.48 Let us save and execute the function.


03.51 Switch to Scilab console.
03.54 Let us enter the values at each prompt.


03.57 The coefficient matrix A is open square bracket two space one semi colon five space seven close square bracket


04.08 Press Enter.


04.10 Then we type open square bracket eleven semicolon thirteen close square bracket


04.17 Press Enter.


04.20 The initial values matrix is open square bracket one semi colon one close square bracket
04.28 Press Enter.



04.30 The maximum number of iterations is twenty five.


04.34 Press Enter.
04.36 Let the convergence tolerance level be zero point zero zero zero zero one
04.44 Press Enter.


04.46 We call the function by typing
04.48 Jacobi Iteration open paranthesis A comma b comma x zero comma M a x I t e r comma t o l close paranthesis


05.04 Press Enter.


05.06 The values for x one and x two are shown on the console.


05.11 The number of iterations are also shown.
05.14 Let us now study Gauss Seidel method.


05.19 'Given a system of linear equations, with n equations and n unknowns


05.26 We rewrite the equations for each unknown


05.29 by subtracting the other variables and their coefficients from the corresponding right hand side element.


05.37 Then we divide this by the coefficient a i i of the unknown variable' for that variable.


05.45 This is done for every given equation.


05.49 In Jacobi method, for the computation of x of i k plus one, every element of x of i k is used except x of i k plus one


06.03 In Gauss Seidel method, we over write the value of x of i k with x of i k plus one


06.12 Let us solve this example using Gauss Seidel Method


06.17 Let us look at the code for Gauss Seidel Method
06.21 The first line specifies the format of the displayed answer on the console using format function.
06.29 Then we use input function to get the values of
06.32 coefficient matrix,
06.34 right hand side matrix,
06.36 initial values of the variables matrix,
06.38 maximum number of iterations and


06.40 tolerance level
06.43 Then we define the function Gauss Seidel with input arguments A comma b comma x zero comma max iterations and tolerance level and output argument solution
06.58 We check if matrix A is square and the sizes of initial vector and matrix A are compatible using size and length function.
07.10 Then we start the iterations.
07.13 We equate the initial values vector x zero to x k.
07.19 We create a matrix of zeros with the same size of x k and call it x k p one.
07.28 We solve for each equation to get the value of the unknown variable for that equation using x k p one.
07.38 At each iteration, the value of x k p one gets updated.
07.44 Also, we check if relative error is lesser than specified tolerance level.
07.50 If it is, we break the iteration.
07.54 Then equate x k p one to the variable solution.
07.59 Finally, we end the function.
08.02 Let us save and execute the function.
08.06 Switch to Scilab console
08.09 For the first prompt, we type matrix A.
08.12 Type open square bracket two space one semi colon five space seven close square bracket
08.21 Press Enter
08.22 For the next prompt,
08.24 type open square bracket eleven semi colon thirteen close square bracket


08.31 Press Enter.


08.33 We provide the values of initial value vector by typing
08.38 open square bracket one semicolon one close square bracket
08.43 Press Enter.
08.45 Then we specify the maximum number of iterations to be twenty five
08.50 Press Enter.


08.52 Let us define 'tolerance level to be zero point zero zero zero zero one
08.58 Press Enter


09.01 Finally we call the function by typing
09.04 G a u s s S e i d e l open paranthesis A comma b comma x zero comma M a x I t e r comma t o l close paranthesis


09.24 Press Enter.


09.26 The values of x one and x two are displayed.


09.30 The number of iterations to solve the same problem are lesser than Jacobi method.
09.37 Solve this problem on your own using Jacobi and Gauss Seidel methods


09.43 In this tutorial, we have learnt to:


09.47 Develop Scilab code for solving system of linear equations
09.52 Find the value of the unknown variables of a system of linear equations


09.58 Watch the video available at the following link
10.01 It summarises the Spoken Tutorial project


10.04 If you do not have good bandwidth, you can download and watch it
10.09 The spoken tutorial project Team
10.11 Conducts workshops using spoken tutorials


10.15 Gives certificates to those who pass an online test


10.18 For more details, please write to contact@spoken-tutorial.org


10.25 Spoken Tutorial Project is a part of the Talk to a Teacher project


10.30 It is supported by the National Mission on Eduction through ICT, MHRD, Government of India.
10.37 More information on this mission is available at http://spoken-tutorial.org/NMEICT-Intro
10.49 This is Ashwini Patil signing off.
10.51 Thank you for joining.

Contributors and Content Editors

Gaurav, PoojaMoolya, Pratik kamble, Sandhya.np14