xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 2KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-14
  • 語言: C/C++
  • 標簽: c??c++??

資源簡介

c/c++ 最速下降法計算最優值 利用armijo計算最優步長

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#define?m?2
#define?epsilon???pow(10-5)

double?norm_1(double?*x);
double?fun_obj(double?*x);//原函數
void?fun_grad(double?*xdouble?*grad);//求梯度:
void?armijograd(double?*x0double?*grad);
int?main()
{
????int?i;
????double?*x;
????x?=?(double*)malloc(sizeof(double)*m);
????x[0]?=?3.0;
????x[1]?=?1.0;
????double?*grad;
????grad?=?(double*)malloc(sizeof(double)*m);
????grad[0]?=?0.0;
????grad[1]?=?0.0;

????armijograd(xgrad);
????for(i?=?0;i????????printf(“%f?“x[i]);
????free(x);free(grad);
????return?0;
}


double?fun_obj(double?*x)//原函數
{
????double?f?=?0.0;
????f?=?pow(x[0]-12)+pow(x[1]-12);
????return?f;
}


void?fun_grad(double?*xdouble?*grad)//求梯度:
{
????grad[0]?=?2*(x[0]-1);
????grad[1]?=?2*(x[1]-1);

}


double?norm_1(double?*x)
{
????double?sum?=?0.0;
????int?i;
????for(i=0;i????????sum+=x[i]*x[i];
????sum?=?sqrt(sum);
????return?sum;
}

void?armijograd(double?*x0double?*grad)
{
????int?max_iter?=?5000;???//?max?number?of?iterations
????double?EPS?=?1e-6;????????//threshold?of?gradient?norm

????double?rho?=?0.45;?double?sigma?=?0.2;??//?Armijo?pa

評論

共有 條評論