scientific computing
play

Scientific Computing Maastricht Science Program Week 2 Frans - PowerPoint PPT Presentation

Scientific Computing Maastricht Science Program Week 2 Frans Oliehoek <frans.oliehoek@maastrichtuniversity.nl> Recap What is scientific programming? Programming Arithmetic, IF, conditions, WHILE, FOR Matlab Cheat Sheet


  1. Scientific Computing Maastricht Science Program Week 2 Frans Oliehoek <frans.oliehoek@maastrichtuniversity.nl>

  2. Recap  What is scientific programming?  Programming  Arithmetic, IF, conditions, WHILE, FOR  Matlab Cheat Sheet  General form of linear equations a 0 + a 1 x 1 + a 2 x 2 + ... = 0  Finding the zeros of non-linear equations  bisection  Newton

  3. This Lecture  A very short introduction linear algebra  Vectors & Matrices in Matlab  LU factorization  Floating Point Numbers  Computation  Computation Errors  Computational Costs

  4. A Very Short Introduction to Linear Algebra

  5. Linear Algebra (LA)  Linear Algebra deals with linear functions  You know what that is!  but higher dimensions R n → R m  I can only give a very brief introduction  covering only basic things  Please:  get a linear algebra book, open it!  Watch some video lectures.  E.g., the first couple at: http://web.mit.edu/18.06/www/videos.shtml

  6. Motivation  LA is the basis of many methods in science  For us:  Important to solve systems of linear equations a 11 x 1 + a 12 x 2 + ... + a 1n x n = c 1 a 21 x 1 + a 22 x 2 + ... + a 2n x n = c 2 a 1 x 1 + a 2 x 2 + ... = c ... a m1 x 1 + a m2 x 2 + ... + a mn x n = c m  Arise in many problems, e.g.:  Identifying gas mixture from peaks in spectrum  fitting a line to data. (Next week)

  7. Motivation  LA is the basis of many methods in science  For us: ● x j - the amount of gas of type j  Important to solve systems of linear equations ● a ij - how much a gas of type j contributes to wavelength i a 11 x 1 + a 12 x 2 + ... + a 1n x n = c 1 ● c i - the height of the peak of a 21 x 1 + a 22 x 2 + ... + a 2n x n = c 2 wavelength i a 1 x 1 + a 2 x 2 + ... = c ... a m1 x 1 + a m2 x 2 + ... + a mn x n = c m  Arise in many problems, e.g.:  Identifying gas mixture from peaks in spectrum  fitting a line to data. (Next week)

  8. Linear System of Equations  Example y = 0.5x + 1 y y = 2x − 3 x  Infinitely many, 1 or no solution

  9. Matrices A = [ − 8 ] − 2 3 6  A matrix with 5 2  m rows, B = [ 435 ]  n columns 5 54 6 75 24 81 is a collection of numbers 25 5  represented as a table v = [ 3 6 ] − 2  A vector is a matrix that is w = [ 25 ]  1 row (row vector), or 5 75  1 column (column vector)

  10. Matrices A = [ − 8 ] − 2 3 6  A matrix with 5 2  m rows, octave:1> A = [3, -2, 6; 5, 2, -8] B = [ 435 ] A =  n columns 5 54 6 3 -2 6 75 24 81 is a collection of numbers 5 2 -8 25 5  represented as a table octave:2> w = [5;75;25] w = 5 v = [ 3 6 ] − 2 75  A vector is a matrix that is 25 w = [ 25 ]  1 row (row vector), or 5 75  1 column (column vector)

  11. Matrices A = [ − 8 ] − 2 3 6  A matrix with 5 2  m rows, octave:1> A = [3, -2, 6; 5, 2, -8] B = [ 435 ] A =  n columns 5 54 6 3 -2 6 75 24 81 is a collection of numbers 5 2 -8 25 5  represented as a table octave:2> w = [5;75;25] w = 5 v = [ 3 6 ] octave:3> a1 = [4:8] − 2 75  A vector is a matrix that is a1 = 25 w = [ 25 ]  1 row (row vector), or 4 5 6 7 8 5 75 octave:4> a2 = [4:2:8]  1 column (column vector) a2 = 4 6 8

  12. Some Special Matrices I = [ 1 ]  Square matrix: m=n 1 0 0  Identity matrix - 'eye(3)' 0 1 0 0 0  Zero matrix – 'zeros(m,n)'  Types: diagonal, triangular (upper & lower) D = [ ∗ ] TU = [ ∗ ] TL = [ ∗ ] ∗ ∗ ∗ ∗ 0 0 ∗ 0 0 ∗ ∗ 0 ∗ 0 0 ∗ ∗ 0 0 0 ∗ ∗ 0 0  '*' denotes any number

  13. Operations on Vectors - 1  We can perform operations on them!  First: vectors. Next: generalization to matrices.  Transpose : convert row ↔ column vector T = [ 6 ] 3 v = [ 3 6 ] v − 2 − 2 w = [ 25 ] 5 T = [ 5 25 ] w 75 75

  14. Operations on Vectors - 1  We can perform operations on them!  First: vectors. Next: generalization to matrices. octave:9> a = [1,4,-2498, 12.4] a = 1.0000 4.0000 -2498.0000 12.4000  Transpose : convert row ↔ column vector octave:10> a' ans = T = [ 6 ] 3 1.0000 v = [ 3 6 ] v 4.0000 − 2 − 2 -2498.0000 12.4000 w = [ 25 ] octave:11> a'' 5 ans = T = [ 5 25 ] w 75 75 1.0000 4.0000 -2498.0000 12.4000

  15. Operations on Vectors - 2  Sum [ 1 3 ] + [ 10 30 ] = [ 11 33 ] 2 20 22  Product with scalar 5 ∗ [ 1 3 ] = [ 5 15 ] 2 10  Inner product (also: 'scalar product' or 'dot product') n T w = ∑ ( v ,w )= v v k w k k = 1

  16. Operations on Vectors - 2  Sum [ 1 3 ] + [ 10 30 ] = [ 11 33 ] 2 20 22  Product with scalar 5 ∗ [ 1 3 ] = [ 5 15 ] 2 10  Inner product (also: 'scalar product' or 'dot product') n T w = ∑ v = [ 3 ] ,w = [ 30 ] ( v ,w )= v v k w k 1 10 k = 1 2 20 3 ] [ 30 ] 10 [ 1 2 = 1 ∗ 10 + 2 ∗ 20 + 3 ∗ 30 = 10 + 40 + 90 = 140 20

  17. Operations on Vectors - 2  Sum [ 1 3 ] + [ 10 30 ] = [ 11 33 ] 2 20 22  Product with scalar 5 ∗ [ 1 3 ] = [ 5 15 ] 2 10 octave:4> a = [1;2;3] a = 1  Inner product (also: 'scalar product' or 'dot product') 2 3 n T w = ∑ v = [ 3 ] ,w = [ 30 ] octave:5> b = [4;5;6] ( v ,w )= v v k w k 1 10 b = k = 1 2 20 4 5 3 ] [ 30 ] 6 10 [ 1 2 = 1 ∗ 10 + 2 ∗ 20 + 3 ∗ 30 = 10 + 40 + 90 = 140 octave:6> dot(a,b) 20 ans = 32 octave:7> a'*b ans = 32

  18. Operations on Vectors - 2  Sum [ 1 3 ] + [ 10 30 ] = [ 11 33 ] 2 20 22  Product with scalar 5 ∗ [ 1 3 ] = [ 5 15 ] 2 10  Inner product (also: 'scalar product' or 'dot product') n T w = ∑ v = [ 3 ] ,w = [ 30 ] ( v ,w )= v v k w k 1 10 k = 1 2 20 3 ] [ 30 ] 10 [ 1 2 = 1 ∗ 10 + 2 ∗ 20 + 3 ∗ 30 = 10 + 40 + 90 = 140 20  Outer product (also: 'vector product')

  19. Vector Indexing  Retrieve parts of vectors octave:12> a = [10, 20, 30, 40, 50, 60, 70] a = 10 20 30 40 50 60 70 octave:13> a(3) ans = 30 octave:14> a([2,4]) ans = 20 40 octave:16> a([4:end]) ans = 40 50 60 70

  20. Vector Indexing  Retrieve parts of vectors octave:12> a = [10, 20, 30, 40, 50, 60, 70] a = indexing with 10 20 30 40 50 60 70 another vector octave:13> a(3) ans = 30 octave:14> a([2,4]) ans = 20 40 special 'end' octave:16> a([4:end]) index ans = 40 50 60 70

  21. Operations on Matrices - 1  Now matrices!  Transpose :  convert each row → column vector (or convert each column→ row vector) A = [ 300 ] T = [ 300 ] 1 2 3 1 10 100 A 10 20 30 2 20 200 100 200 3 30

  22. Operations on Matrices - 1  Now matrices!  Transpose :  convert each row → column vector (or convert each column→ row vector) A = [ 300 ] T = [ 300 ] 1 2 3 1 10 100 A 10 20 30 2 20 200 100 200 3 30

  23. Operations on Matrices - 1  Now matrices!  Transpose :  convert each row → column vector (or convert each column→ row vector) A = [ 300 ] T = [ 300 ] 1 2 3 1 10 100 A 10 20 30 2 20 200 100 200 3 30

  24. Operations on Matrices - 1  Now matrices!  Transpose :  convert each row → column vector (or convert each column→ row vector) A = [ 300 ] T = [ 300 ] 1 2 3 1 10 100 A 10 20 30 2 20 200 100 200 3 30 T = [ 30 ] 1 10 B = [ 30 ] 1 2 3 B 2 20 10 20 3

  25. Operations on Matrices - 2  Sum and product with scalar : pretty much the same [ 6 ] + [ 60 ] = [ 66 ] 1 2 3 10 20 30 11 22 33 4 5 40 50 44 55 5 ∗ [ 6 ] = [ 30 ] 1 2 3 5 10 15 4 5 20 25

  26. Matrix Product  Inner product → Matrix product C = AB  C = m x n, A = m x p, B = p x n, A c j B  Each entry of C is an inner product: c ij = r i [ .. ] = [ 60 ] [ ... ... ... 10 20 6 ] 1 2 3 190 ... ... 30 40 4 5 ... ... 50

  27. Matrix Product  Inner product → Matrix product octave:22> A = [10, 20; 30, 40; 50, 60] A = C = AB 10 20 30 40  C = m x n, A = m x p, B = p x n, 50 60 A c j octave:23> B = [1,2,3;4,5,6] B  Each entry of C is an inner product: c ij = r i B = 1 2 3 [ .. ] = [ 60 ] [ 4 5 6 ... ... ... 10 20 6 ] 1 2 3 octave:24> A*B 190 ... ... 30 40 ans = 4 5 ... ... 50 90 120 150 190 260 330 290 400 510

  28. Matrix Product  Inner product → Matrix product octave:22> A = [10, 20; 30, 40; 50, 60] C = AB A = 10 20 30 40  C = m x n, A = m x p, B = p x n, 50 60 A c j Matrix size is B  Each entry of C is an inner product: c ij = r i octave:25> Btrans = B' important Btrans = 1 4 [ .. ] = [ 60 ] [ 2 5 ... ... ... 10 20 6 ] 3 6 1 2 3 190 ... ... 30 40 4 5 octave:26> A*Btrans ... ... 50 error: operator *: nonconformant arguments (op1 is 3x2, op2 is 3x2)

  29. Matrix-Vector Product  Matrix-vector product is just a (frequently occurring) special case: Ab = [ a mn ] [ = [ b n ] c m ] a 11 ... a 1n b 1 c 1 ... ... ... ... ... a m1 ...

  30. Matrix-Vector Product  Also represents a system of equations! Ax = [ a mn ] [ x n ] = [ c m ] a 11 ... a 1n x 1 c 1 ... ... ... ... ... a m1 ... a 11 x 1 + a 12 x 2 + ... + a 1n x n = c 1 a 21 x 1 + a 22 x 2 + ... + a 2n x n = c 2 ... a m1 x 1 + a m2 x 2 + ... + a mn x n = c m

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend