int main()
{
//double matrix[4][3] = { {4,3,1},{6,8,1},{18,26,1},{55,77,1}};
//double result[4] = {7,10,55,120};
double matrix[4][3]={ {1,4,1},{2,5,1},{5,1,1},{4,2,1}};
double result[4]={19,26,19,20};
double error_sum = 0;
double theta[3] = {0,0,0}; //theta的初值全部设为,从零开始
int i,temp;
for(temp=1;temp<=1000;temp++) //这里我没有用之前别人博客上面的参考,他的代码实际上不是run了一千遍,而是run了1000/len(data)遍。
{ //temp用来表示迭代次数,然后i表示样本的数量,每次更新temp,都要迭代一轮i
int k,j;
for(i = 0;i<3;i++) //因为训练数据是4个 所以i从0到3
{
double h = 0;
for(k = 0;k <3;k++) //k负责迭代的是x的维数,也就是theta的维数,之前说过了,二位数据要设置三维的维度
{
h = h + theta[k]*matrix[i][k]; //用累加和求预测函数h(x)并且记住,每次求完h算完残差之后,都要把h重新归零
}
error_sum = h - result[i];
for(k = 0;k<3;k++)
{