1 / 46

MA/CS 375

MA/CS 375. Fall 2002 Lecture 2. Motivation for Suffering All This Math and Stuff. Try the Actor demo from www.vividimage.co.uk. Office Hours. I will be available: 1:30pm to 3:00pm Tuesday and Thursdays Room 435, Humanities Building. Attendance Checkpoints.

lukas
Download Presentation

MA/CS 375

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MA/CS 375 Fall 2002 Lecture 2

  2. Motivation for Suffering All This Math and Stuff Try the Actor demo from www.vividimage.co.uk

  3. Office Hours • I will be available: • 1:30pm to 3:00pm Tuesday and Thursdays • Room 435, Humanities Building

  4. Attendance Checkpoints • Reminder I will produce a sign up sheet 9 more times this semester • Each sign in is worth 2 percent of your final grade

  5. The Goal of 375 • Introduce you all to the implementation, design of numerical methods. • We will be using Matlab as our working platform. • Very little existing math knowledge will be assumed, and any required will be introduced. • Team work.

  6. What is Matlab ? Matlab is a (mostly) text based math processing language:

  7. Close Up of Command Window This is a text prompt, just like the one in Unix.

  8. What Does Matlab Do ? • Linear algebra (vectors, matrices…) • Graph plotting • Functions • Much, much, much more. Check out: http://www.mathworks.com

  9. How To Start Matlab • Under windows: • Click on the “Start” menu button • Click on the “Matlab” menu entry • This should create a Matlab window. • Alternatively on the UNM unix system: • telnet to aix.unm.edu • type matlab • a matlab prompt should appear

  10. Example 1 a = 1 b = a/2 c = b*3 Do the math and: b = a/2 = ½ c = b*3 = 1.5

  11. Close Up of Example 1 • Notes • if you end a line with ; then matlab does not print the result • a, b and c are automatically created • if you now change b, then c will NOTbe automatically updated.

  12. Example 2 A is a matrix with 3 rows and 2 columns.

  13. Close Up of Example 2 A(2,1) = 4.12; says: set the entry of A in the 2nd row and 1st column to 4.12

  14. Example 2 (in C) • For those of you familiar with C, this is similar code (but not identical) • double A[3][2]; • A[0][0] = 2.1; • A[0][1] = 3.23; • A[1][0] = 4.12; • A[1][1] = 1.893; • A[2][0] = 7.1; • A[2][1] = 5.0;

  15. Observations from Example 2 • In Matlab you do not need to specify the type of the variables unlike C • Matlab keeps track of the size of matrices. • Beware – unlike C, Matlab stores data by column first (board explanation)

  16. Example 2 Revisited We can build A directly with the following: A is a matrix with 3 rows and 2 columns.

  17. Example 3 in C • For those of you familiar with C, this is similar code (but not identical) • double A[3][2] = [[2.1,3.23],[4.12,1.893],[7.1,5.0]];

  18. Vectors A vector is just a special case of a matrix. If you require a vector of length 3, then:

  19. Alternative ways to build vectors

  20. Alternative Ways to Build Vectors cont

  21. Now What? • So we have found a few different ways to build matrices (and vectors). • Well – we can now do some matrix-vector algebra. • The following operators are allowed: • +, -, *, .*, /, \

  22. Adding Matrices • Recall if I wish to add two matrices together: • Where i’th row, j’th column

  23. Matrix Addition in Index Notation

  24. Matrix Addition in Matlab Random demo on the board, volunteers.

  25. Notes on Matrix Addition • If I want to add two matrices A and B then • the dimensions of A and B must be the same • i.e. # rows of A = # rows of B # columns of A = # columns of B • what happens when we try to add to matrices of different dimensions in Matlab? • Guesses?

  26. Error Messages… Volunteer to explain why this is the case.

  27. Matrix Subtraction in Matlab Random demo on the board, volunteers.

  28. Result of Matrix Subtraction

  29. Matrix Multiplication • There is a specific definition of matrix multiplication. • In index notation: • i.e. for the (i,j) of the result matrix C we take the i’th row of A and multiply it, entry wise, with the j’th column of B

  30. Example 4(matrix multiplication) Volunteer?.

  31. Result of Example 4

  32. Matrix Division • We will save the / and \ operators for later.

  33. Functions in Matlab • Matlab has a number of built-in functions: • cos, sin, tan, acos, asin, atan • cosh, sinh, tanh, acosh, asinh, atanh • exp, log, sqrt • They all take matrices as arguments and return matrices of the same dimensions. • e.g. cos([1 2 3]) • For other functions type: > help matlab\elfun

  34. Example of Function of Vector

  35. Special Random Matrix Function • Say I want to create a 3 by 2 matrix with random entries, with each entry between 0 and 1: What will happen if I run this again?

  36. Customizing Matlab

  37. Matlab is Yours to Command  • It is very likely that you will need to use the same string of commands, over and over. • We can create a .m file which contains a set of commands which will be executed. • e.g.file create a file mygrid.m containing: x1d = linspace( 0, 1, Npts); y1d = linspace( 0, 1, Npts); [x2d, y2d] = meshgrid( x1d, y1d); show demo, including directory selection

  38. Calling Your Own Script

  39. Custom-Made Matlab Functions Say we wish to create a function that turns Cartesian coordinates into polar coordinates. We can create a text file with the following text. It can be called like any built in function. function [ radius, theta] = myfunc( x, y) % this is a comment, just like // in C++ % now create and evaluate theta (in radians) theta = atan2(y,x); % now create and evaluate radius radius = sqrt( x.^2 + y.^2); function end

  40. Make sure you use cdin Matlab to change to the directory containing myfunc.m the arguments to myfunccould also have been matrices – leading to two matrices being output. Custom Built Function For Matlab

  41. Constraints on Custom-Built Matlab Functions • Matlab follows similar scope rules to C. • Without resorting to the Matlab command global the only variables available inside the function are those passed as arguments to the function, or created inside the function. • Just in case you are thinking about using global – I consider it poor programming…

  42. Loops in Matlab

  43. Loops in Matlab • Much like C or Fortran we can use a loop syntax to repeat a sequence of commands. • HOWEVER, Matlab is an interpreted language and as such is not efficient in executing loop operations. • In other words, using loops in Matlab is very slow!.

  44. Loops in Matlab One variant of Matlab loop syntax is: for var=start:end commands; end

  45. Say I want to add the numbers from 1 to 10, without using the Matlab intrinsic sum. Example of a Matlab Loop

  46. Summary of Lecture 2 • We have learnt how to: • run matlab • create matrices (and hence vectors) • set the entries of a matrix • add two matrices • subtract two matrices • multiply two matrices • loops • creating custom functions..

More Related