Área del rectángulo más grande que se puede inscribir en una elipse

Dada una elipse, con eje mayor de longitud 2a y 2b . La tarea es encontrar el área del rectángulo más grande que se puede inscribir en él.
Ejemplos
 

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

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

Enfoque
Deje que la esquina superior derecha del rectángulo tenga coordenadas (x, y)
luego el área del rectángulo, A = 4*x*y .
Ahora, 
 

Ecuación de la elipse, (x 2 /a 2 ) + (y 2 /b 2 ) = 1 
Pensando en el área como una función de x , tenemos 
dA/dx = 4xdy/dx + 4y
Ecuación diferencial de la elipse con respecto a x , tenemos 
2x/a 2 + (2y/b 2 )dy/dx = 0 ,
entonces, 
dy/dx = -b 2 x/a 2 y

dAdx = 4y – (4b 2 x 2 /a 2 y)
Poniendo esto a 0 y simplificando, tenemos y 2 = b 2 x 2/ un 2 .
De la ecuación de la elipse sabemos que, 
y 2 =b 2 – b 2 x 2 /a2
Por lo tanto, y 2 =b 2 – y 2 , 2y 2 =b 2 , y y 2 b 2 = 1/2
Claramente, entonces, x 2 a 2 = 1/2 también, y el área se maximiza cuando 
x= a/√2 y y=b/√2
Entonces el área máxima Área, A max = 2ab 
 

A continuación se muestra la implementación del enfoque anterior: 
 

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>
Producción

160

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *