Difference between revisions of "Scilab/C4/Linear-equations-Gaussian-Methods/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
(4 intermediate revisions by one other user not shown)
Line 6: Line 6:
  
  
{| style="border-spacing:0;"
+
{|border=1
 
! <center>Visual Cue</center>
 
! <center>Visual Cue</center>
 
! <center>Narration</center>
 
! <center>Narration</center>
Line 22: Line 22:
 
* Solve system of linear equations using '''Scilab'''
 
* Solve system of linear equations using '''Scilab'''
 
* Develop '''Scilab''' code to solve linear equations  
 
* Develop '''Scilab''' code to solve linear equations  
 
 
  
 
|-
 
|-
Line 40: Line 38:
  
 
To learn '''Scilab''', please refer to the relevant tutorials available on the '''Spoken Tutorial '''website.  
 
To learn '''Scilab''', please refer to the relevant tutorials available on the '''Spoken Tutorial '''website.  
 +
 +
  
 
|-
 
|-
Line 47: Line 47:
 
* '''linear equations'''
 
* '''linear equations'''
 
* of the same set of '''variables'''
 
* of the same set of '''variables'''
 
 
  
 
|-
 
|-
Line 56: Line 54:
 
Given a system of equations
 
Given a system of equations
  
* '''a x equal to b'''
+
* '''A x equal to b'''
 
* with '''m '''equations and''' '''
 
* with '''m '''equations and''' '''
 
* '''n '''unknowns
 
* '''n '''unknowns
 
 
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Slide 8- Gaussian Elimination Method
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Slide 8- Gaussian Elimination Method
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| * We write the coefficients of the '''variables''' '''a one''' to''' a n'''  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|  
* along with the '''constants b one''' to''' b n''' of the system of equations  
+
* We write the coefficients of the '''variables''' '''a one''' to''' a n'''  
 +
* along with the '''constants b one''' to''' b m''' of the system of equations  
 
* in one '''matrix''' called the '''augmented matrix'''
 
* in one '''matrix''' called the '''augmented matrix'''
 
 
  
 
|-
 
|-
Line 75: Line 70:
  
  
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| How do we convert the '''augmented matrix '''to an '''upper triangular form''' '''matrix?'''
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| How do we convert the '''augmented matrix '''to an '''upper triangular form matrix?'''
  
  
We do so''' '''by performing row wise manipulation of the '''matrix'''.
+
We do so by performing row wise manipulation of the '''matrix'''.
  
 
|-
 
|-
Line 93: Line 88:
  
  
This''' '''defines how many digits should be displayed in the answer.  
+
This defines how many digits should be displayed in the answer.  
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Point to '''e '''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Point to '''e '''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The letter '''e''' within single quotes denotes that the answer should be displayed in '''scientific notation '''
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The letter ''''e'''' within single quotes denotes that the answer should be displayed in '''scientific notation '''
  
 
|-
 
|-
Line 123: Line 118:
  
  
Poin to '''“ “'''
+
Point to '''“ “'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| It will display a message to the user and get the values of '''A''' and '''B''' matrices.  
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| It will display a message to the user and get the values of '''A''' and '''B''' matrices.  
  
Line 131: Line 126:
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"|  
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"|  
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The matrices that the user enters, will be stored in the variables '''A''' and '''B'''.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The matrices that the user enters, will be stored in the variables '''A''' and '''b'''.  
  
 
|-
 
|-
Line 137: Line 132:
  
 
Highlight '''B'''
 
Highlight '''B'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Here '''A''' is the '''coefficient matrix''' and '''B''' is the right-hand-side matrix or the '''constants''' '''matrix'''.
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Here '''A''' is the '''coefficient matrix''' and '''b''' is the right-hand-side matrix or the '''constants matrix'''.
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''naivegaussianelimination'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''naivegaussianelimination'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we define the function '''naive gaussian elimination.'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we define the function '''naive gaussian elimination.'''
 
 
 
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''A'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''A'''
  
Highlight '''B'''
+
Highlight '''b'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| And we state that '''A''' and '''B''' are the arguments of the function '''naive gaussian elimination'''.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| And we state that '''A''' and '''b''' are the '''arguments''' of the function '''naive gaussian elimination'''.  
  
 
|-
 
|-
Line 158: Line 150:
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''size'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''size'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we find the size of matrices '''A''' and '''B''' using the '''size''' command.
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we find the size of matrices '''A''' and '''b''' using the '''size''' command.
  
 
|-
 
|-
Line 174: Line 166:
  
 
'''error('gaussianelimination - Matrix A must be square');'''
 
'''error('gaussianelimination - Matrix A must be square');'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we have to determine if the matrices are compatible with each other and if '''A''' is a '''square matrix'''.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we have to determine  
 
+
*if the matrices are compatible with each other and  
 
+
*if '''A''' is a '''square matrix'''.  
If '''n''' and '''n one''' are not equal , then we display a message that '''Matrix A''' must be '''square'''.
+
 
+
  
  
 +
If '''n''' and '''n one''' are not equal, then we display a message '''Matrix A must be square'''.
  
 
|-
 
|-
Line 188: Line 179:
  
 
'''error('gaussianelimination - incompatible dimension of A & b');'''
 
'''error('gaussianelimination - incompatible dimension of A & b');'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| If '''n''' and '''m''' one are not equal, we display a message incompatible dimension of '''A''' and '''b.'''
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| If '''n''' and '''m''' one are not equal, we display a message  
 +
'''incompatible dimension of A and b'''.
  
 
|-
 
|-
Line 194: Line 186:
  
 
'''<nowiki>C=[A b];</nowiki>'''
 
'''<nowiki>C=[A b];</nowiki>'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| If the matrices are compatible, we place matrices '''A''' and '''b''' in one matrix '''C'''.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| If the matrices are compatible, we place matrices '''A''' and '''b''' in one matrix, '''C'''.  
  
  
Line 224: Line 216:
  
 
This code converts the '''augmented matrix''' to '''upper triangular matrix''' form.  
 
This code converts the '''augmented matrix''' to '''upper triangular matrix''' form.  
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
 
|-
 
|-
Line 243: Line 246:
  
 
'''end'''
 
'''end'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| * Finally we perform '''back substitution'''.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"|  
 +
* Finally, we perform '''back substitution'''.  
 
* Once the '''upper triangular matrix''' is obtained, we take the last row and find the value of the variable in that row.  
 
* Once the '''upper triangular matrix''' is obtained, we take the last row and find the value of the variable in that row.  
 
* Then once one variable is solved, we take this variable to solve the other variables.  
 
* Then once one variable is solved, we take this variable to solve the other variables.  
Line 253: Line 257:
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Click on Execute and select Save and Execute
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Click on Execute and select Save and Execute
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Let us save and execute the file.  
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Let us save and execute the file.  
 
 
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show Scilab Console
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show Scilab Console
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to '''Scilab''' console to solve the example.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Switch to '''Scilab console''' to solve the example.  
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show Scilab Console
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show Scilab Console
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| On the console, we have a prompt to enter the value of the '''coefficient matrix'''.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| On the '''console''', we have a prompt to enter the value of the '''coefficient matrix'''.  
  
  
Line 271: Line 273:
  
 
'''<nowiki>[3.41 1.23 -1.09;2.71 2.14 1.29;1.89 -1.91 -1.89]</nowiki>'''
 
'''<nowiki>[3.41 1.23 -1.09;2.71 2.14 1.29;1.89 -1.91 -1.89]</nowiki>'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Type '''square bracket three point four one space one point two three space minus one point zero nine '''
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Type '''square bracket three point four one space one point two three space minus one point zero nine semi colon '''
 
+
'''semi colon '''
+
  
 
'''two point seven one space two point one four space one point two nine semi colon '''
 
'''two point seven one space two point one four space one point two nine semi colon '''
Line 279: Line 279:
 
'''one point eight nine space minus one point nine one space minus one point eight nine close square bracket.'''
 
'''one point eight nine space minus one point nine one space minus one point eight nine close square bracket.'''
  
'''Press enter'''
+
Press '''Enter'''
  
 
|-
 
|-
Line 292: Line 292:
 
'''open square bracket four point seven two semi colon three point one semi colon two point nine one close square bracket.'''
 
'''open square bracket four point seven two semi colon three point one semi colon two point nine one close square bracket.'''
  
'''Press enter'''
+
Press '''Enter'''
  
 
|-
 
|-
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| '''Type'''
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Type  
  
 
'''naivegaussianelimination(A,b)'''
 
'''naivegaussianelimination(A,b)'''
Line 302: Line 302:
 
'''naive gaussian elimination open paranthesis A comma b close paranthesis '''
 
'''naive gaussian elimination open paranthesis A comma b close paranthesis '''
  
'''Press enter'''
+
 
 +
Press '''Enter'''
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show answer on Scilab console
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show answer on Scilab console
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The solution to the system of linear equations is shown on Scilab console.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The solution to the system of linear equations is shown on '''Scilab console'''.  
  
 
|-
 
|-
Line 318: Line 319:
 
* The first step is to form the '''augmented matrix. '''
 
* The first step is to form the '''augmented matrix. '''
 
* To do this place the coefficient '''matrix A''' and the right hand side '''matrix b''' together in one '''matrix'''.
 
* To do this place the coefficient '''matrix A''' and the right hand side '''matrix b''' together in one '''matrix'''.
* Then we perform '''row operations t'''o convert '''matrix A '''to diagonal form.  
+
* Then we perform '''row operations''' to convert '''matrix A '''to diagonal form.  
 
* In diagonal form, only the elements '''a i i '''are non-zero. Rest of the elements are zero.
 
* In diagonal form, only the elements '''a i i '''are non-zero. Rest of the elements are zero.
 
 
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Slide 12- Gauss-Jordan Method
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Slide 12- Gauss-Jordan Method
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we divide the '''diagonal element and corresponding element of right hand side element, by the diagonal element'''.
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we divide the diagonal element and corresponding element of right hand side element, by the diagonal element.
  
  
Line 358: Line 357:
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''20'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Highlight '''20'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| '''Twenty''' denotes that only '''twenty digits''' should be displayed.
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| '''Twenty (20)''' denotes that only '''twenty digits''' should be displayed.
  
 
|-
 
|-
Line 384: Line 383:
  
 
'''<nowiki>[r, s] = size( b )</nowiki>'''
 
'''<nowiki>[r, s] = size( b )</nowiki>'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Similarly we get the size of '''matrix b '''and store it in '''r''' and '''s'''
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Similarly, we get the size of '''matrix b '''and store it in '''r''' and '''s'''
  
 
|-
 
|-
Line 394: Line 393:
  
 
'''end'''
 
'''end'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| If the sizes of '''A '''and '''b''' are not compatible, we display an error on the console using '''error function'''.  
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| If the sizes of '''A '''and '''b''' are not compatible, we display an error on the '''console''' using '''error function'''.  
  
 
|-
 
|-
Line 424: Line 423:
  
  
Here '''pivot''' refers to the first non-zero element of a column.  
+
Here '''pivot''' refers to the first non-zero element of a '''column'''.  
  
 
|-
 
|-
Line 430: Line 429:
  
 
'''x = zeros( m, s )'''
 
'''x = zeros( m, s )'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we create a '''matrix''' of zeros called '''x''' with '''m''' rows and '''s''' columns.
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we create a '''matrix''' of zeros called '''x''' with '''m''' rows and '''s columns'''.
  
 
|-
 
|-
Line 449: Line 448:
 
* by the corresponding '''diagonal element '''
 
* by the corresponding '''diagonal element '''
 
* to get the value of each variable.
 
* to get the value of each variable.
 
  
  
Line 463: Line 461:
 
'''return x'''
 
'''return x'''
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we return the value of '''x.'''  
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Then we return the value of '''x.'''  
 
 
  
  
Line 471: Line 467:
  
 
'''endfunction'''
 
'''endfunction'''
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Finally we end the function.
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| Finally, we '''end''' the function.
  
 
|-
 
|-
Line 489: Line 485:
 
So we type
 
So we type
  
'''open square bracket zero point seven comma one seven two five '''
+
'''open square bracket zero point seven comma one seven two five semi colon '''
 
+
'''semi colon '''
+
  
 
'''zero point four three five two comma minus five point four three three close square bracket.'''
 
'''zero point four three five two comma minus five point four three three close square bracket.'''
  
'''Press enter'''
+
Press '''Enter'''
  
 
|-
 
|-
Line 506: Line 500:
 
So we type  
 
So we type  
  
'''open squre bracket one seven three nine '''
+
'''open squre bracket one seven three nine semi colon '''
 
+
'''semi colon '''
+
  
 
'''three point two seven one close square bracket'''
 
'''three point two seven one close square bracket'''
  
'''Press enter'''
+
Press '''Enter'''
  
 
|-
 
|-
Line 522: Line 514:
 
'''Gauss Jordan Elimination open paranthesis A comma b close paranthesis'''
 
'''Gauss Jordan Elimination open paranthesis A comma b close paranthesis'''
  
'''Press enter'''
+
Press '''Enter'''
  
 
|-
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show answers on Scilab console
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:none;padding:0.097cm;"| Show answers on Scilab console
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The values of '''x one''' and '''x two''' are shown on the console.
+
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.097cm;"| The values of '''x one''' and '''x two''' are shown on the '''console'''.
  
 
|-
 
|-
Line 534: Line 526:
 
In this tutorial, we have learnt to:  
 
In this tutorial, we have learnt to:  
  
* Develop Scilab code for solving system of '''linear equations'''  
+
* Develop '''Scilab''' code for solving system of '''linear equations'''  
* Find the value of the unknown variables of a system of '''linear '''
+
* Find the value of the unknown variables of a system of '''linear equations '''
 
+
'''equations '''
+
  
 
|-
 
|-

Latest revision as of 16:37, 5 February 2016

Title of script: Solving System of Linear Equations using Gauss Elimination and Gauss-Jordan Methods

Author: Shamika

Keywords: System of linear equations, Gaussian Methods


Visual Cue
Narration
Slide 1 Dear Friends,

Welcome to the Spoken Tutorial on “Solving System of Linear Equations using Gauss Elimination and Gauss-Jordan Methods

Slide 2 -Learning Objective Slide At the end of this tutorial, you will learn how to:
  • Solve system of linear equations using Scilab
  • Develop Scilab code to solve linear equations
Slide 3-System Requirement slide To record this tutorial, I am using
  • Ubuntu 12.04 as the operating system
  • and Scilab 5.3.3 version
Slide 4- Prerequisites slide To practise this tutorial, a learner
  • should have basic knowledge of Scilab
  • and should know how to solve Linear Equations.


To learn Scilab, please refer to the relevant tutorials available on the Spoken Tutorial website.


Slide 5- System of Linear Equations A system of linear equations is a
  • Finite collection of
  • linear equations
  • of the same set of variables
Slide 7- Gaussian Elimination Method Let us study Gauss elimination method

Given a system of equations

  • A x equal to b
  • with m equations and
  • n unknowns
Slide 8- Gaussian Elimination Method
  • We write the coefficients of the variables a one to a n
  • along with the constants b one to b m of the system of equations
  • in one matrix called the augmented matrix
Slide 9- Gaussian Elimination Method


How do we convert the augmented matrix to an upper triangular form matrix?


We do so by performing row wise manipulation of the matrix.

Slide 10- Example Let us solve this system of equations using Gaussian elimination method
Switch to Scilab and open naivegaussianelimination.sci Before we solve the system, let us go through the code for Gaussian elimination method.
Highlight format e comma twenty The first line of the code is format e comma twenty.


This defines how many digits should be displayed in the answer.

Point to e The letter 'e' within single quotes denotes that the answer should be displayed in scientific notation
Point to twenty The number twenty is the number of digits that should be displayed.
Highlight funcprot The command funcprot is used to let Scilab know what to do when variables are redefined.
Point to zero The argument zero specifies that Scilab need not do anything if the variables are redefined.
No visual clue. This is extra information that is being offered to the listener. Other arguments are used to issue warnings or errors if the variables are redefined.
Highlight input Next we use the input function.
Highlight input


Point to “ “

It will display a message to the user and get the values of A and B matrices.


The message should be placed within double quotes.

The matrices that the user enters, will be stored in the variables A and b.
Highlight A

Highlight B

Here A is the coefficient matrix and b is the right-hand-side matrix or the constants matrix.
Highlight naivegaussianelimination Then we define the function naive gaussian elimination.
Highlight A

Highlight b

And we state that A and b are the arguments of the function naive gaussian elimination.
Highlight x We store the output in variable x.
Highlight size Then we find the size of matrices A and b using the size command.
Highlight n and n one Since they are two dimensional matrices, we use n and n one to store the size of matrix A.
Highlight m one and p Similarly we can use m one and p for matrix b.
Highlight

if n ~= n1

error('gaussianelimination - Matrix A must be square');

Then we have to determine
  • if the matrices are compatible with each other and
  • if A is a square matrix.


If n and n one are not equal, then we display a message Matrix A must be square.

Highlight

elseif n ~= m1

error('gaussianelimination - incompatible dimension of A & b');

If n and m one are not equal, we display a message

incompatible dimension of A and b.

Highlight

C=[A b];

If the matrices are compatible, we place matrices A and b in one matrix, C.


This matrix C is called augmented matrix.

Highlight

n=size(A,1);

for k=1:n-1

for i=k+1:n

factor=A(i,k)/A(k,k);

for j=k+1:n

A(i,j)=A(i,j)-factor*A(k,j);

end

b(i)=b(i)-factor*b(k);

end

end

The next block of code performs forward elimination.

This code converts the augmented matrix to upper triangular matrix form.







Highlight

x(n)=b(n)/A(n,n);

for i=n-1:-1:1

sum=0;

for j=i+1:n

sum=sum+A(i,j)*x(j);

end

x(i)=(b(i)-sum)/A(i,i);

end

  • Finally, we perform back substitution.
  • Once the upper triangular matrix is obtained, we take the last row and find the value of the variable in that row.
  • Then once one variable is solved, we take this variable to solve the other variables.
  • Thus the system of linear equations is solved.


Click on Execute and select Save and Execute Let us save and execute the file.
Show Scilab Console Switch to Scilab console to solve the example.
Show Scilab Console On the console, we have a prompt to enter the value of the coefficient matrix.


So we enter the values of matrix A.

Type

[3.41 1.23 -1.09;2.71 2.14 1.29;1.89 -1.91 -1.89]

Type square bracket three point four one space one point two three space minus one point zero nine semi colon

two point seven one space two point one four space one point two nine semi colon

one point eight nine space minus one point nine one space minus one point eight nine close square bracket.

Press Enter

Type

[4.72;3.1;2.92]

The next prompt is for matrix b.


So we type

open square bracket four point seven two semi colon three point one semi colon two point nine one close square bracket.

Press Enter

Type

naivegaussianelimination(A,b)

Then we call the function by typing

naive gaussian elimination open paranthesis A comma b close paranthesis


Press Enter

Show answer on Scilab console The solution to the system of linear equations is shown on Scilab console.
Next we shall study the Gauss- Jordan method.
Slide 11 – Gauss- Jordan Method In Gauss – Jordan Method
  • The first step is to form the augmented matrix.
  • To do this place the coefficient matrix A and the right hand side matrix b together in one matrix.
  • Then we perform row operations to convert matrix A to diagonal form.
  • In diagonal form, only the elements a i i are non-zero. Rest of the elements are zero.
Slide 12- Gauss-Jordan Method Then we divide the diagonal element and corresponding element of right hand side element, by the diagonal element.


We do this to get diagonal element equal to one.


The resulting value of the elements of each row of the right hand side matrix gives the value of each variable.

Slide 13- Example


Let us solve this example using Gauss- Jordan Method.
Switch to Scilab console and open GaussJordan Elimination.sci Let us look at the code first.
Highlight

format

The first line of the code uses format function to specify the format of the displayed answers.
Highlight

'e'

The parameter e specifies the answer should be in scientific notation.
Highlight 20 Twenty (20) denotes that only twenty digits should be displayed.
Highlight

A=input("Enter the coeffiecient matrix : ")

b=input("Enter the right-hand side matrix : ")

Then we get the A and b matrix using the input function.
Highlight

function [x] = GaussJordanElimination( A, b )

We define the function Gauss Jordan Elimination with input arguments A and b and output argument x.
Highlight

[m, n] = size( A )

We get the size of matrix A and store it in m and n
Highlight

[r, s] = size( b )

Similarly, we get the size of matrix b and store it in r and s
Highlight

if ( m <> r ) then

error("Error: matrix A and vector b are incompatible sizes")

end

If the sizes of A and b are not compatible, we display an error on the console using error function.
Highlight

for k = 1 : 1 : m

indices = [ 1 : 1 : k-1, k+1 : 1 : m ]


// For all rows below and above the pivot, subtract a multiple

// of the pivoting row to get a zero

for i = indices

multiplier = C(i, k) / C(k,k)

for j = k+1 : n

C(i, j) = C(i, j) - multiplier * C(k, j)

end

end

end

Then we perform row operations to get diagonal form of the matrix.


Here pivot refers to the first non-zero element of a column.

Highlight

x = zeros( m, s )

Then we create a matrix of zeros called x with m rows and s columns.
Highlight

for i = 1 : 1 : m

for j = 1 : 1 : s

x(i, j) = C(i, m+j) / C(i, i)

end

end

Once we have the diagonal form,
  • we divide the right hand side part of augmented matrix
  • by the corresponding diagonal element
  • to get the value of each variable.


Highlight

x(i, j) = C(i, m+j) / C(i, i)

We store the value of each variable in x.
Highlight

return x

Then we return the value of x.


Highlight

endfunction

Finally, we end the function.
Click on Execute and select Save and Execute Now let us save and execute the function.
Type the following

[0.7, 1725;0.4352,-5.433]


The prompt requires us to enter the value of matrix A.


So we type

open square bracket zero point seven comma one seven two five semi colon

zero point four three five two comma minus five point four three three close square bracket.

Press Enter

Type the following

[1739;3.271]

The next prompt is for vector b.


So we type

open squre bracket one seven three nine semi colon

three point two seven one close square bracket

Press Enter

Type the following

GaussJordanElimination(A,b)

Then we call the function by typing

Gauss Jordan Elimination open paranthesis A comma b close paranthesis

Press Enter

Show answers on Scilab console The values of x one and x two are shown on the console.
Slide 14- Summary Let us summarize this tutorial.

In this tutorial, we have learnt to:

  • Develop Scilab code for solving system of linear equations
  • Find the value of the unknown variables of a system of linear equations
Show Slide 16

Title: About the Spoken Tutorial Project

  • It summarises the Spoken Tutorial project
  • If you do not have good bandwidth, you can download and watch it


* Watch the video available at the following link
  • It summarises the Spoken Tutorial project
  • If you do not have good bandwidth, you can download and watch it


Show Slide 17

Title: Spoken Tutorial Workshops

The Spoken Tutorial Project Team

  • Conducts workshops using spoken tutorials
  • Gives certificates for those who pass an online test
  • For more details, please write to contact@spoken-tutorial.org


The Spoken Tutorial Project Team
  • Conducts workshops using spoken tutorials
  • Gives certificates for those who pass an online test
  • For more details, please write to contact at spoken hyphen tutorial dot org


Show Slide 18

Title: Acknowledgement

  • Spoken Tutorial Project is a part of the Talk to a Teacher project
  • It is supported by the National Mission on Education through ICT, MHRD, Government of India
  • More information on this Mission is available at


* Spoken Tutorial Project is a part of the Talk to a Teacher project
  • It is supported by the National Mission on Education through ICT, MHRD, Government of India
  • More information on this Mission is available at
  • spoken hyphen tutorial dot org slash NMEICT hyphen Intro



This is mandatory. This is Ashwini Patil signing off. Thanks for joining.

Contributors and Content Editors

Lavitha Pereira, Nancyvarkey, Pratik kamble