Learning Objectives: This Lab is not to be worked in groups. Each student must work this Lab. By completing this Lab exercise you should be competent in the following learning objectives:
Simple use of the GNOME Desktop.
How to enter/exit the Matlab environment.
Use Matlab arithmetic operators on scalars, row vectors, and column vectors.
Use Matlab's built-in editor.
Use of Matlab Help facility.
Symbolics using Matlab
View the course website using Mozilla Firefox.
Lock your screen to protect your work
Instructions:
Read the instructions below carefully. Each student should perform the following on an individual basis. However, you should be able to get assistance from any student in your lab. If you can't solve it, ask the TA.
Passing of the Lab will require that you answer all the questions on the lab answer sheet and submit your answers thru Compass GradeBook. Ask your lab TA how you can submit your answers.
Fill out the Questionnaire (Part 1 on the answer sheet). This information will be used by your TA to set up your Lab groups and Lab activities.
Log onto an EWS account and follow the instructions for each of the next five sections.
Using your mouse, left click the Applications menu (located at the top of the screen) then choose EWS Software and finally Matlab.
Wait for the Matlab prompt ">>" to appear and then
type the following commands:
(When entering commands, don't
include the ">>" symbol.)
Matlab works like a high powered hand calculator. Type the
following commands at the Matlab prompt:
>> 1+1
>>
1.0 + 1.0
>> 1.0e0 + 1.0e0
You should see,
Therefore , Matlab doesn't distinguish between the integer 1 and the decimal representation 1.0 and scientific notation 1.0e0 . The numbers 1 or 1.0 or 1.0e0 are called scalars in Matlab ( so 2, 2.0 and 2.0e0 are the same scalar too and 101.101 and 1.01101e2 are also the same Matlab scalars).
On the answer sheet fill in the blanks with the correct answers
for questions 1 - 5.
If the answer gives a Matlab error message,
don't write down the entire message, just fill in the blanks with the
word ERROR.
Before you type the
following make sure to first type
>> format short e
at
the Matlab prompt.
1. >> 1 / 3
2. >> 1 \ 3
3.>> 2^5
4. >> 2.0e0 - 3.0e1 * 5.0e1
5.>> (2.0e0 - 3.0e1) * 5.0e1
Constants in Matlab are literal 1, 1.0 , 1.0e0 or symbolic , like "pi" . At the Matlab prompt type:
>> pi
Note that your answer is incorrect since
the decimal expansion for pi is infinite. This is an important point
concerning Matlab---Matlab does not implement inifinite precision
arithmetic. The difference between Matlab's value and the correct
value of pi is called round-off error
(
http://mathworld.wolfram.com/RoundoffError.html ) . However we are
not "seeing" the full precision of Matlab. Use the format
command to see all the digits of Matlab's internal representation of
pi .
>> format long e
>>pi
Using Help
If you want to know the details of any Matlab command xxx (or
function yyy) type doc xxx (or doc yyy), so type,
>> doc format
You can also get to Matlab Help by using the Matlab Help
facility. For example, on the Matlab Menu Bar, click Help. Next click
on "Product Help" in the drop-down list. Finally, type
"format" in the search box and press the Enter key on your
keyboard).
Matlab has other constants, such as i (imaginary , in Matlab you
can also use j instead of i) , Inf (infinity) , and NaN (which means
Not a number )
On the answer sheet answer questions 6-20.
6.>> Inf + 1
7.>> Inf - 1
8.>> 1 / Inf
9.>> Inf / Inf
10.>> 0 * Inf
11.>> (-1) * Inf
12.>> Inf - Inf
13.>> 1 / 0
14.>> -1 / 0
15.>> i * i
16.>>
format short
>> 1 + 2*i
17.>>
1 + 2i
18.>> (1 + 2i) +
(3 + 4i)
19.>> (1 + 2i)
* (3 + 4i)
20.>> (1 +
2i) / (3 + 4i)
To make a list in Matlab use a pair of square brackets [ ] .
For example at the Matlab command prompt type,
>> [ ]
Ok
that's the empty list,
>> [ 1 2 3 4 ]
>> [ 1 2 3 4
[ 5 6 7 8]]
You can optionally use the comma as a separator rather
than a space (blank).
>> [1, 2, 3 ,4]
>> [ [1, 2,
3, 4],[5, 6, 7, 8] ]
or
>> [ 1 2, 3 , 4]
The lists
above are examples of row vectors (row lists). In Matlab you can also
make column lists using the semi-colon.
>> [1 ; 2 ; 3 ;
4]
You can change a row vector into a column vector and
vice versa using the apostrophe operator.
>> [ 1 2 3 4]'
>>
[ 1 ; 2 ; 3 ; 4]'
In the future we will dicuss how you can
create tables of values (called matrices) in Matlab. We will
also apply commas/blanks and semi-colons to tables.
The general
rule for comma/blank (example [xxx , yyy]) and semi-colon [xxx ; yyy
] in Matlab is the following:
the comma or blank means paste the
value yyy to the right of xxx whereas a semicolon means paste the
value yyy below xxx.
However, the new vector (or table) must be a
full rectangle otherwise Matlab will generate an error. For example
type,
>> [ 1 2 3 4 ; 5]
Okay it's the future, so lets
do a table,
>> [ 1 2 3 ; 4 5 6]
Important: The
length of a vector the number of values it holds. The size
of a list (vector) or table (matrix) is the number of rows by number
of columns.
You can add two vectors if and only if they are of the
same size, that is they have the same number of rows and the same
number of columns. For example,
>> [ 1 2 3] + [ 4 5 6]
but
not,
>> [ 1 2 3] + [ 4 5]
The Matlab colon operator
is useful in creating lists,
>> 1 : 4
>> .5 :
2.5
So a : b means create a list by starting at a and keep adding
1 until you get to b. But what if b is not an integer multiple of a?
You will stop before you exceed b.
>> 1 : 2.5
1 is the
default stepsize for the colon operator, but you can choose your own,
for example for a step size of 2 type,
>> 1 : 2 : 7
You
can also choose a negative stepsize,
>> 7 : -2 : 1
On
the answer sheet answer questions 21-26.
21.>>
[ 1 2 3]' (that's an apostrophe not one double-quote character
on your keyboard)
22.
>> [1; 2; 3] + [4; 5; 6]
23.>> [1; 2; 3] + [1 2 3]
24.>> [ [1; 2; 3], [1 2 3]' ]
25.>> x = -1 : 3
26.>> x = 1 : -3 : 7
Matlab variables are likened to drawers in your desk. They(the
drawers) have a loction and hold stuff. To create a variable, use an
assignment statement like,
>> x = [ 1 2 3]
Now to dump
the stuff out of your drawer just type,
>> x
Its not the
same as emptying your drawer since the the stuff is still there, type
again,
>> x
Important: An assignemnt statement
works this way, evaluate what's on the right hand side of the equals
and then assign the results of the evaluation to the variable on the
left hand side of the equals sign. For example type,
>> [ 1
2 3] = x
which doesn't work since the varible must be on the
left hand side of the equals.
Evaluation of the right hand side
means use the current values of the variables, for instance, if x was
assigned [ 1 2 3] then typing,
>> y = x + [ 1 2 3]
means
, evaluate [ 1 2 3] + [ 1 2 3] ( which is [ 2 4 6] ) and then assign
[ 2 4 6] to the variable y.
As a note, when you type,
>>
[ 1 2 3]
since you haven't used an assignment statement (=) Matlab
evaluates the expression and assigns the results to the variable ans
.
ans =
1 2 3
You can treat ans as any other
variable,
>> ans
1 2 3
On the answer sheet answer
questions 27-29.
27.>> x = [1 1 1];
>> x =
x + [1 1 1]
28. >> x
29.>> y = [x, 2 3 4]
A Matlab function is a sequence of Matlab statements (the code) . These Matlab statements are evaluated sequentially, using the input values (if any) provided in the call to the function. The function then may return a value or values. Functions differ from scripts in that all function variables are local to the function. That is, the variables in a function can't been seen or modified in the Matlab command window.
The basic Math functions you find on your hand calculator are
included in Matlab for example,
>> sin( pi/2) (formally when
we type this and hit the Enter key in programming terminology we say
we "call" the sin function)
>> exp (1) ( e1)
>>
log( exp(1)) (natural log, that is, log base e, standard math
notation is ln)
>> log10(10) ( log base 10)
>>
abs(-1) ( absolute value)
>> sqrt( 4) (square root)
If you forget or want to get more details as to what these
functions do, you can use Matlab Help or type help xxx at the Matlab
command window.
Matlab has innumerably many functions. Consider a
few we will use later this semester.
On the answer sheet answer questions 30-42 .
30.>>
x = linspace(-1, 1, 4)
31.>> x = linspace(0, 5, 1000);
(don't forget this semi-colon, it means suppress out to screen)>>
min(x)
32.>> max(x)
33.>> x = [1 3 5];
>>
sum(x)
34.>> sum([1; 3; 5])
35.>> z = [1 2 3; 4 5 6];
>>
sum(z)
36. >> x = [1 3 6 12];
>>
diff(x)
37.>> x = [1 2 3];
>>
mean([1 2 3])
38.>> x = [1 2 3];
>>
median(x)
39.>> x = [1 2 3 4];
>>
median(x)
40.>> x = [1 2 3 4];
>>
cumsum(x)
41.>> sqrt(-1)
42.>> abs(1 + 2i)
All Matlab programs are either scripts or functions. In this part
of Lab 1 we will write a script. In Lab 2 we will write a function
and compare the differences between functions and scripts.
A
MATLAB script file contains any Matlab command you can enter at the
Matlab prompt.
To write a script you first open the Matlab editor
using the "edit" command. Then after your type in your code
(Matlab statements) you save your file. Script files can have any
name you choose but their file extension must be ".m". To
execute a script file, while in the Matlab environment, type in the
name of the script file.
All the commands (but not comments ) in a script file are executed. The execution starts with the first command at the top of the file and proceeds sequentially downward. A comment is anything (text, numbers, ...) that follows (on the same line) the "%" symbol. Comments are informative messages programmers include to help remind themselves and explain to others what the code is trying to accomplish.
You may choose to comment a script file. A comment is not executable but gives information for the programmer.
Open the Matlab editor by typing (use your last name not "lastname")
>> edit lastname.m
If you are asked whether to create the file, choose yes.
in the Matlab command window. Type the following Matlab commands into ".m" and click File then select Save or Save AS from the menu.
% This is a comment. % A comment begins with a percent symbol. % All text following a percent symbol is ignored when the script is % executed. clc % Command to clear the Matlab screen. r = 4; x = [1 2 3] % No semicolon here y = sin(x); y

On the answer sheet answer questions 43-50 .
43. Before we run the script file, in the Matlab environment, enter the who command, which lists all your variables:
>> who
List the variables: (Write "Nothing" if no variables appear)
44. Now type the following,
>> clear >> who
List the variables:
45. Next type,
>> r = 1; >> who
List the variables:
>> r
46.
What is the value of r? _________
Use the "what" system command to make sure that you have correctly saved your lastname.m file.
>> what (this lists the .m and .mat files in your directory)
If you don't see the "lastname" file ask your TA for help before you proceed.
47. Run the script by typing your last name at the prompt.
Write what is displayed on your screen:
48. Type
>>r
What is the value of r? _________
49. So, can running a script alter the value of a workspace variable? Y / N
50. Again, type
>> who
List the variables in your workspace:
Like Mathematica, Matlab can be used to perform symbolic
differentiation, integration and to compute limits. Symbolic
operations like differentiation, integration or limits require that
we tell Matlab which symbolic variables are in use in our formula. To
do this we need to use the syms command (not to be confused
with "The Sims").
Example
1: Find the indefinite integral of x2 with respect to x
>>
syms x ( we tell Matlab that x is a symbolic variable not a variable
in the sense discussed above in Part 4)
>> int(x*x,x) ( the
first argument in the call to the int function is x*x and the second
argument is x)
When there is no ambiguity, you can omit the argument that lists
the symbolic variable. Type,
>> int(x*x)
The result is symbolic so you can use the result is the input to
another function. For example, type,
>> result =
int(x^2,x)
Let's check our answer by differentiating with respect
to x
>> diff(result,x,1) ( 1 means first derivative)
or
since there is only one symbolic variable in result and there is no
ambiguity,
>> diff(result)
Example 2: find the limit of x/x as x goes to 0
>>
limit(x/x, x, 0)
Example 3: The formula may contain non-symbolic variables as
in,
>> a = 2.5
>> solution = int(a*x,x)
On the answer sheet answer questions 51-53 .
51. Compute the derivative of t3 with respect to t,
>> syms t
Note: When you execute the syms
command, you may see a page of red text. If you do, please restart
Matlab.
Fill in the blank with Matlab code to call the diff function to compute the second derivative of t3. You must use the diff function.
>> solution =
_______________________________ (The solution should be
6t, but you should write the command
used to find the solution.)
52. Write the result of executing the following code,>>
syms y
>> limit(sin(y) / y, y, 0)
53. Write the result of executing the following code,>>
syms z(this is called the
fourth derivative of sin(z) with respect to
z)
>> diff(sin(z), z, 4)
You can Exit matlab now by typing
>> exit
at the Matlab prompt ">>" .
On the answer sheet answer questions 54 - 55.
54. Find in the course syllabus: Find the grade range(in points) for an A- grade for CS101:
55. Click the "Staff " hyper-link: What is the email address of your lab TA?
For your reference, the course website is at:
http://www.ews.uiuc.edu/~cs101/
Although some lab work is done in groups, the MPs(machine problems) must be worked individually. It is the students responsibility to make sure that his/her code is not copied since this would constitute cheating--- see Lecture 0 of the class notes. When you are working on your MP and have to leave the lab for a brief time, you should choose Lock Screen from the System menu at the top of the screen. When you come back into the lab, click on the computer screen and type your password to unlock the terminal.
To complete the first Lab activity you should Lock Screen and then unlock the screen again. Once you have done that, minimize all the windows on the screen so the desktop is showing.
In question 56 of your answer sheet, you should place a screenshot of your computer screen. Do this by either pressing the “Prt Sc” key on your keyboard, or by choosing Applications->Accessories->Take Screenshot from the main menu. Your screenshot must be from a Linux EWS workstation.
56. Follow the instructions in Part 9.
Submit the lab 1 answer
sheet on Compass and submit your screenshot on Compass as a
separate attachment along with your lab 1 answer sheet.
Log out: Choose "Log Out" from the System menu.
NEVER leave your computer without logging out since someone else
entering the lab after you would have access to all your files.
Congratulations you have just finished Lab #1 !!!