x = np.arange(0, 3, 0.1)
plot(x, [x ** 3 - 1 / x, 4 * x - 4], 'x', 'f(x)', legend=['f(x) = x ** 3 - 1 / x ', 'Tangent line (x=1) : y = 4 * x - 4 '])


According to the power rule and multiple rule," 3 * x ** 2 + 1 / (x ** 2) "is the derivative function of f (x).

So x == 1,f’(1) ==3 * 1 **2 + 1 / (1 ** 2) == 3 + 1 == 4,tangent line’s slope is 4.

And we know, the tangent line passes the plot (1, 0).

So the function of the line is " y == 4 * (x - 1) == 4 * x -4"

I have some problem with saving the “plot” picture, so I just screenshoted it. :sweat_smile:

I can still remember it is easy to save other “plot” pictures (eg. Statsmodel)by double-clicking the pic and clicking the “save” botton in VScode.

Is there a way to save instead of screenshoting ? :expressionless:

Hi @StevenJokes! Here is a hint you can try!

Is there a way to open it in VScode?
Or how to make it openable in VScode?
The doc is not friendly to other users. :joy:


Thanks for the great content guys :slight_smile:
but i feel like giving examples in gradients and chain rule would be really helpful

Hi @anandsm7, the gradients and chain rule are in section Feel free to do a search in the top right of our wensite as here:

1 Like

some apis:

  1. plt.gca

Get the current Axes instance on the current figure matching the given keyword args, or create one.


To get the current polar axes on the current figure:


If the current axes doesn’t exist, or isn’t a polar one, the appropriate axes will be created and then returned.

  1. axes.cla()

Clear an axes, i.e. the currently active axes in the current figure. It leaves the other axes untouched.

  1. fmts:
  • ‘-’:solid line style 实线;
  • ‘m–’:magenta dashed line style 紫红色虚线;
  • ‘g-’:green dash-dotted line style 绿色点划线;
  • 'r:'red dotted line style 红色点线

For more:


For the 2nd question in Excercises. Do we have different variables x1 and x2 or is it a single variable x ? If it’s a single variable, is it 5ex^2 that is in the equation?

Hi @akhil_teja, the x is a vector, i.e. x = [x1, x2]^T

Hi does D2L provide a way where we can validate or check our solutions for the exercises ?

Discussion is the only way now.

Hey @rammy_vadlamudi, yes! This discussion forum is great way to share your thoughts and discuss the solutions. Feel free to voice it out! :wink:

Hey guys hope u all good. I’ve found today this course. It’s quite interesting. I’m completing it in python. I’m learning mostly python for machine learning and AI applications. Even i’ve been learning how to manage to use AWS sagemaker and clouds services. But i wanted to ask a question about finding the gradient of the function. I mean question 2: It’s possible to define
a function like
import numpy as np
def(x): where x is a list
return 3x[0]**2 + 5np.exp(x[1])
and then apply numerical_limit function with following parameters(f = f(x), x =[1,1], h =0.01)
and return a list looping thought each index of the list x =[1,1]
or this logic is too dump?
If you guys can help me
I studied math in the past, but don’t know how to code with the most fresh and efficient way x)

thanks in advance

Hi @Luis_Ramirez, your logic is never dump! :wink: In most of DL framework, we decompose a complex function to each directly differentiable step and then apply the chain rule (i,e., we define all the derivative formula in code and apply chain rule). Check for more details. Besides, if you would like to see how to code from scratch, check here. Let me know if it helps!

Try adding this line to the top of the plot function:

fig = d2l.plt.figure() 

and have the plot function

return fig


def f(x)
x = np.arange(0.1, 3, 0.1)
fig = plot(x, [f(x), 4 * x-4], 'x', 'f(x)', legend=['f(x)', 'Tangent line (x=1)'])
fig.savefig("2_Prelim 4_Calc 1_Ex.jpg")