def sigmoid_derivative(x): """Derivative of sigmoid function""" s = sigmoid(x) return s * (1 - s) # Derivative formula: sigmoid(x) * (1 - sigmoid(x)) # Test derivative test_vals = np.array([-2, -1, 0, 1, 2]) sigmoid_vals = sigmoid(test_vals) derivative_vals = sigmoid_derivative(test_vals) print("Sigmoid and its derivative:") for i, val in enumerate(test_vals): print(f" x={val:2.0f}: sigmoid={sigmoid_vals[i]:.3f}, derivative={derivative_vals[i]:.3f}") # Visualize both functions x_range = np.linspace(-6, 6, 100) y_sigmoid = sigmoid(x_range) y_derivative = sigmoid_derivative(x_range) plt.figure(figsize=(10, 4)) plt.plot(x_range, y_sigmoid, 'b-', label='sigmoid(x)', linewidth=2) plt.plot(x_range, y_derivative, 'r--', label="sigmoid'(x)", linewidth=2) plt.title('Sigmoid Function and Its Derivative') plt.xlabel('x') plt.ylabel('y') plt.legend() plt.grid(True, alpha=0.3) plt.show()