This week I worked on developing methods for computing the range of an univariate function. For this pupose, I spent most of my time in research; reading previous discussions on mailing lists, pull requests and wikis.
Progress Link to heading
Suppose, we want to solve the following equation in the variable x
:
sin(x) = π / 2
We can straight away state that this equations has no solutions as the range of the function sin
is -1 to 1
i.e sin(x) ∈ [-1, 1]
.
Thus, we find that the range of the function can also be used to leverage the solutions of an equation. The implementation of a function to determine the range of a function in a given domain is particularly interesting for checking whether an equation is at all solvable.
In the last meeting, Amit had suggested me to read the conversation on
Along with this, I read the following mailing lists discussions:
GSoC 2013 Idea - Find Domain / Range / Continuity / Singularity of a Function
On a general representation for singularities and infinities
All this research helped me appreciate the difficulty of the problem at hand. Also, my approach to solving this issue is heavily inspired from these discussions.
Design Link to heading
The methodology of determining the range of a function:
- Determine the points of discontinuities in the concerned domain.
- Divide the entire domain into sub-domains about the above-determined singularities.
- Use the Derivative Test to locate the critical points of the function within each sub-domain.
- Calcuate the corresponding values of the function at the critical points and the boundary values of the sub-domains.
- The extremas of the function in the entire domain are the maximum and minimum values in all the smaller domains combined.
For now, I have thought of designing 2 functions to solve this issue:
- Function to divide the domain into sub-domains.
- Function to calculate the extremum values.
$ git log Link to heading
PR#11141 : Method for solving equations using Decomposition and Rewriting PR#11164 : Intersection of certain ImageSets with Intervals
Thoughts Link to heading
After tommorrow’s meeting, I will iron out a more concrete design. My goal for next week would be to implement the above-said functions.
Looking forward to another exciting week !