Emt Lab Manual

27
-: EXPIREMENT # 1:- INTRODUCTION TO MATLAB OBJECTIVE: The objectives of this lab session are to: (i) Become familiar with MATLAB environment (ii) Become familiar with Basic MATLAB commands (iii) Write small programs using MATLAB BACKGROUND: MATLAB is a high level computer language used for the programming of complex engineering problems. MATLAB stands for MATrix LABoratory. As the name suggests, MATLAB a plethora of functions used for different operations on matrices, where a matrix can be scalar (single element), a vector (one dimensional) or an n x m Matrix (two dimensional). In MATLAB we have many tool boxes each containing functions related to specific operations, just as we have libraries in JAVA or C language. Communications, Control System, Image processing and Image acquisition are some of the most commonly used tool boxes. MATLAB has extensive capabilities of two and three dimensional plotting. We will use these plotting facilities of MATLAB to aid in the physical interpretation of equations, particularly those related to fields and potentials. In MATLAB, there are two modes of executing a program; the first one is command line execution and the second one is M-File or DOT M (.m) file execution. For command line execution commands are entered in the command window where (.m) file, complete program is first written in a file and saved with DOT M (.m) extension. The complete program is then RUN like any other programming language. We will use DOT M files throughout this lab. BASIC TERMINOLOGY:

Transcript of Emt Lab Manual

Page 1: Emt Lab Manual

-: EXPIREMENT # 1:-

INTRODUCTION TO MATLAB

OBJECTIVE:The objectives of this lab session are to:

(i) Become familiar with MATLAB environment(ii) Become familiar with Basic MATLAB commands(iii) Write small programs using MATLAB

BACKGROUND:MATLAB is a high level computer language used for the programming of

complex engineering problems. MATLAB stands for MATrix LABoratory. As the name suggests, MATLAB a plethora of functions used for different operations on matrices, where a matrix can be scalar (single element), a vector (one dimensional) or an n x m Matrix (two dimensional).

In MATLAB we have many tool boxes each containing functions related to specific operations, just as we have libraries in JAVA or C language. Communications, Control System, Image processing and Image acquisition are some of the most commonly used tool boxes. MATLAB has extensive capabilities of two and three dimensional plotting. We will use these plotting facilities of MATLAB to aid in the physical interpretation of equations, particularly those related to fields and potentials.

In MATLAB, there are two modes of executing a program; the first one is command line execution and the second one is M-File or DOT M (.m) file execution. For command line execution commands are entered in the command window where (.m) file, complete program is first written in a file and saved with DOT M (.m) extension. The complete program is then RUN like any other programming language. We will use DOT M files throughout this lab.

BASIC TERMINOLOGY:MATLAB has some basic terms and predefined variables you should get

familiar with before going any further. One of these is the variable ans. When you type most commands to MATLAB, they will return values. You can assign these values to variables by typing in equations. For example, if you type

>>x = 5

MATLAB will print

x = 5And assign the number five to the variable x. MATLAB uses ans for any expression you don't assign to a variable. For instance, if you type

Page 2: Emt Lab Manual

>> 5

MATLAB will return

ans =

5

And assign the value 5 to the variable ans. Thus, ans will always be assigned to the most recently calculated value you didn't assign to anything else. If you terminate a command with a semi-colon, MATLAB will suppress the printing of the variable name and value resulting from the calculation. For example, if you type

>>x = 5;

MATLAB will assign the value five to the variable x, but rather than tell you it did that, it will just return another << prompt. MATLAB works with two basic types of data objects: scalars and matrices. MATLAB also has vectors. Vectors are a special case of matrices which are only 1 row by any number of columns. To assign x to be a matrix by explicitly entering the elements, you type the list of elements separated by blanks or commas surrounded by [ and ], and use semi-colons to separate the rows. For example, typing

>>x = [2 4 6 8 ; 1 3 5 7]

Results in

x = 2 4 6 8 1 3 5 7

The MATLAB workspace is defined as the collection of all the variables you have defined during the current MATLAB session.

INDEXING:At times, you will want to deal with just a part of a vector or matrix. To do

this, you need to use MATLAB's indexing facility. To get the nth element of the vector x, you type x(n). MATLAB does not use ZERO-BASED indexing (as in C/C++ or JAVA). MATLAB starts counting from one when numbering vector elements, so the first element of x is x(1) and not x(0). You can also use indices on matrices. The element in the row, jth column of x is x(i , j).

>>x = [ 2 4 6 8 ]

What is the output of following commands?>>x (1)>>x (3)>>x (0)

Page 3: Emt Lab Manual

OUTPUT & COMMENTS:

BASIC ARITHMETIC:MATLAB uses a straightforward notation for basic arithmetic on scalars. The

symbol + is used to add scalars, so x = 1 + 5 will give x the value 6. Similarly, MATLAB uses – for subtraction, * for multiplication, / for division, and ^ for exponentiation. All of these work for two scalars. In addition, you can add, subtract, multiply or divide all the elements of a vector or matrix by a scalar. For example, if x is a matrix or vector, then x+1 will add one to each element of x, and x/2 will divide each element of x by 2. all of the basic operations ( =, -, *, /, and ^) are defined to work with complex scalars.Another useful operator is the colon. You can use the colon to specify a range of numbers. Typing

>>x = 1 : 4

Will return

X= 1 2 3 4

You can optionally use a third number in between the following commands:

>>x = 8 : -1 : 5>>x = 0 : 0.25 : 1.25

Record the output. What is the function of "-1" and "0.25" in above commands?

OUTPUT AND COMMENTS:

Page 4: Emt Lab Manual

MATLAB HELP:MATLAB has a fairly good help facility. The help function knows about all

the commands listed in this manual. Typing help function will tell you the syntax for the function, i.e. what arguments it expects. It will also give you a short description of claims you are in error, try looking at the help for the functions you are using.

Check MATLAB help for PLOT, FOR, SUBPLOT, ROOTS.

>>help plot>>help for>>help subplot>>help roots

Try the following commands

>>doc plot>>doc for>>doc subplot>>doc roots

What is the difference between help and dot? What do you learn about these commands? Record your observation:

OUTPUT & COMMENTS:

POLYNOMIAL OPERATIONS:Vectors are used to represent polynomials. If you want to represent an Nth-

order polynomial, you use a length N+1 vector where the elements are the coefficients of the polynomial arranged in descending order of exponent. So, to define a polynomial (y = x2 -5x + 6) you would type:

>> y = [1 -5 6] ;

The MATLAB roots function will calculate the roots of a polynomial for you. Execute the following command

>> roots(y)

Record the output of above command; compare it with the roots of equation calculated manually.

Page 5: Emt Lab Manual

OUTPUT & COMMENTS:

Try roots command on following polynomials and record your observations:y = x2 – 4

OUTPUT & COMMENTS:

y = x5 – 3x3 + 7

OUTPUT & COMMENTS:

y = 745x9 – 384x4 + 7OUTPUT & COMMENTS:

CONTROL STRUCTURES:

Page 6: Emt Lab Manual

MATLAB includes several control structures to allow you to write programs. The "for" command allows you to make a command or series of commands be executed several times. It is functionally very similar to the for function in C or java.

FOR-LOOP:

>>for i = 1 : 4>> i>>end

Note down the output of above command. From the help find the syntax for "while" loop, Translate the above program into equivalent while loop and write down your code:

OUTPUT & COMMENTS:

You can have nested for loops.

>>for m= 1 : 3>> for n= 1 : 3>> x(m,n) = m+n*i;>>end>>end

Record the output of above program, what do you observe?

OUTPUT & COMMENTS:

IF-STATEMENT:The "if" command lets you have programs that make decisions about what

commands to execute. The basic command looks like

>>a=5;>>if a>0

Page 7: Emt Lab Manual

>> x=a^2>>end

This command will assign x to be the value of a squared, if a is positive. Again, note that it has to have an end to indicate which commands are actually parts of the if. In addition, you can define an else clause which is executed if the condition you gave the if is not true. We could expand our example above to be

>>a= -5;>>if a>0>> x = a^2>>else>> x = -a^2>>end

Try different values of a and note down your observation.

OUTPUT & COMMENTS:

We can also have "if-else if" in MATLAB

>>if a>0>> x = a^2;>>else if a = = 0>> x = i;>>else>> x = -a^2>>end

Try different values of a and note down your observation. Why we are using two end statements?

OUTPUT & COMMENTS:

Page 8: Emt Lab Manual

COMMENTS:Like any other programming language MATLAB also has provision to write

comments. In MATLAB what ever follows % mark in a line is declared as comment

% This is a comment

While doing your homework assignments make sure that you include essential comments to elaborate your program.

CONCLUSIONS:Describe your conclusions based on the objectives of this lab session:

Page 9: Emt Lab Manual

-: EXPERIMENT # 2 :-

MATLAB FUNCTIONS

OBJECTIVE:The objectives of this lab session are to:

(i) Become familiar with MATLAB Built-in functions(ii) Become familiar with, how to write USER-DEFINED function in MATLAB(iii) Write small programs using MATLAB using M-Files.

OVERVIEW:Function in MATLAB is just like method and routine, in any other language.

Every Tool Box in MATLAB has its own set of functions. In writing a program to solve a complex problem we usually use a mixture of MATLAB built-in functions and user-defied functions. We need user-defined functions to address our problem in particular or to have better and efficient implementation of a complicated algorithm.

BUILT-IN FUNCTIONS:There are several built-in function in MATLAB, we will explore some of them.

TRIGONOMETRIC FUNCTIONS:Those known to MATLAB are sin, cos, tan and their arguments should be in radians.

>>x = 5*cos(pi/6) , y = 5*sin(pi/6)

What are the commands for sin-1, cos-1, and tan-1 ?OUTPUT & COMMENTS:

Note that in MATLAB we have predefined value PI in the constant pi.

OTHER ELEMENTARY FUNCTIONS:These include sqrt, exp, log, log10Write some commands to use these functions note down the output:

Page 10: Emt Lab Manual

OUTPUT & COMMENTS:

USER-DEFINED FUNCTIONS:As told earlier, you can write your functions using M-files. There are two

classes of M-files, functions and scripts. An M-file is a function if the first word in it is a function. A function can just take several arguments or none at all, and return any number of values. The first line of the file specifies the name of the function, along with the number and names of input arguments and output values.

1) FUNCTIONS RETURNING NO VALUES:A common example of a function that doesn't return any values is one that

draws graphs. It just draws the graphs, then finishes. Here is an example of such a function. Save the following program in a file with ".m" file extension.

Function starts (t)% STARS (T) draws stars with parameter tn = t*50;plot (rand (1,n) , rand (1,n) , 'bx')% that line plots n random pointstitle ('My God, Its Full of stars!);% label the graph

You can invoke the function by typing:>>stars (5)

You are unfamiliar with some of the functions in this program; we will discuss them later on, for the moment check the output and write comments after passing different arguments to the function.

OUTPUT & COMMENTS:

Page 11: Emt Lab Manual

2) FUNCTIONS RETURNING ONE VALUENext, we look at an example of a function that returns one value. Save the

following function in M-file,

function = MY_FUNCTION (n)if n>0

Y = n^2else if n = = 0

Y = ielse

Y = -n^2end

end

on the command prompt you can invoke the function as:

>>A = 5;>>B = MY_FUNCTION (A)

Record the output of above program, try different values of A.

OUTPUT & COMMENTS:

3) FUNCTIONS RETURNING MORE THAN ONE VALUEHow can we write a function to return more than one value? Find the answer

using MATLAB help. Write a simple function returning three values.

OUTPUT & COMMENTS:

SCRIPT M-FILES

Page 12: Emt Lab Manual

As we mentioned earlier, there is a second kind of M-file. The script type M-file is just a list of commands to execute in sequence. This differs from a function M-file in that no arguments are needed. Also, the variables inside a script file are the same ones as in the main MATLAB workspace. If I have a variable named n = 1000, than execute a script that includes the line n = 2, my variable will now be 2, and not 1000. To create a script file, just create a file that contains the commands you want executed. A script file should not have the word function in the first line, and doesn't need the comments for the help command. The file name should still end in .m though.

Execute the stars program using a script M-file. What changes did you make?

OUTPUT & COMMENTS:

EXERCISE:

Write down a function factorial (n) which calculates factorial of "n" and returns the value. Test your program.

OUTPUT & COMMENTS:

Page 13: Emt Lab Manual

CONCLUSIONS:Describe your conclusions based on the objectives of this lab session:

HOMEWORK ASSIGNMENT:You can find the number of seconds it took to execute the instruction or program, using stopwatch of MATLAB. To start the stopwatch write "tic"' and to stop write "toc". For example to find the execution time of stars program, you can write

>> tic, stars(5) ,toc

1) Write a function displaying first N elements of FIBONACCI series, iteratively.2) Write another function displaying first N elements of FIBONACCI series, recursively.3) Using TIC-TOC command find out which implementation is faster? Why? (use larger values of N).

Page 14: Emt Lab Manual

-: EXPERIMENT # 3 :-

BASIC VECTOR AND MATRIX OPERATIONS USING MATLAB

OBJECTIVE:The objectives of this lab session are to:

i) Become familiar with the vector representation in MATLABii) Become familiar with the matrix representation in MATLABiii) Become familiar with the basic operations on vectors and matrices supported by MATLABiv) Analyze the conversion of different coordinate systems.

OVERVIEW:In electromagnetics we will encounter some several vectors fields. Thus to

solve electromagnetics problems in MATLAB, we should have sound understanding of how vectors are represented in MATLAB and what operations are supported in MATLAB. Also we will discuss two dimensional data structures i.e. matrices. Since MATLAB is matrix laboratory, it is efficient in performing calculations related to MATLAB. In fact, we can translate almost all of our problems in MATLAB into matrix calculations and thus avoiding the conventional FOR or WHILE loops, which are not recommended in MATLAB.

EXTRACTING BITS OF A VECTOR:Run the following command.

>>r = [1 : 2 : 6 , -1 : -2 : -7]>>r = (3 : 6)>>r (1 : 2 : 7)>>r (6 : -2 : 1)

Carefully analyze output of above commands and note down your observations.

OUTPUT & COMMENTS:

Page 15: Emt Lab Manual

TRANSPOSING:We can convert a row vector into a column vector ( and vice versa ) by a process called transposing, denoted by ' .Run the following commands and record output and observations.

>>c=[1 ; 3 ; sqrt(5) ]>>w=[1 ; -2 ; 3]>>t=w+2*c'>>T=5*w'-2*c

OUTPUT & COMMENTS:

Take transpose of >>x = [1+3i , 2-2i]i.e.>>x'What is output? Why?OUTPUT & COMMENTS:

What is the difference from the previous output? Why?OUTPUT & COMMENTS:

Page 16: Emt Lab Manual

SCALAR PRODUCT:The scalar produce is defined by multiplying the corresponding elements

together and adding the results to give a single number. Suppose we have the following vectors:

>> u= [10 -11 12]>> v= [20 ; -21 ; -22]>> w= [2 1 3]

The command for scalar produce is "*". However the vector (or matrix) dimensions must agree, i.e. 1xn vector can be multiplied with nx1 vector.Try the following commands and find out output. Write down your comments and observations.>> u * v>> u * w>> u * w'>> u * u'

Try ":*" instead of "*". What is the difference between these commands? Dot (A,B) is another command used to calculate dot produce. Try dot command on some of the above vectors.

OUTPUT & COMMENTS:

DOT DIVISION OF ARRAYS/VECTORS:There is no mathematical definition for the division of one vector by another.

However, in MATLAB, the operator ./ is defined to give element by element division. It is therefore defined for vectors of same size and type.

Page 17: Emt Lab Manual

>>a = 1:5, b= 6:10>>a./b>>a./a>>c = -2:2>>a./c>>c./c

OUTPUT & COMMENTS:

You will have encountered INF and NAN in the output of above commands. Explain them:OUTPUT & COMMENTS:

DOT POWER OF ARRAYS/VECTORS:To square each element of a vector we could, for example, do u.*u. however,

a neater way is to use the .^ operator.Try the following commands:

>> u.^2>> u.^4>> u.*w.^(-2)OUTPUT & COMMENTS:

Page 18: Emt Lab Manual

VECTOR PRODUCT:Cross (A,B) is the command used to find cross product or vector product of two vectors. Find cross product (A x B), where A = 3ux + 4uy +5uz and B = 5ux + 4uy + 3uz. Also find B x A.

OUTPUT & COMMENTS:

SIZE OF A MATRIX:We can find out the size of a matrix by command size.

>> size (A)>> size (D)>> size(A')>> size(D')

OUTPUT & COMMENTS:

SPECIAL MATRICES:MATLAB provides a number of useful built-in matrices of any desired size.Try the following matrices and write down function of each of them.>>P=ones(2,3)>>Z=zeros(2,3)>>X=eye(5)

OUTPUT & COMMENTS:

Page 19: Emt Lab Manual

EXTRACTING BITS OF MATRICES:Following commands are used to extract bits of a matrix. Try each of following command and write down your observations

>>J = [1:4 ; 5:8 ; 9:12 ; 20 0 5 4]>>J(2,3)>>J(: ,3)>>J(: ,3:3)>>J(4, : )>>J(2:3 , 2:3)

OUTPUT & COMMENTS:

MATRIX PRODUCTS:The products defined for vectors also work for matrices.Try the following commands

>>A= [5 7 9 ; 1 -3 -7]>>B= [-1 2 5 ; 9 0 5]>>x= [8 ; -4 ; 1]>>A.*B>>A*x>>x*A

Also Try.

>>B= [0 1 ; 3 -2 ; 4 2]>>C=A*B>>D=B*A>>E=B'*A'

OUTPUT & COMMENTS:

Page 20: Emt Lab Manual

CONVERSION OF COORDINATE SYSTEM:

Cylindrical- Spherical Cylindrical-Rectangular Spherical-Rectangular

z = ρcosΦr = ρsinΦz = z

x = rcosθy = rsinθz = z

x = ρsinΦcosθy = ρsinΦsinθz = ρcosΦ

z2 + r2 = ρ2

tanΦ = r/zx2 + y2 = r2

tanθ = y/xx2 + y2 + z2 = ρ2

tanθ = y/x

Let us convert the Cartesian coordinate system to cylindrical coordinate system.

>>clear>> p = 1;>> for i=0:pi/10:2*piX(p)=1*cos(i)p=p+1;end>> x=[x;x]>> p=1;>> for i=0:pi/10:2*piy(p)=1*sin(i)p=p+1;end>> y=[y;y];>>z=[zeros(1,21);ones(1,21)]

>>surf(x,y,z)

OUTPUT & COMMENTS:

Page 21: Emt Lab Manual

HOMEWORK ASSIGNMENT:Write down a program which (verify results using MATLAB built-in functions):

Transform Cartesian coordinates to spherical Transform Polar of Cylindrical coordinates to Cartesian Transform Spherical coordinates to Polar or Cylindrical Transform Cylindrical coordinates to Spherical