Hi Everyone,

I have the same issue

What you see in the printed lines is:

`print(theta_plus, theta_minus, J_plus, J_minus, gradapprox)`

`print(grad)`

`print(numerator)`

`print(denominator)`

At that point, all the previous tests had passed

Best regards

Well, if the previous tests are good, then your *gradient_check* logic must be wrong. Here’s what I get with my passing code and your print statements:

```
4.0000001 3.9999999 8.0000002 7.9999998 2.0000000011677344
2
1.167734353657579e-09
4.000000001167734
Your backward propagation works perfectly fine! difference = 2.919335883291695e-10
```

Looks like you need to check your logic for computing *gradapprox*.

The differencewe have is in gradapprox …

I can’t get it … it’s just simply `gradapprox = (theta_plus - theta_minus) / (2.*epsilon)`

I wasn’t my logic. It’s a typo in the instructions

I just left `epsilon`

(not `2 * epsilon`

) as denominator a it worked just fine

Who should I contact to so that this can be ammended on the notebook?

I think you must be mistaken somehow. I did not have this problem.

As Paul pointed out, you did not implement function correctly.

From your post,

gradapprox = (theta_plus - theta_minus) / (epsilon) =

((theta + epsilon) - (theta - epsilon))/epsilon = 2*epsilon/epsion = 2

Your gradapprox is always 2. For this exercise, accidentally, gradapprox =2. So, it can be seen that you passed this test, but actually, not.

Please revisit your implementation. You mixed up theta and J.

Yes, you’re right … and it happened to me in the next functions down the notebook. Thanks for pointing me out my typo …

FYI @paulinpaloalto

Best regards both of you