A Comprehensive Guide to Sagemath Derivatives

Sometimes it becomes a challenging task to find the derivative of functions by hand. That’s where computation mathematics comes into play. There are various software available but here in this article, we try to learn how can we find derivatives using sage math. 

The ‘derivative()’ and its alias ‘diff()’ is used in sage math for the computation of derivatives. In this article, we will elaborate on the first-order derivative, higher-order derivatives, derivatives at single and multiple points, partial derivatives, and derivatives of implicit functions.

First Order Derivative of a function

In sage math, we use diff or derivative functions for finding derivatives. These are built-in functions which offer the same functionality. 
To calculate the derivative of function ‘f’ w.r.t. ‘x’, we use syntax diff(f, x), where ‘f’ is the dependent variable and ‘x’ is the independent variable.

Example: Suppose we want to find the derivative of \(sin(x)\), we will use the following code:

Input:
f(x)= sin(x)
diff(f, x)
Output:
cos(x) 

If there are constants in the function, then we have to declare them along with other variables, and when we take the derivative of the dependent variable w.r.t. independent variable, the ‘diff()’ function considers other variables as constants. 

Example: Let us find the derivative of \(y = acos(x)+bsin(x)+csec(x); a,b,c = constants\), we will utilize the following code:

Input:
x, y, a, b, c = var ('x y a b c')
y = a*cos(x)+b*sin(x)+c*sec(x)
diff(y,x)
Output:
c*sec(x)*tan(x) + b*cos(x) - a*sin(x)

Higher Order Derivatives

Particular Higher Order Derivative

We can also find higher-order derivatives of functions with the syntax ‘diff(function, independent variable, order)’.
Example: Suppose we want to find 3rd order derivative of \(tan(x)\), we will use the following code:

Input:
y, x = var('y x')
f = tan(x)
diff(f,x,3)
Output:
4*(tan(x)^2 + 1)*tan(x)^2 + 2*(tan(x)^2 + 1)^2

Successive Higher Order Derivatives

The above syntax only calculates the particular order derivatives, but if we need successive derivatives up to the required order then we need another syntax.
Example: Suppose we need the first four successive derivatives of \(sin(x)\), we will utilize the following code:

Input:
y, x = var('y x')
f = sin(x)
[diff(f, x, n) for n in range(1,5)]
Output:
[cos(x), -sin(x), -cos(x), sin(x)]

Random Higher Order Derivatives In Single List

For example if we need 2nd, 5th, 96th, and 109th order derivative of \(sin(x)\) then following code can be utilized:

Input:
y, x = var('y x')
f = sin(x)
[diff(f, x, n) for n in [2,5,96,109]]
Output:
[-sin(x), cos(x), sin(x), cos(x)]

Derivatives at Points

Derivative at a single point 

Sometimes we need a derivative of a function at a particular point, this can be achieved in sage math in different ways, and here we discuss two of them. 

First, we take the derivative of the function, then we use diff(f).subs(x=point) or diff(f(x=point)). 

Example: Suppose we want to find the derivative of \(x^2\) at \(x=0\), we will use the following code:

Input:
x = var('x')
f(x) = x^2
diff(f).subs(x=0)
Output: 0

OR

Input:
x = var('x')
f(x) = x^2
diff(f(x=0))
Output: 0

Derivative at multiple Points

We can also find the derivative of functions at multiple points using the list of Python. For example, we can differentiate \(sin(x)\) at points \([0, \frac{\pi}{2}, \pi, \frac{2\pi}{4}, 2\pi]\) with following code: 

Input:
x, y = var('x y');
f = diff(sin(x),x)
[f(x=i) for i in [0,pi/2,pi, 2*pi/4, 2*pi]]
Output:
cos(x)
[1, 0, -1, 0, 1]

Partial Derivative

We can find the partial derivatives of functions with the same command ‘diff’ in sage math, If we have a function \(f(x, y)\), then ‘diff(f, x)’ will give a partial derivative of \(f\) w.r.t. \(x\), and ‘diff(f,y)’ will give partial derivative of \(f\) w.r.t. \(y\).

First Order Partial Derivatives

Example: Suppose we need derivative of \(f(x,y)=yx^2+y^2x\) w.r.t \(x\), we will apply following code: 

Input:
y, x = var('y x')
f = y*x^2+y^2*x
diff(f,x)
Output:
2*x*y + y^2

Example: The partial derivative of \(f(x,y)=yx^2+y^2x\) w.r.t. \(y\) can also be found by using the following code:

Input:
y, x = var('y x')
f = y*x^2+y^2*x
diff(f,y)
Output:
x^2 + 2*x*y

Higher Order Partial Derivatives

Higher order partial derivative can also be determined with the command ‘diff(f, x, order)’.

Example: Suppose we need third order derivative of \(f(x,y)=yx^5+y^2x^4\) w.r.t. \(x\), we will apply following code:

Input:
y, x = var('y x')
f = y*x^5+y^2*x^4
diff(f,x,3)
Output:
60*x^2*y + 24*x*y^2

A partial derivative with respect to the first variable and then with respect to a second variable can be found with the command ‘diff(f, x, y)’.

Example: Suppose we need derivative of \(f(x,y)=yx^5+y^2x^4\) w.r.t \(x\) and then w.r.t. \(y\), we will use following code: 

Input:
y, x = var('y x')
f = y*x^5+y^2*x^4
diff(f,x,y)
Output:
5*x^4 + 8*x^3*y

If we have a function ‘f(x,y)’ in which we need a partial derivative of ‘x’ of order ‘2’ first, and then derivative w.r.t to ‘y’ of order ‘2’. We can use ‘diff(f, x,x,y,y)’ or ‘diff(f, x,2,y,2)’.

Example: Suppose we need second order derivative of \(f(x,y)=yx^5+y^2x^4\) w.r.t \(x\) and then w.r.t. \(y\), we will utilize following code: 

Input:
y, x = var('y x')
f = y*x^5+y^2*x^4
diff(f,x,2,y,2)
Output:
24*x^2

Derivative of implicit functions

So far we discussed functions which are explicitly defined in terms of dependent and independent variables. We can also find the derivative of implicit functions with two methods.

Example: Suppose we want to find the \(\frac{dy}{dx}\) of \(xy^2-2xy+x=1\), this can be achieved in the following two ways:

First Method

Input:
y = function('y')(x);
f = x*y^2-2*x*y+x==1;
a=diff(f,x);
solve(a,diff(y,x))
Output:
[diff(y(x), x) == -1/2*(y(x) - 1)/x]

Second Method

In the second method, we will use the partial derivative, as we know that \(\frac{dy}{dx} = -\frac{fx}{fy}\).

Input:
def ImplicitD(f):
    fx = diff(f, x);
    fy = diff(f, y);
    return -fx/fy
x, y = var('x y');
f = x*y^2-2*x*y+x-1;
ImplicitD(f)
Output:
-1/2*(y^2 - 2*y + 1)/(x*y - x)

Both methods give different answers because the first method gives us a simplified answer while the second method did not. We can get a similar answer by adding the ‘full_simplify()’ command to the second method.

Input:
def ImplicitD(f):
    fx = diff(f, x);
    fy = diff(f, y);
    return -fx/fy
x, y = var('x y');
f = x*y^2-2*x*y+x-1;
ImplicitD(f).full_simplify()
Output:
-1/2*(y - 1)/x

Undefined Functions

Some functions are undefined at particular points such as the derivative of Abs(x) does not exist at point 0. We break Abs(x) into piecewise functions in different domains, and then we can find its derivative easily with the following code:

Input:
m = piecewise([((0, +infinity),x),((-infinity,0),-x)], var=x);
diff(m,x)
Output:
piecewise(x|-->1 on (0, +oo), x|-->-1 on (-oo, 0); x)

Rules For Differentiation in Sage Math

Sage math evaluate derivative by applying the following rules for differentiation:

Power Rule: diff(x^2) = 2*x

Sum Rule: diff(f+g) = diff(f)+diff(g)

Difference Rule: diff(f-g) = diff(f) – diff(g)

Product Rule: diff(fg) = f*diff(g)+diff(f)*g

Quotient Rule: diff(f/g) = g*diff(f)-f*diff(g)/g^2

Drill 

You can try the given below exercises and get mastery in finding the derivatives using sage math.

1. \(y = x^2+x+1;\) find \(\frac{dy}{dx}\)

2. \(y = tan(sin (x));\) find \(\frac{dy}{dx}\)

3. \(y = cos(x)+sin(x));\) find \(\frac{dy}{dx}\) at \(x=\frac{\pi}{2}\)

4. \(y = 1+cos(x);\) evaluate \(\frac{dy}{dx}\) at points \([0, \frac{\pi}{4}, \frac{\pi}{2}, \pi, \frac{3\pi}{2}, 2\pi]\)

5. \(y = ln(x^2+1);\) find 11th order derivative and also make list of first four derivative. 

6. \(x^y = e^{x-y};\) find \(\frac{dy}{dx}\)

7. \(\sqrt{x}+\sqrt{y}=\sqrt{a};\) find \(\frac{dy}{dx}\)

8. \(y^2+x^2y+ax^4 = 0;\) find \(\frac{dy}{dx}\)

9. \(x^3+x^2+xy^2+sin(y)=0;\) find \(\frac{dy}{dx}\) using partial derivatives.

1 thought on “A Comprehensive Guide to Sagemath Derivatives”

Leave a comment