#!/usr/bin/env python3
"""Auto-generated by AGI Loop cycle #1031
Task: Write a Python function that implements gradient descent to minimize f(x) = x^2 + 3x + 2
Generated: 2026-02-12T17:38:07.089434
"""

import numpy as np

def gradient_descent(f, df, x_start, learning_rate=0.1, iterations=100, tolerance=1e-6):
    x = x_start
    for i in range(iterations):
        grad = df(x)
        if np.abs(grad) < tolerance:
            break
        x -= learning_rate * grad
    return x

def f(x):
    return x**2 + 3*x + 2

def df(x):
    return 2*x + 3

if __name__ == '__main__':
    x_start = 0.0
    result = gradient_descent(f, df, x_start)
    print(f"Minimum occurs at x = {result}")
    print(f"Minimum value f(x) = {f(result)}")