Find normal at a given point on the curve

Given a curve [ y = x(A – x) ], the task is to find normal at given point ( x, y) on that curve, here A is any integer number and x, y also any integer.

Examples:

Input: A = 2, x = 2, y = 0
Output: 2y = x - 2
Since y = x(2 - x)
      y = 2x - x^2 differentiate it with respect to x
      dy/dx = 2 - 2x  put x = 2, y = 0 in this equation
      dy/dx = 2 - 2* 2 = -2
      equation  => (Y - 0 ) = ((-1/-2))*( Y - 2)
                => 2y = x -2

Input: A = 3, x = 4, y = 5
Output: Not possible
Point is not on that curve

Approach: First we need to find given point is on that curve or not if the point is on that curve then:



  1. We need to differentiate that equation that point don’t think too much for differentiation of this equation if you analyze then you find that dy/dx always become A – 2x.
  2. Put x, y in dy/dx.
  3. Equation of normal is Y – y = -(1/( dy/dx )) * (X – x).

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for find curve
// at given point
#include <bits/stdc++.h>
using namespace std;
  
// function for find normal
void findNormal(int A, int x, int y)
{
    // differentiate given equation
    int dif = A - x * 2;
  
    // check that point on the curve or not
    if (y == (2 * x - x * x)) {
  
        // if differentiate is negative
        if (dif < 0)
            cout << 0 - dif << "y = "
                 << "x" << (0 - x) + (y * dif);
  
        else if (dif > 0)
  
            // differentiate is positive
            cout << dif << "y = "
                 << "-x+" << x + dif * y;
  
        // differentiate  is zero
        else
            cout << "x = " << x;
    }
  
    // other wise normal not found
    else
        cout << "Not possible";
}
  
// Driver code
int main()
{
    // declare variable
    int A = 2, x = 2, y = 0;
  
    // call function findNormal
    findNormal(A, x, y);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program for find curve
// at given point
  
import java.io.*;
  
class GFG {
  
// function for find normal
static void findNormal(int A, int x, int y)
{
    // differentiate given equation
    int dif = A - x * 2;
  
    // check that point on the curve or not
    if (y == (2 * x - x * x)) {
  
        // if differentiate is negative
        if (dif < 0)
            System.out.print( (0 - dif) + "y = "
                + "x" +((0 - x) + (y * dif)));
  
        else if (dif > 0)
  
            // differentiate is positive
            System.out.print( dif + "y = "
                + "-x+" + (x + dif * y));
  
        // differentiate is zero
        else
            System.out.print( "x = " +x);
    }
  
    // other wise normal not found
    else
        System.out.println( "Not possible");
}
  
       // Driver code
    public static void main (String[] args) {
        // declare variable
    int A = 2, x = 2, y = 0;
  
    // call function findNormal
    findNormal(A, x, y);;
    }
}
// This Code is contributed by inder_verma..

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program for find curve
# at given point
  
# function for find normal
def findNormal(A, x, y):
      
    # differentiate given equation
    dif = A - x * 2
  
    # check that point on the curve or not
    if (y == (2 * x - x * x)):
          
        # if differentiate is negative
        if (dif < 0):
            print(0 - dif, "y =", "x"
                 (0 - x) + (y * dif))
  
        elif (dif > 0):
              
            # differentiate is positive
            print(dif, "y =", "- x +"
                        x + dif * y)
  
        # differentiate is zero
        else:
            print("x =", x)
  
    # other wise normal not found
    else:
        print("Not possible")
  
# Driver code
if __name__ == '__main__':
      
    # declare variable
    A = 2
    x = 2
    y = 0
  
    # call function findNormal
    findNormal(A, x, y)
      
# This code is contributed By
# Surendra_Gangwar

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for find curve 
// at given point 
using System;
  
class GFG
{
      
// function for find normal
static void findNormal(int A, 
                       int x, int y)
{
    // differentiate given equation
    int dif = A - x * 2;
  
    // check that point on 
    // the curve or not
    if (y == (2 * x - x * x))
    {
  
        // if differentiate is negative
        if (dif < 0)
            Console.Write((0 - dif) + "y = "
                   "x" + ((0 - x) + (y * dif)));
  
        else if (dif > 0)
  
            // differentiate is positive
            Console.Write(dif + "y = "
                          "-x + " + (x + dif * y));
  
        // differentiate is zero
        else
            Console.Write("x = " + x);
    }
  
    // other wise normal not found
    else
        Console.WriteLine("Not possible");
}
  
// Driver code
static public void Main ()
{
    // declare variable
    int A = 2, x = 2, y = 0;
      
    // call function findNormal
    findNormal(A, x, y);
}
}
  
// This code is contributed by ajit

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program for find curve 
// at given point 
  
// function for find normal 
function findNormal($A, $x, $y
    // differentiate given equation 
    $dif = $A - $x * 2; 
  
    // check that point on the 
    // curve or not 
    if ($y == (2 * $x - $x * $x)) 
    
  
        // if differentiate is negative 
        if ($dif < 0) 
            echo (0 - $dif), "y = ",
                 "x" , (0 - $x) + ($y * $dif); 
  
        else if ($dif > 0) 
  
            // differentiate is positive 
            echo $dif , "y = ",
                 "-x+" ,( $x + $dif * $y); 
  
        // differentiate is zero 
        else
            echo "x = " , $x
    
  
    // other wise normal not found 
    else
        echo "Not possible"
  
// Driver code 
  
// declare variable 
$A = 2;
$x = 2;
$y = 0; 
  
// call function findNormal 
findNormal($A, $x, $y); 
  
// This code is contributed by ajit
?>

chevron_right


Output:

2y = x-2



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.