Sie sind auf Seite 1von 10

INTRODUCTION TO MATLAB

OVERVIEW OF MATLAB
MATLAB is a high-performance language for technical computing. It integrates computation, visualization, and programming in an easy-to-use environment where problems and solutions are expressed in familiar mathematical notation. Typical uses include Math and computation Algorithm development Data acquisition Modeling, simulation, and prototyping Data analysis, exploration, and visualization Scientific and engineering graphics Application development, including graphical user interface building MATLAB is an interactive system whose basic data element is an array that does not require dimensioning. This allows you to solve many technical computing problems, especially those with matrix and vector formulations, in a fraction of the time it would take to write a program in a scalar noninteractive language such as C or Fortran. The name MATLAB stands for matrix laboratory. MATLAB was originally written to provide easy access to matrix software developed by the LINPACK and EISPACK projects. Today, MATLAB engines incorporate the LAPACK and BLAS libraries, embedding the state of the art in software for matrix computation. MATLAB has evolved over a period of years with input from many users. In university environments, it is the standard instructional tool for introductory and advanced courses in mathematics, engineering, and science. In industry, MATLAB is the tool of choice for high-productivity research, development, and analysis. MATLAB features a family of add-on application-specific solutions called toolboxes. Very important to most users of MATLAB, toolboxes allow you to learn and apply specialized technology. Toolboxes are comprehensive collections of MATLAB functions (M-files) that extend the MATLAB environment to solve particular classes of problems. Areas in which toolboxes are available include signal processing, control systems, neural networks, fuzzy logic, wavelets, simulation, and many others.

The MATLAB System


The MATLAB system consists of five main parts: Desktop Tools and Dvelopment Environment. This is the set of tools and facilities that help you use MATLAB functions and files. Many of these tools are graphical user interfaces. It includes the MATLAB desktop and Command Window, a command history, an editor and debugger, and browsers for viewing help, the workspace, files, and the search path. The MATLAB Mathematical Function Library. This is a vast collection of computational algorithms ranging from elementary functions, like sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms. The MATLAB Language. This is a high-level matrix/array language with control flow statements, functions, data structures, input/output, and objectoriented programming features. It allows both "programming in the small" to rapidly create quick and dirty throw-away programs, and "programming in the large" to create large and complex application programs. Graphics. MATLAB has extensive facilities for displaying vectors and matrices as graphs, as well as annotating and printing these graphs. It includes high-level functions for two-dimensional and three-dimensional data visualization, image processing, animation, and presentation graphics. It also includes low-level functions that allow you to fully customize the appearance of graphics as well as to build complete graphical user interfaces on your MATLAB applications. The MATLAB External Interfaces/API. This is a library that allows you to write C and Fortran programs that interact with MATLAB. It includes facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a computational engine, and for reading and writing MATfiles.

MATLAB Documentation
MATLAB provides extensive documentation, in both printed and online format, to help you learn about and use all of its features. If you are a new user, start with this Getting Started book. It covers all the primary MATLAB features at a high level, including many examples.

The MATLAB online help provides task-oriented and reference information about MATLAB features. MATLAB documentation is also available in printed form and in PDF format.

Matrices in MATLAB
A matrix is a two-dimensional array of real or complex numbers. Linear algebra defines many matrix operations that are directly supported by MATLAB. Linear algebra includes matrix arithmetic, linear equations, eigenvalues, singular values, and matrix factorizations. For more information about creating and working with matrices, see Data Structures in the MATLAB Programming documentation. This section describes the following topics: Creating Matrices Adding and Subtracting Matrices Vector Products and Transpose Vector Products and Transpose Multiplying Matrices The Identity Matrix The Kronecker Tensor Product Vector and Matrix Norms Creating Matrices Informally, the terms matrix and array are often used interchangeably. More precisely, a matrix is a two-dimensional rectangular array of real or complex numbers that represents a linear transformation. The linear algebraic operations defined on matrices have found applications in a wide variety of technical fields. (The optional Symbolic Math Toolbox extends the capabilities of MATLAB to operations on various types of nonnumeric matrices.) MATLAB has dozens of functions that create different kinds of matrices. Two of them can be used to create a pair of 3-by-3 example matrices for use throughout this chapter. The first example is symmetric: A = pascal(3) A= 1 1 1 1 2 3 1 3 6

The second example is not symmetric: B = magic(3) B= 8 1 6

3 4

5 9

7 2

Another example is a 3-by-2 rectangular matrix of random integers: C = fix(10*rand(3,2)) C= 9 2 6 4 8 7

A column vector is an m-by-1 matrix, a row vector is a 1-by-n matrix and a scalar is a 1-by-1 matrix. The statements u = [3; 1; 4] v = [2 0 -1] s=7 produce a column vector, a row vector, and a scalar: u= 3 1 4 v= 2 s= 7 Adding and Subtracting Matrices Addition and subtraction of matrices is defined just as it is for arrays, element-by-element. Adding A to B and then subtracting A from the result recovers B: A = pascal(3); B = magic(3); X=A+B X= 9 2 7 4 7 10 5 12 8 0 -1

Y=X-A Y= 8 3 4 1 5 9 6 7 2

Addition and subtraction require both matrices to have the same dimension, or one of them be a scalar. If the dimensions are incompatible, an error results: C = fix(10*rand(3,2)) X=A+C Error using ==> + Matrix dimensions must agree. w=v+s w= 9 7 6 Vector Products and Transpose A row vector and a column vector of the same length can be multiplied in either order. The result is either a scalar, the inner product, or a matrix, the outer product: u = [3; 1; 4]; v = [2 0 -1]; x = v*u x= 2 X = u*v X= 6 0 -3 2 0 -1 8 0 -4 For real matrices, the transpose operation interchanges and . MATLAB uses the apostrophe (or single quote) to denote transpose. The example matrix A is symmetric, so A' is equal to A. But B is not symmetric: B = magic(3); X = B' X=

8 1 6

3 5 7

4 9 2

Transposition turns a row vector into a column vector: x = v' x= 2 0 -1 If x and y are both real column vectors, the product x*y is not defined, but the two products x'*y and y'*x are the same scalar. This quantity is used so frequently, it has three different names: inner product, scalar product, or dot product. For a complex vector or matrix, z, the quantity z' denotes the complex conjugate transpose, where the sign of the complex part of each element is reversed. The unconjugated complex transpose, where the complex part of each element retains its sign, is denoted by z.'. So if z = [1+2i 3+4i] then z' is 1-2i 3-4i while z.' is 1+2i 3+4i For complex vectors, the two scalar products x'*y and y'*x are complex conjugates of each other and the scalar product x'*x of a complex vector with itself is real. Multiplying Matrices Multiplication of matrices is defined in a way that reflects composition of the underlying linear transformations and allows compact representation of systems of simultaneous linear equations. The matrix product C = AB is defined when the column dimension of A is equal to the row dimension of

B, or when one of them is a scalar. If A is m-by-p and B is p-by-n, their product C is m-by-n. The product can actually be defined using MATLAB for loops, colon notation, and vector dot products: A = pascal(3); B = magic(3); m = 3; n = 3; for i = 1:m for j = 1:n C(i,j) = A(i,:)*B(:,j); end end MATLAB uses a single asterisk to denote matrix multiplication. The next two examples illustrate the fact that matrix multiplication is not commutative; AB is usually not equal to BA: X = A*B X= 15 26 41 15 38 70 15 26 39

Y = B*A Y= 15 15 15 28 34 28 47 60 43

A matrix can be multiplied on the right by a column vector and on the left by a row vector: u = [3; 1; 4]; x = A*u x= 8 17 30 v = [2 0 -1]; y = v*B y= 12 -7 10

Rectangular matrix multiplications must satisfy the dimension compatibility conditions: C = fix(10*rand(3,2)); X = A*C X= 17 31 51 19 41 70

Y = C*A Error using ==> * Inner matrix dimensions must agree. Anything can be multiplied by a scalar: s = 7; w = s*v w= 14 0 -7

The Identity Matrix Generally accepted mathematical notation uses the capital letter I to denote identity matrices, matrices of various sizes with ones on the main diagonal and zeros elsewhere. These matrices have the property that AI=A and IA=A whenever the dimensions are compatible. The original version of MATLAB could not use I for this purpose because it did not distinguish between upper and lowercase letters and already served double duty as a subscript and as the complex unit. So an English language pun was introduced. The function eye(m,n) returns an m-by-n rectangular identity matrix and eye(n) returns an n-by-n square identity matrix.

Inverses and Determinants


Overview If A is square and nonsingular, the equations AX = I and XA = I have the same solution, X. This solution is called the inverse of A, is denoted by A-1, and is computed by the function inv. The determinant of a matrix is useful in theoretical considerations and some types of symbolic computation, but its scaling and roundoff error properties make it far less satisfactory for numeric

computation. Nevertheless, the function det computes the determinant of a square matrix: A = pascal(3) A= 1 1 1 1 2 3 1 3 6 d = det(A) X = inv(A) d= 1 X= 3 -3 -3 5 1 -2 1 -2 1

Again, because A is symmetric, has integer elements, and has determinant equal to one, so does its inverse. On the other hand, B = magic(3) B= 8 1 6 3 5 7 4 9 2 d = det(B) X = inv(B) d= -360 X= 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 Closer examination of the elements of X, or use of format rat, would reveal that they are integers divided by 360. If A is square and nonsingular, then without roundoff error, X = inv(A)*B would theoretically be the same as X = A\B and Y = B*inv(A) would theoretically be the same as Y = B/A. But the computations involving the

backslash and slash operators are preferable because they require less computer time, less memory, and have better error detection properties.

Das könnte Ihnen auch gefallen