#include<stdio.h>
float func(float x,float y)
{
return x*x+y*y;
}
float dz_dx(float x)
{
return 2*x;
}
float dz_dy(float y)
{
return 2*y;
}
void Grad(float *jizhidian,float learningrate,int Maxiter)
{
float x=2,y=3;
float dx,dy;
float loss = 1.0;
int iter_count = 0;
while(loss>0.001 && iter_count<Maxiter)
{
dx=dz_dx(x);
dy=dz_dy(y);
x = x-learningrate*dx;
y = y-learningrate*dy;
loss = func(x,y);
iter_count+=1;
printf("%d,%f\n",iter_count,loss);
}
}
int main()
{
float jizhidian[2];
int i;
Grad(jizhidian,0.001,100000);
for(i=0;i<2;i++)
{
printf("%f",jizhidian[i]);
}
}