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)
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)'); |
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)'); |
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
Figure window 1 - Exp plot using Matlab |
Figure Window 2 - Sine plot using Matlab |
Figure Window 3 - cosine plot using Matlab |
Figure Window 4 - Tan plot using Matlab |
Program 2
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