a) Review the difference between script and a function.
Hints: https://www.mathworks.com/help/matlab/matlab_prog/scripts-and-functions.html
b) Write a script to calculate the uncertainty of the sum of a and b when a = 2, b = 3 and uncertainty of the a is ±0.1 and uncertainty of the b is ±0.2.
Hints: Go to New Menu in Matlab window, then click on script. Then in the script editor, type the following lines.
%%%%%%%%%%%%%%%%%%%%%% This program calculates uncertainty
% This is a comment line. In matlab comment line start with % symbol.
% When a line starts with "%", it does not perticipate into the calculation.
% It is always better to write comments.
% ALWAYS READ THE COMMENTS
% a and b - input variables
a = 2;
b = 3;
a_sigma = 0.1;
b_sigma = 0.2;
% c and c_sigma are output variable - the sum of a and B
c = a + b
% Calculate the uncertainty of the sum of a and b
% The line below is incomplete. Please complete this
c_sigma = ……………………………
%{ This is another way to add comments in your programs.
You do not need to add "%" in fron of every line.
Anyway, can you now identify the comment lines and program lines in a code?
If you can, do you understand why some program lines ends with "semicolon"(;) and some don't?
%}
Save this file as “cal_uncer_script”
Now, to run this script, go to command window and type “cal_uncer_script”;
It should print -
c =
5
c_sigma =
0.223606797749979
c) Now write a function to calculate the uncertainty of the sum of a and b, when uncertainty of the a is sigma_a and uncertainty of the b is sigma_b. Evaluate this function for a = 2, b = 3, a_sigma = ±0.1 and b_sigma = ±0.2.
Hints:
Go to New Menu in Matlab window, then click on “function”. Then in the script editor type the following lines.
function [c, c_sigma] = cal_uncer_function(a, b, a_sigma, b_sigma)
% On the left side -
% The function always start with the word "function"
% The you list all the output variables.
% On the right side -
% you write the funciton name and input variables
% For example -
% function [c, c_sigma] = cal_uncer_function(a, b, a_sigma, b_sigma)
% [ input ] function ( input )
% [ variables] name ( variables )
% This program calculates uncertainty
% Written By: Dhiman Mondal 2017-02-23
% Calculate the sum of a and b
c = a + b;
% Calculate the uncertainty of the sum of a and b
% The line below is incomplete. Please complete this
c_sigma = ……………………………;
% funciton always ends with "end" word
end
Save this file as “cal_uncer_function”
Now, to run this function, go to command window and type -
[c, c_sigma] = cal_uncer_function(2, 3, 0.1, 0.2)
It should print -
c =
5
c_sigma =
0.223606797749979
Notice that, using function you can use any number as input unlike a script which can do the same calculation but only for some specific numbers (we call it hardcoding or hardwiring).
c) Write a function to calculate the uncertainty of the sum of two columns of numbers from a data file given below. Finally plot the sum of the numbers with uncertainties.
Download the datafile: https://drive.google.com/open?id=1aXiqDt05k80BqjYGrh6cdOQcSqtUcOFk
Hints:
You may need read this: https://www.mathworks.com/help/matlab/matlab_prog/matlab-operators-and-special-characters.html
Find out what is the difference between a*a and a.*a
Go to New Menu in Matlab window, then click on “function”. Then in the script editor type the following lines.
function [c , cs] = cal_un_from_file(data)
%{ This function reads data from file
Do some calculation
and finally plot the values
%}
% Load the data file
data = load('data');
% Now you can see a variable called in "data" is workspace
% You can see that the size of "data" is 7 X 4
% That simply means "data" variable has 7 rows and 4 columns
% now, if you have to read
% a number from 1st column and 1st row you can type data(1,1)
% a number from 2nd column and 4th row you can type data(2,4)
% all numbers from 2nd column type data(:,2)
% Read the columns into variables
a = data(:,1); % Reading column 1
b = data(:,2); % Reading column 2
a_sigma = .........; % Complete this line to read column 3
b_Sigma = .........; % Complete this line to read column 4
% Sum of two numbers
c = a + b;
% uncertainty of the sum of two numbers
c_sigma = ................; % Complete this line
figure
errorbar(c,c_sigma)
xlabel('Number of Points')
ylabel(..................) % Complete this line to print ylabel 'Sum of Two numbers'
title(...................) % Complete this line to give a title
grid on
end
Now, to run this function, go to command window and type -
[c, c_sigma] = cal_un_from_file(data)
It should print
c =
4
2
3
5
8
10
6
c_sigma =
0.223606797749979
0.316227766016838
0.282842712474619
0.58309518948453
0.608276253029822
0.806225774829855
0.509901951359279
and also a figure such as ...
ZIP three matlab program files and figure, and then upload that using the form below.