-
Notifications
You must be signed in to change notification settings - Fork 9
/
README
94 lines (68 loc) · 5.69 KB
/
README
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
License Information
-------------------
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful. It is given to you, hereafter referred to as the "user", "AS IS",
i.e. WITHOUT ANY WARRANTY, implied or otherwise, without even the warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
As such we, hereafter referred to as the "authors" will not be held liable for any damages whatsoever, direct or consequential resulting
from the use of the said piece of software by the user. On using the "package" you hereby agree to indemnify the author(s) against
any and all such claims. Please see the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Package Overview and included Modules
--------------------------------------
The package "com.numerical" has been designed to be of use to the user for purposes of various numerical analysis calculations.
It has the following modules:
Interpolation Methods
---------------------
Backward Interpolation - Used to find out the value of a function at a point within a set of points near the rightmost abscissa.
Forward Interpolation - Used to find out the value of a function at a point within a set of points near the leftmost abscissa.
Root Finding Methods
--------------------
Bisection Method - Used to find the real roots of a polynomial within a given closed interval where the polynomial is continuous.
This method of root finding is called a bracketed method since it encloses the root within an interval or bracket. This method is
guaranteed to converge once the initial conditions are fulfilled although it can be quite slow.
Regula Falsi Method - This method is also used to find the real roots of a continuous polynomial. It is also known as the method
of false position. For this method, the user needs to know the approximate location of the root in an interval (a,b) where the
function is continuous. Hence, this method is also known as a bracketed method. It is also guaranteed to converge.
Newton Raphson Method - This method of root finding works on the idea that if a function is both continuous and continuously differentiable,
then its tangent will intersect with the x - axis. With each iteration, this point of intersection will get close to the real root until
eventually the method converges. However, this method has a few drawbacks. First and foremost, it is NOT guaranteed to converge since
it is not a bracketed method. Secondly, the value of the derivative of the function needs to be calculated for this method to work.
Furthermore, if the inital guess of the root is too far away from the true zero, the method may not converge at all. This means the user
needs to have some idea about the nature of the function and hence the location of the root. Also, there could be such functions where
the method will not converge and may go into an infinite loop because of the inherent nature of the function.
Numerical Integration Methods
-----------------------------
Trapezoidal Rule - This method of numerical integration is based upon the idea that the area under a curve can be approximated by
subdividing the area into many small trapezoids each of a very small width h(say). The closed interval of integration [a, b] is divided
into n intervals and h = (b - a) / n . Consequently, the higher the number of intervals, the greater the accuracy of the result. It has
to be noted that this method will only work if the function is continuous on the closed interval [a, b].
Simpson's 1/3rd Rule - This algorithm takes a continuous function as input from the user along with a closed interval [a, b]
and works by approximating the area under the curve by dividing it into a series of parabolas. Three points are chosen through
which a curve is fit which is represented by a quadratic polynomial. The smaller the step size, the better the approximation
of the integral. The set of curves thus formed approximate the original polynomial that is input by the user. Again, the method will
only work if and only if the function is continuous over the closed interval [a, b].
Polynomial Module
-----------------
This class is arguably the most important module of the package since most modules are directly dependent on it. It takes from the user
the input for a polynomial and returns it for further calculations.
The dependents of the Polynomial class are:
Bisection Method Module
Regula Falsi Module
Trapezoidal Rule Module
Simpson's 1/3rd Rule Module
The aforementioned classes all extend the Polynomial class for their input functionality and for the purposes of evaluating the value of
particular polynomial at a given point.
Conclusion
----------
The implementation details and data dictionary is present as documentation in the source file for each module.
THE USER IS SUPPOSED TO CREATE AN OBJECT OF THE CLASS THEY IMPORT AND CALL THE DESIRED FUNCTION. The rest of the functionality
is abstracted by the package.We hope the user finds this piece of software useful.
Any suggestions or bugs may be sent to either of the following email addresses:
Java Package - com.numerical, version 0.8
Copyright (C) 2017 Heritage Institute of Technology, Computer Applications Center, Kolkata, West Bengal - 700107
Package Last Updated - July 22, 2017