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

Strategy Path planning and Destination matters in success No need to worry about in between temporary failures

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.