이는 반복문을 통해서 파이썬으로 쉽게 구현할 수 있다. 이 부분이 익숙하지 않다면 앞에서 본 newton 함수를 사용하면 된다.
>>> cur_x = 3 # x = 3에서 계산 시작 >>> rate = 0.01 # 학습률 >>> precision = 0.000001 # 반복 계산에 사용할 기준(tolerance rate) >>> previous_step_size = 1 >>> max_iters = 10000 # 최대 반복 횟수 10000 >>> iters = 0 # 반복 횟수를 기록하기 위해 생성, 0부터 시작 >>> df = lambda x: 2*(x + 5) # 현재 예제에서 함수의 기울기 >>> while (previous_step_size > precision) and (iters < max_iters): >>> prev_x = cur_x # 현재 x를 이전 단계 x로 저장 >>> cur_x = cur_x - rate * df(prev_x) # 경사 하강법 계산 >>> previous_step_size = abs(cur_x - prev_x) # x값의 변화 >>> iters = iters+1 # 반복 카운터 증가 >>> print("국소 최솟값은?", cur_x) 국소 최솟값은? -4.9999518490318176