What Will I Learn?
Greetings, in this tutorial we will continue focusing on making, editting functions in Octave by doing elementary level tasks.
- You will learn the usage and importance of 'if' cases,
- You will learn Octave's panels and it's properties,
- You will learn function writing in Octave,
- You will learn transfering your problems into functions,
- You will learn execution and debugging of a function via command window.
Requirements
- Octave 4.2
- Basic knowledge on coding
- Basic knowledge on sequences
Difficulty
- Basic
Tutorial Contents
To summarize, the second part of function generation in Octave tutorial will be mostly related with using if statement to solve and simply our problems. In order to that we must first remeber what we have done in part 1 and then manage a way to implement if case to the problems we solved in previous part.
In our part 1 we formed a function that is capable of calculating the area and circumference of a circle. To do that we asked the user to enter a radius value and simply put that value in area, circumfrence problems. So for instance when r = 2 the area and circumfrence should be approximately 12.56m.
function [retval] = calculatecircle (x)
r = input("Enter a radius value:\n");
areaa = pi * r * r;
circumfrence = pi * 2 * r;
printf(' area : %f meters, \n circumfrence : %f meters \n ',areaa,circumfrence);
endfunction
Running the above code will give us an expected answer as shown below,
The problem with this code is it also gives same area and a minus circumference value when a negative number is entered. However in reality a radius cannot get a negative value since it represents the distance from the center of a circle its surface or border.
Thereby as a first task and usage of if statement we will implement an if part in the code capable of checking the entered number. If the entered number is negative then the function should prompt a warning message like "Radius cannot be negative!" To do that below code was written,
if (r<0)
printf("Radius cannot be negative! \n");
The above text will be displayed whenever the user enters a negative number. Now we should do calculation when the user enters a number equal or greater than zero,
function [retval] = calculatecircle (x)
r = input("Enter a radius value:\n");
if (r<0)
printf("Radius cannot be negative! \n");
else
areaa = pi * r * r;
circumfrence = pi * 2 * r;
printf(' area : %f meters, \n circumfrence : %f meters \n ',areaa,circumfrence);
endif
endfunction
Running the above code will generate an output looking like this,
So we can see that the above code calculates the area and circumfrence of a circle for all real numbers. In our following tutorials we will extend this number set into complex numbers and the calculation will be avaliable for all symetrical geometrical shapes.
Our second task is to write a function capable of calculating f(x) and g(x) as defined below,
Similar to the previous task, an if statement is required to check whether x is greater than zero or not. To fullfill that aim below code was written,
if ( x <=0 )
f=1/(1+x^2);
g=1/(1+x^2+x);
else
f=1/(1+log(x));
g=1/(x+log(x));
end
This above code is actually the algorithmic representation of the provided mathematical formulas, Like when the user enters a x value smaller or equal to zero the f(x) function becomes one over one plus the square of x. Similar process for g and when x greater than zero this time we are using log function to take the common logaritmic value of the entered value (base 10).
function [retval] = dee (input1, input2)
x=input("Enter a x value \n");
if ( x <=0 )
f=1/(1+x^2);
g=1/(1+x^2+x);
fprintf(' f : %g, \n g : %g \n ',f,g);
else
f=1/(1+log(x));
g=1/(x+log(x));
fprintf(' f : %g, \n g : %g \n ',f,g);
endif
endfunction
Running the above code will return the below output which is calculating the return value for our function upto 0.0001 percent accuracy. In our next tutorial we will continue extending functions and begin to apply for loops.
Curriculum
- Function generation in Octave from scratch part 1
- Advanced drawing with Octave
- Two and three dimensional plotting with 'Octave'
- Solve and plot your equations with Octave!
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @wodsuz I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit