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

From Script | Spoken-Tutorial
Revision as of 18:00, 10 July 2014 by Gaurav (Talk | contribs)

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