先定义函数f(x):
import math
def f(x):
return x - 5 + math.sqrt(4 - x**2)
然后定义f(x)的导数:
def f_derivative(x):
return 1 + (x / math.sqrt(4 - x**2))
接下来,实现梯度下降算法来找到函数f(x)的最大值。
import random
def gradient_descent(learning_rate, iterations, initial_x):
x = initial_x
for i in range(iterations):
x -= learning_rate * f_derivative(x)
return x
最后,使用 gradient_descent() 函数来找到 f(x) 的最大值。例如:
max_x = gradient_descent(0.01, 1000, 2)
print("The maximum value of f(x) is:", f(max_x))
输出结果将为 f(x) 的最大值。
注意:梯度下降算法的成本函数必须是凸的,否则不能保证找到全局最优解。