Skip to content
Related Articles

Related Articles

Improve Article

Area of Largest rectangle that can be inscribed in an Ellipse

  • Last Updated : 16 Mar, 2021
Geek Week

Given an ellipse, with major axis length 2a & 2b. The task is to find the area of the largest rectangle that can be inscribed in it.
Examples
 

Input: a = 4, b = 3
Output: 24

Input: a = 10, b = 8
Output: 160

 

 

Approach
Let the upper right corner of the rectangle has co-ordinates (x, y)
Then the area of rectangle, A = 4*x*y.
Now, 
 



Equation of ellipse, (x2/a2) + (y2/b2) = 1 
Thinking of the area as a function of x, we have 
dA/dx = 4xdy/dx + 4y
Differentiating equation of ellipse with respect to x, we have 
2x/a2 + (2y/b2)dy/dx = 0,
so, 
dy/dx = -b2x/a2y
and 
dAdx = 4y – (4b2x2/a2y)
Setting this to 0 and simplifying, we have y2 = b2x2/a2.
From equation of ellipse we know that, 
y2=b2 – b2x2/a2
Thus, y2=b2 – y2, 2y2=b2, and y2b2 = 1/2
Clearly, then, x2a2 = 1/2 as well, and the area is maximized when 
x= a/√2 and y=b/√2
So the maximum area Area, Amax = 2ab 
 

Below is the implementation of the above approach: 
 

C++




// C++ Program to find the biggest rectangle
// which can be inscribed within the ellipse
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the area
// of the rectangle
float rectanglearea(float a, float b)
{
 
    // a and b cannot be negative
    if (a < 0 || b < 0)
        return -1;
 
    // area of the rectangle
    return 2 * a * b;
}
 
// Driver code
int main()
{
    float a = 10, b = 8;
    cout << rectanglearea(a, b) << endl;
    return 0;
}

Java




// Java Program to find the biggest rectangle
// which can be inscribed within the ellipse
 
import java.util.*;
import java.lang.*;
import java.io.*;
 
class GFG{
// Function to find the area
// of the rectangle
static float rectanglearea(float a, float b)
{
  
    // a and b cannot be negative
    if (a < 0 || b < 0)
        return -1;
  
    // area of the rectangle
    return 2 * a * b;
}
  
// Driver code
public static void main(String args[])
{
    float a = 10, b = 8;
    System.out.println(rectanglearea(a, b));
}
}

Python 3




# Python 3 Program to find the biggest rectangle
# which can be inscribed within the ellipse
 
#  Function to find the area
# of the rectangle
def rectanglearea(a, b) :
 
    # a and b cannot be negative
    if a < 0 or b < 0 :
        return -1
 
    # area of the rectangle
    return 2 * a * b
  
 
# Driver code    
if __name__ == "__main__" :
 
    a, b = 10, 8
    print(rectanglearea(a, b))
 
 
# This code is contributed by ANKITRAI1

C#




// C# Program to find the
// biggest rectangle which
// can be inscribed within
// the ellipse
using System;
 
class GFG
{
// Function to find the area
// of the rectangle
static float rectanglearea(float a,
                           float b)
{
 
    // a and b cannot be negative
    if (a < 0 || b < 0)
        return -1;
 
    // area of the rectangle
    return 2 * a * b;
}
 
// Driver code
public static void Main()
{
    float a = 10, b = 8;
    Console.WriteLine(rectanglearea(a, b));
}
}
 
// This code is contributed
// by inder_verma

PHP




<?php
// PHP Program to find the biggest
// rectangle which can be inscribed
// within the ellipse
 
// Function to find the area
// of the rectangle
function rectanglearea($a, $b)
{
 
    // a and b cannot be negative
    if ($a < 0 or $b < 0)
        return -1;
 
    // area of the rectangle
    return 2 * $a * $b;
}
 
// Driver code
$a = 10; $b = 8;
echo rectanglearea($a, $b);
 
// This code is contributed
// by inder_verma
?>

Javascript




<script>
 
// javascript Program to find the biggest rectangle
// which can be inscribed within the ellipse
 
// Function to find the area
// of the rectangle
function rectanglearea(a , b)
{
  
    // a and b cannot be negative
    if (a < 0 || b < 0)
        return -1;
  
    // area of the rectangle
    return 2 * a * b;
}
  
// Driver code
 
var a = 10, b = 8;
document.write(rectanglearea(a, b));
 
// This code contributed by Princi Singh
 
</script>
Output: 
160

 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :