Given a curve [ y = x(A – x) ], the task is to find tangent at given point (x, y) on that curve, where A, x, y are integers.
Examples:
Input: A = 2, x = 2, y = 0 Output: y = -2x - 4 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 ) = ((-2))*( Y - 2) => y = -2x -4 Input: A = 3, x = 4, y = 5 Output: Not possible Point is not on that curve
Approach:
- First find if the given point is on that curve or not.
- If the point is on that curve then, Find the derivative
- Calculate the gradient of the tangent by Putting x, y in dy/dx.
- Determine the equation of the tangent by substituting the gradient of the tangent and the coordinates of the given point into the gradient-point form of the straight line equation, where Equation of normal is Y – y = ( dy/dx ) * (X – x).
Below is the implementation of the above approach:
C++
// C++ program for find Tangent // on a curve at given point #include <bits/stdc++.h> using namespace std; // function for find Tangent void findTangent( 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 << "y = " << dif << "x" << (x * dif) + (y); else if (dif > 0) // differentiate is positive cout << "y = " << dif << "x+" << -x * dif + y; // differentiate is zero else cout << "Not possible" ; } } // Driver code int main() { // declare variable int A = 2, x = 2, y = 0; // call function findTangent findTangent(A, x, y); return 0; } |
Java
// Java program for find Tangent // on a curve at given point import java.util.*; import java.lang.*; import java.io.*; class GFG { // function for find Tangent static void findTangent( 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.println( "y = " + dif + "x" + (x * dif + y)); else if (dif > 0 ) // differentiate is positive System.out.println( "y = " + dif + "x+" + -x * dif + y); // differentiate is zero 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 findTangent findTangent(A, x, y); } } |
Python3
# Python3 program for find Tangent # on a curve at given point # function for find Tangent def findTangent(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 ( "y =" ,dif, "x" ,(x * dif) + (y)) # differentiate is positive elif dif > 0 : print ( "y =" ,dif, "x+" , - x * dif + y) # differentiate is zero else : print ( "Not Possible" ) # Driver code if __name__ = = "__main__" : # declare variable A, x, y = 2 , 2 , 0 # call function findTangent findTangent(A, x, y) # This code is contributed by # ANKITRAI1 |
C#
// C# program for find Tangent // on a curve at given point using System; class GFG { // function for find Tangent static void findTangent( 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( "y = " + dif + "x" + (x * dif + y)+ "\n" ); else if (dif > 0) // differentiate is positive Console.Write( "y = " + dif + "x+" + -x * dif + y+ "\n" ); // differentiate is zero else Console.Write( "Not possible" + "\n" ); } } // Driver code public static void Main() { // declare variable int A = 2, x = 2, y = 0; // call function findTangent findTangent(A, x, y); } } |
PHP
<?php // PHP program for find Tangent // on a curve at given point // function for find Tangent function findTangent( $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 "y = " , $dif , "x" , ( $x * $dif ) + ( $y ); else if ( $dif > 0) // differentiate is positive echo "y = " , $dif , "x+" , - $x * $dif + $y ; // differentiate is zero else echo "Not possible" ; } } // Driver code // declare variable $A = 2; $x = 2; $y = 0; // call function findTangent findTangent( $A , $x , $y ); // This code is contributed by Sachin ?> |
Javascript
<script> // javascript program for find Tangent // on a curve at given point // function for find Tangent function findTangent( A, x, y) { // differentiate given equation var 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) document.write( "y = " + dif + "x" + (x * dif + y)+ "\n" ); else if (dif > 0) // differentiate is positive document.write( "y = " + dif + "x+" + -x * dif + y+ "\n" ); // differentiate is zero else document.write( "Not possible" + "\n" ); } } // Driver code // declare variable var A = 2, x = 2, y = 0; // call function findTangent findTangent(A, x, y); // This code is contributed by bunnyram19. </script> |
Output:
y = -2x-4
Time Complexity : O(1) ,as we are not using any loop.
Auxiliary Space : O(1) ,as we are not using any extra space.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!