0% found this document useful (0 votes)
2 views17 pages

Lab 2

The document outlines a laboratory task for a Computer Science course at Hamdard University, focusing on using MATLAB for polynomial operations, branch statements, loops, and functions. It includes objectives, required equipment, theoretical concepts, practical exercises, and examples of MATLAB commands for polynomial evaluation and graphical representation. The lab aims to familiarize students with MATLAB's capabilities in handling complex numbers, polynomials, and control flow structures.

Uploaded by

Huzaifa Tariq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views17 pages

Lab 2

The document outlines a laboratory task for a Computer Science course at Hamdard University, focusing on using MATLAB for polynomial operations, branch statements, loops, and functions. It includes objectives, required equipment, theoretical concepts, practical exercises, and examples of MATLAB commands for polynomial evaluation and graphical representation. The lab aims to familiarize students with MATLAB's capabilities in handling complex numbers, polynomials, and control flow structures.

Uploaded by

Huzaifa Tariq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY

Hamdard Institute of Engineering & Technology


Hamdard University

DEPARTMENT OF COMPUTER SCIENCE

PROGRAM: BSCS
COURSE: NC LAB
TASK #02

SUBMITTED BY:
M.Huzaifa Bin Tariq (2348-2022)

SUBMITTED TO:
Sir Muhammad waqas pasha

Page 10
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

LAB 2
POLYNOMIAL AND PLOTS, BRANCH STATEMENTS AND
LOOPS, FUNCTIONS AND TYPES OF FUNCTIONS
USING MATLAB

OBJECTIVES:
 To become familiar with MATLAB
 Basic concept of array, matrices and vector operations
 To learn how to use branch statements on MATLAB.
 To learn how to use for and while loops on MATLAB.
 To learn how to make and use functions on MATLAB.
 To learn how to make and use multiple types functions on MATLAB.

EQUIPMENT / REQUIREMENT:
Hardware Requirement
 Personal computer.

Software Requirement
 MATLAB.

POLYNOMIAL AND PLOTS:

THEORY:

COMPLEX NUMBER

One of the most powerful features of MATLAB is the ability to do computations involving complex
numbers. We can use eitheri , or j to denote the imaginary part of a complex number, such as 3−4 i or
3+ 4 j .
FOR EXAMPLE

>> z=3-4j

z=

3.0000 - 4.0000i

Page 11
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
In the example above, a multiplication (*) sign between 4 and j was not necessary because the complex
number consists of numerical constants. However, if the imaginary part is a function or variable such as
cos (x) , we must use the multiplication sign, that is, we must type cos (x)∗j or j∗cos (x).

CONJUGATE OF A COMPLEX NUMBER

Conjugate of a polynomial is computed by using command conj().

FOR EXAMPLE

>> z=3-4j;
>> y=conj(z)

y=
3.0000 + 4.0000i

POLYNOMIALS AND ROOTS OF POLYNOMIALS

The roots of a polynomial can be found by using the MATLAB function:

r = roots(p)

Where ‘p’ is a row vector which contain the coefficients of a polynomial. It returns a column vector ‘r’
whose elements are the roots of the polynomial.

FOR EXAMPLE

Find the roots of the polynomial s2 +3 s +2=0

>> p=[1 3 2]

p=
1 3 2

>> r=roots(p)

r=
-2
-1

Page 12
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

POLYNOMIAL CONSTRUCTION FROM KNOWN ROOTS

We can compute the coefficients of a polynomial from a given set of roots with the poly(r ) function
where r is a row vector containing the roots.

FOR EXAMPLE

>> roots_p=[1 2 3 4]

roots_p =

1 2 3 4

>> p=poly(roots_p)

p=

1 -10 35 -50 24

EVALUATION OF A POLYNOMIAL AT SPECIFIED VALUES

The polyval( p , x) function evaluates a polynomial p(x ) at some specified value of the independent
variable x .

FOR EXAMPLE

>> p5=[1 -3 0 5 -4 3 2]; % These are the coefficients


>> val_minus3=polyval(p5,-3) % Evaluate p5 at x = -3. No semicolon is used here

val_minus3 =

1280

Page 13
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

MULTIPLICATION, DIVISION AND DERIVATIVE OF POLYNOMIALS

MATLAB functions for multiplication, division and derivative of polynomials are listed below following:

conv (a , b) multiplies two polynomials a and b .


[q , r ]=deconv (c , d) divides polynomial c by polynomial d and displays the quotient q and
remainder r .
polyder (p) produces the coefficients of the derivative of a polynomial p.

GRAPHICAL REPRESENTATIONS

PLOT: Linear plot

PLOT(X,Y) plots vector Y versus vector X. If X or Y is a matrix, then the vector is plotted versus the rows
or columns of the matrix, whichever line up. If X is a scalar and Y is a vector, length(Y) disconnected
points are plotted. Various line types, plot symbols and colors may be obtained with PLOT(X,Y,S) where S
is a character string made from one element from any or all the following 3 columns:

For example, PLOT(X,Y,'c+:') plots a cyan dotted line with a plus at each data point.
SUBPLOT: Create axes in tiled positions

H = SUBPLOT(m,n,p), or SUBPLOT(mnp), breaks the Figure window into an m‐by‐n matrix of small
axes, selects the p‐th axes for the current plot, and returns the axis handle. The axes are counted along the
top row of the Figure window, then the second row, etc.

For example,

SUBPLOT(2,1,1), PLOT(income)
SUBPLOT(2,1,2), PLOT(outgo)

Page 14
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
Plot income on the top half of the window and outgo on the bottom half.

FIGURE:

FIGURE, by itself, creates a new figure window, and returns its


handle. FIGURE (H) makes H the current figure, forces it to
become visible, and raises it above all other figures on the screen.

HOLD: Hold current graph

HOLD ON holds the current plot and all axis properties so that
subsequent graphing commands add to the existing graph. HOLD
OFF returns to the default mode whereby PLOT commands erase
the previous plots and reset all axis properties.

HOLD ON sets the NextPlot property of the current figure and axes to "add".
HOLD OFF sets the NextPlot property of the current axes to "replace".

USE OF ‘PLOT’ AND ‘FIGURE’ COMMANDS:

clc; close all; clear all;


t=0:0.1:30;
y=3*t;
figure
plot(t,y)
y=sin(t);
figure
plot(t,y)
y=cos(t);
figure
plot(t,y,'b.')

USE OF ‘PLOT’ AND ‘HOLD’ COMMANDS:

clc;
close all;
clear all;
t=0:0.1:30;
y=sin(t);
hold on
plot(t,y)
y=cos(t);
hold on
plot(t,y,'b.')

Page 15
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
USE OF ‘SUBPLOT’ COMMAND:

clc;
close all;
clear all;
t=0:0.1:30;
y=3*t;
subplot(3,1,1);
plot(t,y)
y=sin(t);
subplot(3,1,2);
plot(t,y)
y=cos(t);
subplot(3,1,3)
plot(t,y)

PROCEDURE:

LAB ACTIVITY
To get started, click on the icon from the desktop or choose from
the bottom menu as mention below
1. MATLAB
2. Open M-file

LAB EXERCISE:

1. Use MATLAB to compute the roots of the following


polynomials.

3 2
 p ( x )=x + 8 x +10 x +4
5 4 3 2
 p ( y )= y +7 y + 19 y +25 y +16 y + 4

2. Use MATLAB to derive the polynomials having the following roots.

 −6.5708 −0.7146+ j 0.3132 −0.7146− j 0.3132


 Two roots at x=2.00∧t hree roots at x=−3.00

3. Use MATLAB to evaluate the polynomials below at the specific values.

3 2
 p ( x )=x + 8 x +10 x +4 at x=1.25
5 4 3 2
 p ( y )= y +7 y + 19 y +25 y +16 y + 4 at y =−3.75

BRANCH STATEMENTS

Page 16
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
IF, ELSE, ELSEIF and END

An ‘if’ statement is always closed with an ‘end’ statement.

FOR EXAMPLE

n = 6; %(Assume n is a user input so it may be changed)


if n<=5
price=15
elseif n>5
price=12
end

Here the line starting elseif can be eliminated if not needed. Do not separate elseif into two words. Of
course, elseif can be repeated when necessary. Notice also in writing the foregoing script that the prompt
sign does not appear after if until end is typed.

When the if statement needs to examine the equality of two terms, use "=="as in the C language.

FOR EXAMPLE

n = 2;
if n==2,
price=17
end

The not equal operator is written as "~=,".

FOR EXAMPLE

Page 17
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
r = 2;
if r ~= 3,
vol = (4/3)*pi*r^3
end

The greater than, less than, equal or greater than, and equal or less than operators are, respectively,

>
<
>=
<=

The logical statements and and or are denoted by & and |, respectively. For example, the conditional
equation,

if g > 3 or g < 0, then a = 6

is written as

if g>3 | g<0,
a=6
end

Also, the conditional equation

if a > 3 and c < 0, b = 19

is stated as

if a>3 & c<0,


b=19;
end

The & and | operators can be used in a clustered form, for example,

if ((a==2 | b==3) & c<5)


g=l;
end

EXAMPLE 3.1

Page 18
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
Assuming two arbitrary integers, R and D, are given in the beginning of the script, write a script that prints
out only if R is divisible by D = 3.

SOLUTION

Two equivalent ways to examine if R is divisible by another number are:


(1) fix(R/D)=R/D
(2) mod(R,D)=0.
Here, fix(x) returns the integer part of the number x, while mod(x,y) returns the remainder on division of x
by y.

Therefore, a script based on (1) is:

R=45;
D=3;
if fix(R/D) == R/D,
R,
end

A script based on (2) is

R=45;
D=3;
if mod(R,D) == 0,
R,
end

LOOPS WITH for/end OR while/end

FOR/END LOOP

MATLAB has for/end and while/end loops. To illustrate a for/end loop, let us look at the following script
that calculates y = x2 - 5x - 3 for each of x = 1,2….9 in increasing order.

for x=1:9
y=x^2 - 5*x - 3
end

Notice that for is terminated by end. In the first cycle, x is set to 1, and y is calculated. In the second cycle,
x is set to 2 (with an increment of 1), and y is calculated. The same is repeated until the calculation of y is
completed for the last value of x.
If x is to be changed with a different increment, the increment can be specified between the initial and last
number as follows:

for x=l:0.5:9
y=x^2 - 5*x - 3
end

where the increment is now 0.5.

The order of calculation in the loop can be reversed as follows:

for x=9:-l:l

Page 19
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
y = x^2 - 5*x - 3
end

Here, the middle number -1 in 9:-l:l is the decrement in changing x.

It is also possible to compute for any sequence of specified values of x.

for x=[-2 0 15 6]
y = x^2 - 5*x - 3
end

Here, y is computed for x =-2 first, which is followed by x =0, 15, and 6.

The if/end statement can be inserted in the loop. In the following example, y = sin(x)
if sin (x) > 0 but y = 0 if sin(x) < 0.

for x=0:0.1:10
y=sin(x);
if y<0,
y=0;
end
y
end

In the following script, c=0 initializes the counter c to zero, x= [-8, . . ] defines an array of the numbers, and
length (x) is the length of the array x. In the for/end loop the counter c is incremented by one if x(i) is
negative. Finally, c prints out the count of the negative elements.

c=0;
x=[-8, 0, 2, 5, 7, 2, 0, 0, 4, 6, 6, 9];
for i=1: length (x)
if x(i)<0,
c=c+1;
end
end
c

The loop index can be decremented as

c=0;
x=[-8, 0, 2, 5, 7, 2, 0, 0, 4, 6, 6, 9];
for i=length(x) :-1 : 1
if x(i)<0,
c=c+l;
end
end
c

In this example, -1 between two colon operators is the decrement of the parameter i after each cycle of the
loop operation.

Page 20
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University
WHILE/END LOOP

An alternative way of writing a loop is to use the while/end; for example,

i = 1;
c=0;
x=[-8, 0, 2, 5, 7, 2, 0, 0, 4, 6, 6, -9] ;
while i<length(x)
if x(i)<0,
c=c+1;

end
i=i+1;
end
c

EXAMPLE 3.2

Write a script that removes the numbers divisible by 4 from an array x. Assume the array x is given by x=[-
8, 0, 2, 5, 7, 2, 0, 0, 4, 6, 6, 9]

SOLUTION

The script to the answer is

x=[-8, 0, 2, 5, 7, 2, 0, 0, 4, 6, 6, 9] ;
y=[];
for n=1: length (x)
if x(n)/4 - fix(x(n)/4)~=0
y=[y,x(n)];
end
end
y

In the foregoing script, fix(x(n)/4) equals the integer part of x(n)/4, so fix(x(n)/4)-x(n)/4=0 is satisfied if
x(n) is divisible by 4.
Equivalently, mod(a,b) may be used that equals zero if a is divisible by b. The following script shows
alternative programming to achieve the same end:

x=[-8, 0, 2, 5, 7, 2, 0, 0, 4, 6, 6, 9];
y=[];
for n=1:length(x)
if mod(x(n),4)~=0
y = [y,x(n)];
end
end
y

The result is
y=
2 5 7 2 6 6 9
BREAK

Page 21
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

The break terminates the execution of a for or while loop. When used in nested loops, only the immediate
loop where break is located is terminated. In the next example, break terminates the inner loop as soon as
j>2*i is satisfied once, but the loop for i is continued until i=6:

for i=1:6
for j=1:20
if j>2*i,
disp(i)
disp(j)
break,
end
end
end

Another example is.

r=0
while r<10
r = input ( 'Type radius (or -1 to stop): ');
if r< 0,
break,
end
vol = (4/3)*pi*r^3;
fprintf ('Volume %7.3f \n', vol)
end

In the foregoing loop, the radius r is typed through the keyboard. The fprintf statement is to print out vol
with a format, %7.3f, which is equivalent to F7.3 in Fortran. If 0 < r < 10, vol is computed and printed out,
but if r < 0 the loop is terminated. Also, if r < 10 is dissatisfied once, the while loop is terminated. More
explanations for input and fprintf are given in next practical.

In a programming language that has no break command, goto would be used to break a loop. MATLAB, on
the other hand, has no goto statement.

LAB EXERCISE:

1. A vector is given
A=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]
Write a script to print out the even number and odd number separately from the above vector by
using branch statements and loop.

Page 22
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

2. A vector is given:
A= [1 2 3 4 5 6 7 8 9 0]
Write a script to print out the vector content using the fprintf command in a loop such that the
printout will look like:
Vector A is
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
Print completed.

Page 23
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

FUNCTIONS AND TYPES OF FUNCTIONS

FUNCTIONS

Functions in MATLAB, which are saved as separate m-files, are equivalent to subroutines and functions in
other languages.

FUNCTION THAT RETURNS ONLY ONE VARIABLE

Let us consider a function m-file for the following equation:

3 2
2 x +7 x +3 x−1
f ( x )= 2 −x
x −3 x +5 e
Assuming the m-file is saved as demof_.m, its script is illustrated by

function y = demof_(x)
y = (2*x.^3+7*x.^2+3*x-1)./(x.^2-3*x+5*exp(-x));
Notice that the name of the m-file is identical to the name of the function, which appears on the right side
of the equality sign. In the m-file, array arithmetic operators are used, so the argument x can be a scalar as
well as a vector or matrix. Once demof_.m is saved as an m-file, it can be used in the command window or
in another m-file.
The command y = demof_(3)
yields
y=
502.1384
If the argument is a matrix, for example,
demof_([3, l; 0, -1])
the result becomes a matrix also:
ans =
502.1384 -68.4920
-0.2000 0.0568

Page 24
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

FUNCTION THAT RETURNS MULTIPLE VARIABLES

A function may return more than one variable. Suppose a function that evaluates mean and stan dard
deviation of data. To return the two variables, a vector is used on the left side of the function statement, for
example,

function [mean,stdv] = mean_st(x)


n=length(x);
mean = sum(x)/n;
stdv = sqrt(sum(x.^2)/n - mean.^2);

To use this function, the left side of the calling statement should also be a vector. The foregoing script is to
be saved as mean_st.m. Then,

x= [1 5 3 4 6 5 8 9 2 4];
[m, s] = mean_st(x)
yields
m=
4.7000
s=
2.3685

LAB EXERCISE:

3. Develop a function m-file, func_es(x), to compute the following function:


y = 0.5ex/3 -x2sinx
The argument must accept a scalar as well as a vector. Test your function by typing the following
on MATLAB:
func_es(3)
func_es([1 2 3])

Page 25
FACULTY OF ENGINEERING SCIENCES AND TECHNOLOGY
Hamdard Institute of Engineering & Technology
Hamdard University

Page 26

You might also like