using System;
namespace grad //y=x^2 用梯度下降计算最小值
{
class Program
{
static void Main(string[] args)
{
double step = 0.1; //步长
double x = 2; //起始点
double change = Math.Pow(x, 2); //y的变化值
double loss = change;
while (change > 0.00000001) //y的变化值小于某个设定值说明下降完成
{
x = x - step * 2 * x; // 沿y=2x下降
change = loss - Math.Pow(x, 2);
loss = Math.Pow(x, 2);
Console.WriteLine(x);
}
Console.WriteLine(x);
Console.ReadKey();
}
}
}
梯度下降的C#实现
最新推荐文章于 2024-01-07 16:41:36 发布