Maximize a value for a semicircle of given radius
We are given a semi circle with radius R. We can take any point on the circumference let it be P.Now, from that point P draw two lines to the two sides of diameter. Let the lines be PQ and PS.
The task is to find the maximum value of expression PS2 + PQ for a given R.
Examples :
Input : R = 1 Output : 4.25 (4*1^2 + 0.25) = 4.25 Input : R = 2 Output : 16.25 (4 * 2^2 + 0.25)= 16.25
Let F = PS^2 + PQ. We know QS = 2R (Diameter of the semicircle)
-> We also know that triangle PQS will always be right angled triangle irrespective of the position of point P on the circumference of circle
1.)QS^2 = PQ^2 + PS^2 (Pythagorean Theorem) 2.) Adding and Subtracting PQ on the RHS QS^2 = PQ^2 + PS^2 + PQ - PQ 3.) Since QS = 2R 4*R^2 + PQ - PQ^2 = PS^2 + PQ => 4*R^2 + PQ - PQ^2 = F 4.) Using the concept of maxima and minima differentiating F with respect to PQ and equating it to 0 to get the point of maxima for F i.e. 1 - 2 * PQ = 0 => PQ = 0.5 5.) Now F will be maximum at F = 4*R^2 + 0.25
C++
// C++ program to find // the maximum value of F #include <bits/stdc++.h> using namespace std; // Function to find the // maximum value of F double maximumValueOfF ( int R) { // using the formula derived for // getting the maximum value of F return 4 * R * R + 0.25; } // Drivers code int main() { int R = 3; printf ( "%.2f" , maximumValueOfF(R)); return 0; } |
JAVA
// JAVA program to find // the maximum value of F import java.io.*; class GFG { // Function to find the // maximum value of F static double maximumValueOfF ( int R) { // using the formula derived for // getting the maximum value of F return 4 * R * R + 0.25 ; } // Driver code public static void main (String[] args) { int R = 3 ; System.out.println(maximumValueOfF(R)); } } // This code is contributed // by anuj_67. |
Python3
# python program to find # the maximum value of F # Function to find the # maximum value of F def maximumValueOfF (R): # using the formula derived for # getting the maximum value of F return 4 * R * R + 0.25 # Drivers code R = 3 print (maximumValueOfF(R)) # This code is contributed by Sam007. |
C#
// C# program to find the // maximum value of F using System; class GFG { // Function to find the // maximum value of F static double maximumValueOfF ( int R) { // using the formula derived for // getting the maximum value of F return 4 * R * R + 0.25; } // Driver code public static void Main () { int R = 3; Console.WriteLine(maximumValueOfF(R)); } } // This code is contributed by Sam007. |
PHP
<?php // PHP program to find the // maximum value of F // Function to find the // maximum value of F function maximumValueOfF ( $R ) { // using the formula derived // for getting the maximum // value of F return 4 * $R * $R + 0.25; } // Drivers code $R = 3; echo maximumValueOfF( $R ); // This code is contributed // by anuj_67. ?> |
Javascript
<script> // javascript program to find the // maximum value of F // Function to find the // maximum value of F function maximumValueOfF(R) { // using the formula derived for // getting the maximum value of F return 4 * R * R + 0.25; } // Driver code var R = 3; document.write(maximumValueOfF(R)); // This code is contributed by bunnyram19. </script> |
Output :
36.25
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...