Skip to main content

Draw graph for exp, sin, cos, tan using Matlab

Program

Write a program to draw the graphs for exponential function(exp), and trigonometric functions - sine function(sin), cosine function(cos), tangent function(tan) using graph. Use the plot function in Matlab.

Solution 

There are two ways to solve this problem. While there are many ways in programming to solve a problem but I am stating only two because they are major. They are 
1) Plotting all the above functions in different windows - Plot function.
2) Using subplot and projecting the graphs in a single window - subplot function.
While for the sake of simplicity I will divide this post into two sections where there will be program 1 and explanation 1 corresponding to program 1 and program 2 - explanation 2 corresponding to program 2. 
Even if you are beginner then first refer to the first program and then go refer the program 2 so that you will get to know the difference between what plot and subplot is. Also there is a detailed explanation for each of the programs under the explanation section.
But the concepts you need to know for understanding both the programs are as follows:
1) Vectors in Matlab
2) figure function in Matlab
3) clf in Matlab
4) Elfun in Matlab(Elementary functions *Optional)
5) sin in Matlab
6) cos in Matlab
7) tan in Matlab
8) exp in Matlab
9) plot in Matlab
10) xlabel function
11) ylabel function
12) title function
13) legend function
14) subplot function
15) colon operator
16) help (This is optional. If you want to know documentation then this is useful)

Program 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
%Exponential function
%For exponential we are using in the range of 1 to 5 with interval 0.1 
x = [1:0.1:5];
figure(1);
clf;
y = exp(x);
plot(x,y,'r*-');
xlabel('x');
ylabel('exp(x)');
title('Exponential Function (exp)')
legend('exp(x)');

%Sine function
%For sine we will use in range of -pi to pi
x = [-pi:0.1:pi];
figure(2);
clf;
y = sin(x);
plot(x,y,'r.-');
xlabel('x');
ylabel('sin(y)');
title('Sine function(sin)')
legend('sin(x)');

%cos function
%For cos also we will use -pi to pi
x = [-pi:0.1:pi];
figure(3);
clf;
y = cos(x);
plot(x,y,'go-');
xlabel('x')
ylabel('cos(x)');
title('Cosine function(cos)');
legend('cos(x)');

%Tan function
%For tan also we will use -pi to pi
x = [-pi:0.1:pi];
figure(4);
clf;
y = tan(x);
plot(x,y,'b*:');
xlabel('x');
ylabel('y');
title('Tangent function(tan)');
legend('tan(x)');
I have saved this program as plotting.m on my local computer.

Explanation 1

Line 1 & 2: These lines are Matlab comments and they state that the upcoming code is going to be the code for the exponential function. And also the comment on line 2 states that the range is 1 to 5 and the interval is 0.1. If you want to know what range & interval are, then you can see them here: Volume of a solid sphere and graph for different radius using Matlab. Or if you want to get a detailed explanation then the links are as follows:
1) Range in Mathematics
2) Interval in Mathematics
Line 3: Here we are using the colon operator to generate a set of numbers in the given range. Colon operator is used to generate numbers in the given range with the required interval. To know more about the colon operator then you can refer the following(You can also use the linspace to generate the same set of numbers):
1) Matlab Colon Operator - Youtube
2)  Matlab colon operator tutorials point
So I have generated the numbers in 1,1.1,1.2,1.3,1.4,........4.6,4.7,4.8,4.9,5.0  using the colon operator. You may have a question in your mind why I have chosen only the numbers between 1 and 5 with the interval 0.1?
There is no particular reason why I have chosen the numbers in the given range. It is just only because of my convenience and you can choose your own range. And for the interval the same applies. I have chosen a very
Line 4: I have used the figure function to select the figure 1 window if it is already there and to create a figure window if it is not there.
Line 5: Clf is used to clear the current figure window. In line 4 we have selected the figure, now we are cleaning the figure window if there is any figure in the window selected using the clf command.
Line 6: We are using the exp function in Matlab to generate the y vector. y vector is an exponential vector for the corresponding x axis values.
Line 7: Here we are using the plot function to create a graph for the given x and y values we have generated. If you want to know more about the plot function then I suggest that the matlab documentation is the best, and you can get that by typing the following in the Matlab command window.
>> help plot
By typing the above you will get a detailed explanation of the plot function and also why the string is used as the third parameter in the plot function. 
The remaining part of the code is similar to the above code where we only have some changes.
The changes are the range used for different functions are different. It depends on your convenience,
And next the change is only in the third parameter of the plot function which I strongly suggest you to give a glance at the plot function official documentation to get a good idea of the same.

Program 2

This program is specifically for the subplot in matlab. To be simple subplot is like the figure function, while the major difference is that figure function selects the figure window specified while the subplot function selects the graph in the window. Here in subplot only one window with all the graphs are created while in the figure function we get the same number of windows as the number of figure functions created in the Matlab script. The program is as follows:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
%Exponential function
%All the ranges and interval are same as the program 1.
x = [1:0.1:5];
subplot(2,2,1);
y = exp(x);
plot(x,y,'r*-');
xlabel('x');
ylabel('exp(x)');
title('Exponential Function (exp)')
legend('exp(x)');

%Sine function
%For sine we will use in range of -pi to pi
x = [-pi:0.1:pi];
subplot(2,2,2);
y = sin(x);
plot(x,y,'r.-');
xlabel('x');
ylabel('sin(y)');
title('Sine function(sin)')
legend('sin(x)');

%cos function
%For cos also we will use -pi to pi
x = [-pi:0.1:pi];
subplot(2,2,3);
y = cos(x);
plot(x,y,'go-');
xlabel('x')
ylabel('cos(x)');
title('Cosine function(cos)');
legend('cos(x)');

%Tan function
%For tan also we will use -pi to pi
x = [-pi:0.1:pi];
subplot(2,2,4);
y = tan(x);
plot(x,y,'b*:');
xlabel('x');
ylabel('y');
title('Tangent function(tan)');
legend('tan(x)');
I have saved this file as plotting1.m on my local computer.

Explanation 2

This program is same as the program 1 but the two differences are: 
1) subplot has replaced the figure function in the program. I have already explained the difference in the program2 section.
2) There are no clf function. I don't know why the program is not working if I am using the clf in matlab(This might be because the image which is getting created is simply getting wiped out and a new image is getting created afterwards). If you know why then please do comment so that I can know the reason. Thanks.

Input/Output

Program 1
Four figure windows are created. They are as follows:
Exp plot
Exp function using Matlab- Matlab Elementary functions plotting
Figure window 1 - Exp plot using Matlab
Sin plot
Sine function using Matlab- Matlab Elementary functions plotting
Figure Window 2 - Sine plot using Matlab
Cos plot
coSine function using Matlab- Matlab Elementary functions plotting
Figure Window 3 - cosine plot using Matlab
Tan plot
Figure Window 4 - Tan plot using Matlab

Program 2
Plotting exp, sin, cos, tan using Matlab, subplot, Elementary functions
Plotting sin, cos, exp, tan using matlab

Try it yourself

1) We have already seen drawing the different functions in a same window. Now learn what hold will do in Matlab. Try to draw all the functions in the same window using the hold. Comment your code in the comment box below.

Final Note

I have tried to explain the every part in this program in a very easy manner. If you have any doubt or didn't understand anything then please comment or contact me. You can contact me from here: contact me
The above code was high lighted using hilite.me
keyowords: plot. subplot, xlabel, ylabel, title, legend, clf, figure, sin, cos, tan, exp

Popular posts from this blog

Making a quiz web app with python and flask

Edit : When you are creating a web app with h tml templates, then y ou will have to sa ve the html file in templates folder in the Current Wor ki ng Directory( CWD). If you save the file in the C W D directl y you will get a TemplateNotFound error. Thank you Udhay for pointing it out.   In this post we will create a quiz website using python . I will be using the flask framework . After reading this tutorial you will learn form submission , flask templates , python code in flask templates , shuffling the questions and options with the random module and few others.  Please note that this tutorial is not big as it seems to be. Some of the code has been rewritten to maintain consistency and also font size is somewhat big so that your eyes won't get stressed reading this tutorial. Also the content has not occupied the full width of the page. In this tutorial I am assuming that you are having a very basic understanding of the flask framework . Please refer the documentation

Problem 11 Project Euler Solution with python

Largest product in a grid In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07

Problem 60 Project Euler Solution with python

Prime pair sets The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property. Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime. This problem is j u st a brute force problem. If you have come here because you don't know the limit upto which you will h ave to gener ate the prime numbers t hen go ahe ad and t r y with 10,000 . When I first start ed solving the problem I chose 1 million(beca use most of the problem s on project E uler have this limit ), but it took very long for the computer to fin d the solution. After searching on the internet then I found many people choosing 10, 000 so I have changed my in put f rom 1 million to 10000 and the output was f ast. He