亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? optim.pas

?? Delphi 的數(shù)學控件
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
          F1 := Func(X1);
          Inc(Iter);
        end;
    if F1 < F2 then
      begin
        Xmin := X1;
        Ymin := F1;
      end
    else
      begin
        Xmin := X2;
        Ymin := F2;
      end;
    if Iter > MaxIter then
      GoldSearch := OPT_NON_CONV
    else
      GoldSearch := OPT_OK;
  end;

  procedure CreateLogFile;
  begin
    Assign(LogFile, LogFileName);
    Rewrite(LogFile);
  end;

  function Simplex(Func           : TFuncNVar;
                   X              : TVector;
                   Lbound, Ubound : Integer;
                   MaxIter        : Integer;
                   Tol            : Float;
                   var F_min      : Float) : Integer;
  const
    STEP = 1.50;  { Step used to construct the initial simplex }
  var
    P             : TMatrix;  { Simplex coordinates }
    F             : TVector;  { Function values }
    Pbar          : TVector;  { Centroid coordinates }
    Pstar, P2star : TVector;  { New vertices }
    Ystar, Y2star : Float;    { New function values }
    F0            : Float;    { Function value at minimum }
    N             : Integer;  { Number of parameters }
    M             : Integer;  { Index of last vertex }
    L, H          : Integer;  { Vertices with lowest & highest F values }
    I, J          : Integer;  { Loop variables }
    Iter          : Integer;  { Iteration count }
    Corr, MaxCorr : Float;    { Corrections }
    Sum           : Float;
    Flag          : Boolean;

    procedure UpdateSimplex(Y : Float; Q : TVector);
    { Update "worst" vertex and function value }
    begin
      F[H] := Y;
      CopyVector(P[H], Q, Lbound, Ubound);
    end;

  begin
    if WriteLogFile then
      begin
        CreateLogFile;
        WriteLn(LogFile, 'Simplex');
        WriteLn(LogFile, 'Iter         F');
      end;

    N := Ubound - Lbound + 1;
    M := Succ(Ubound);

    DimMatrix(P, M, Ubound);
    DimVector(F, M);
    DimVector(Pbar, Ubound);
    DimVector(Pstar, Ubound);
    DimVector(P2star, Ubound);

    Iter := 1;
    F0 := MAXNUM;

    { Construct initial simplex }
    for I := Lbound to M do
      CopyVector(P[I], X, Lbound, Ubound);
    for I := Lbound to Ubound do
      P[I,I] := P[I,I] * STEP;

    { Evaluate function at each vertex }
    for I := Lbound to M do
      F[I] := Func(P[I]);

    repeat
      { Find vertices (L,H) having the lowest and highest
        function values, i.e. "best" and "worst" vertices }
      L := Lbound;
      H := Lbound;
      for I := Succ(Lbound) to M do
        if F[I] < F[L] then
          L := I
        else if F[I] > F[H] then
          H := I;
      if F[L] < F0 then
        F0 := F[L];

      if WriteLogFile then
        WriteLn(LogFile, Iter:4, '   ', F0:12);

      { Find centroid of points other than P(H) }
      for J := Lbound to Ubound do
        begin
          Sum := 0.0;
          for I := Lbound to M do
            if I <> H then Sum := Sum + P[I,J];
          Pbar[J] := Sum / N;
        end;

      { Reflect worst vertex through centroid }
      for J := Lbound to Ubound do
        Pstar[J] := 2.0 * Pbar[J] - P[H,J];
      Ystar := Func(Pstar);

      { If reflection successful, try extension }
      if Ystar < F[L] then
        begin
          for J := Lbound to Ubound do
            P2star[J] := 3.0 * Pstar[J] - 2.0 * Pbar[J];
          Y2star := Func(P2star);

          { Retain extension or contraction }
          if Y2star < F[L] then
            UpdateSimplex(Y2star, P2star)
          else
            UpdateSimplex(Ystar, Pstar);
        end
      else
        begin
          I := Lbound;
          Flag := False;
          repeat
            if (I <> H) and (F[I] > Ystar) then Flag := True;
            Inc(I);
          until Flag or (I > M);
          if Flag then
            UpdateSimplex(Ystar, Pstar)
          else
            begin
              { Contraction on the reflection side of the centroid }
              if Ystar <= F[H] then
                UpdateSimplex(Ystar, Pstar);

              { Contraction on the opposite side of the centroid }
              for J := Lbound to Ubound do
                P2star[J] := 0.5 * (P[H,J] + Pbar[J]);
              Y2star := Func(P2star);
              if Y2star <= F[H] then
                UpdateSimplex(Y2star, P2star)
              else
                { Contract whole simplex }
                for I := Lbound to M do
                  for J := Lbound to Ubound do
                    P[I,J] := 0.5 * (P[I,J] + P[L,J]);
            end;
        end;

      { Test convergence }
      MaxCorr := 0.0;
      for J := Lbound to Ubound do
        begin
          Corr := Abs(P[H,J] - P[L,J]);
          if Corr > MaxCorr then MaxCorr := Corr;
        end;
      Inc(Iter);
    until (MaxCorr < Tol) or (Iter > MaxIter);

    CopyVector(X, P[L], Lbound, Ubound);
    F_min := F[L];

    if WriteLogFile then
      Close(LogFile);

    if Iter > MaxIter then
      Simplex := OPT_NON_CONV
    else
      Simplex := OPT_OK;
  end;

  function F1dim(R : Float) : Float;
{ ----------------------------------------------------------------------
  Function used by LinMin to find the minimum of the objective function
  LinObjFunc in the direction specified by the global variables X1 and
  DeltaX1. R is the step in this direction.
  ---------------------------------------------------------------------- }
  var
    I : Integer;
  begin
    for I := Lbound1 to Ubound1 do
      Xt[I] := X1[I] + R * DeltaX1[I];
    F1dim := LinObjFunc(Xt);
  end;

  function LinMin(Func           : TFuncNVar;
                  X, DeltaX      : TVector;
                  Lbound, Ubound : Integer;
                  MaxIter        : Integer;
                  Tol            : Float;
                  var F_min      : Float) : Integer;
  var
    I, ErrCode : Integer;
    R : Float;
  begin
    { Redimension global vectors }
    DimVector(X1, Ubound);
    DimVector(DeltaX1, Ubound);
    DimVector(Xt, Ubound);

    Lbound1 := Lbound;
    Ubound1 := Ubound;

    { Initialize global variables }
    LinObjFunc := Func;
    for I := Lbound to Ubound do
      begin
        X1[I] := X[I];
        DeltaX1[I] := DeltaX[I]
      end;

    { Perform golden search }
    ErrCode := GoldSearch(F1dim, 0.0, 1.0, MaxIter, Tol, R, F_min);

    { Update variables }
    if ErrCode = OPT_OK then
      for I := Lbound to Ubound do
        X[I] := X[I] + R * DeltaX[I];

    LinMin := ErrCode;
  end;

  procedure NumGradient(Func           : TFuncNVar;
                        X              : TVector;
                        Lbound, Ubound : Integer;
                        G              : TVector);
  var
    Temp, Delta, Fplus, Fminus : Float;
    I                          : Integer;
  begin
    for I := Lbound to Ubound do
      begin
        Temp := X[I];
        if Temp <> 0.0 then Delta := Eps * Abs(Temp) else Delta := Eps;
        X[I] := Temp - Delta;
        Fminus := Func(X);
        X[I] := Temp + Delta;
        Fplus := Func(X);
        G[I] := (Fplus - Fminus) / (2.0 * Delta);
        X[I] := Temp;
      end;
  end;

  procedure NumHessGrad(Func           : TFuncNVar;
                        X              : TVector;
                        Lbound, Ubound : Integer;
                        G              : TVector;
                        H              : TMatrix);
  var
    Delta, Xminus, Xplus, Fminus, Fplus : TVector;
    Temp1, Temp2, F, F2plus             : Float;
    I, J                                : Integer;
  begin
    DimVector(Delta, Ubound);   { Increments   }
    DimVector(Xminus, Ubound);  { X - Delta    }
    DimVector(Xplus, Ubound);   { X + Delta    }
    DimVector(Fminus, Ubound);  { F(X - Delta) }
    DimVector(Fplus, Ubound);   { F(X + Delta) }

    F := Func(X);

    for I := Lbound to Ubound do
      begin
        if X[I] <> 0.0 then
          Delta[I] := Eps * Abs(X[I])
        else
          Delta[I] := Eps;
        Xplus[I] := X[I] + Delta[I];
        Xminus[I] := X[I] - Delta[I];
      end;

    for I := Lbound to Ubound do
      begin
        Temp1 := X[I];
        X[I] := Xminus[I];
        Fminus[I] := Func(X);
        X[I] := Xplus[I];
        Fplus[I] := Func(X);
        X[I] := Temp1;
      end;

    for I := Lbound to Ubound do
      begin
        G[I] := (Fplus[I] - Fminus[I]) / (2.0 * Delta[I]);
        H[I,I] := (Fplus[I] + Fminus[I] - 2.0 * F) / Sqr(Delta[I]);
      end;

    for I := Lbound to Pred(Ubound) do
      begin
        Temp1 := X[I];
        X[I] := Xplus[I];
        for J := Succ(I) to Ubound do
          begin
            Temp2 := X[J];
            X[J] := Xplus[J];
            F2plus := Func(X);
            H[I,J] := (F2plus - Fplus[I] - Fplus[J] + F) / (Delta[I] * Delta[J]);
            H[J,I] := H[I,J];
            X[J] := Temp2;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷综合另类小说色区| 亚洲va在线va天堂| 中文字幕欧美国产| 中文字幕第一区二区| 久久综合av免费| 国产喷白浆一区二区三区| 久久久夜色精品亚洲| 国产精品色在线| 亚洲乱码国产乱码精品精可以看 | 日本不卡在线视频| 激情五月婷婷综合| 色综合久久久久综合99| 欧美高清激情brazzers| 欧美tk—视频vk| 《视频一区视频二区| 视频一区二区欧美| 久久国产精品区| 99视频精品免费视频| 欧美一级片免费看| 国产精品午夜在线| 精彩视频一区二区| 欧美日韩精品欧美日韩精品一| 欧美极品少妇xxxxⅹ高跟鞋| 午夜精品久久久久久久99水蜜桃 | 制服丝袜亚洲播放| 中文字幕在线一区免费| 精品一区二区三区日韩| 在线观看亚洲精品视频| 久久综合狠狠综合久久激情| 视频一区二区三区中文字幕| 99re8在线精品视频免费播放| 日韩欧美一区二区久久婷婷| 亚洲国产精品一区二区久久| 不卡欧美aaaaa| 欧美激情综合五月色丁香小说| 久久se精品一区二区| 日韩一区二区三区四区| 亚洲成人免费电影| 欧美性videosxxxxx| 亚洲乱码中文字幕| 在线一区二区视频| 亚洲午夜久久久久久久久久久| 91福利在线看| 日韩制服丝袜av| 欧美一级免费观看| 日韩精品欧美成人高清一区二区| 欧美精品乱码久久久久久按摩| 亚洲成人第一页| 91精品免费在线观看| 黄页视频在线91| 欧美激情资源网| 欧美性色黄大片| 美女mm1313爽爽久久久蜜臀| 久久这里只有精品视频网| 高清日韩电视剧大全免费| 夜夜夜精品看看| 欧美一区二区三区男人的天堂 | 欧美精品日韩综合在线| 精品无人码麻豆乱码1区2区 | 成人毛片在线观看| 亚洲v精品v日韩v欧美v专区| 久久精品欧美日韩精品| 在线视频你懂得一区二区三区| 奇米777欧美一区二区| 国产精品视频在线看| 欧美一区二区观看视频| 国产成人99久久亚洲综合精品| 亚洲a一区二区| 成人免费在线视频观看| 久久蜜桃av一区精品变态类天堂| 91豆麻精品91久久久久久| 国产成人av影院| 麻豆成人免费电影| 日韩有码一区二区三区| 亚洲欧美激情在线| 国产精品久久久久久亚洲伦| 精品国产麻豆免费人成网站| 欧美另类久久久品| 欧美午夜电影一区| 欧美影院精品一区| 91网上在线视频| 在线精品亚洲一区二区不卡| 色综合天天视频在线观看 | 日本一区二区综合亚洲| 日韩高清不卡一区二区三区| 91成人免费在线视频| 国产在线一区观看| 亚洲va欧美va人人爽| 国产精品区一区二区三区| 欧美精品电影在线播放| 欧美在线free| 色八戒一区二区三区| 93久久精品日日躁夜夜躁欧美| 美国一区二区三区在线播放| 日韩激情视频网站| 亚洲444eee在线观看| ●精品国产综合乱码久久久久| 一区二区三区四区不卡视频 | 玉米视频成人免费看| 久久久一区二区三区捆绑**| 亚洲精品一区二区三区在线观看| 欧美一区二区三区公司| 欧美一区二区在线免费观看| 在线播放视频一区| 欧美va日韩va| 国产亚洲一区二区三区在线观看| 日韩精品一区二区在线观看| 欧美大片国产精品| 日韩精品中文字幕一区二区三区| 制服丝袜中文字幕亚洲| 日韩三级中文字幕| 久久免费偷拍视频| 国产欧美日产一区| 亚洲成人黄色影院| 久久狠狠亚洲综合| 国产毛片精品视频| 成人高清免费观看| 欧美偷拍一区二区| 色综合天天综合色综合av | 亚洲激情欧美激情| 午夜久久久久久电影| 免费观看日韩av| 国产成人h网站| 色综合天天综合| 欧美三级中文字幕| 欧美va在线播放| 国产精品的网站| 亚洲夂夂婷婷色拍ww47| 麻豆视频一区二区| 成人av网址在线| 99久精品国产| 久久精品一二三| 一区二区三区日韩在线观看| 青青草国产精品97视觉盛宴| 国产成人在线免费| 欧美性高清videossexo| 在线观看免费视频综合| 中文字幕av一区二区三区| 夜夜精品浪潮av一区二区三区| 久久成人羞羞网站| www.久久久久久久久| 欧美剧在线免费观看网站| 久久亚洲一级片| 麻豆专区一区二区三区四区五区| 东方欧美亚洲色图在线| 欧美美女视频在线观看| 国产午夜精品久久久久久免费视| 一区二区三区久久久| 激情六月婷婷综合| 色综合久久久久| 国产精品久久久久毛片软件| 免费成人美女在线观看| 色av成人天堂桃色av| 日韩一区和二区| 亚洲色图欧洲色图| 国产综合久久久久久久久久久久| 91麻豆高清视频| 精品国产亚洲在线| 亚洲国产精品99久久久久久久久 | 中文字幕的久久| 蜜桃视频免费观看一区| 日本精品一区二区三区四区的功能| 国产视频一区不卡| 蜜臂av日日欢夜夜爽一区| 欧日韩精品视频| 国产精品超碰97尤物18| 国内成人免费视频| 91福利精品第一导航| 伊人色综合久久天天人手人婷| 成人一区在线看| 欧美精品一区二区三| 日本视频一区二区| 欧美日韩国产在线观看| 婷婷亚洲久悠悠色悠在线播放| 色综合久久99| 亚洲欧美日韩国产综合在线| 成人久久视频在线观看| 久久综合成人精品亚洲另类欧美| 激情图片小说一区| 欧美白人最猛性xxxxx69交| 免费欧美高清视频| 欧美精品亚洲一区二区在线播放| 亚洲精品v日韩精品| 99re成人精品视频| 亚洲国产欧美在线| 欧美亚洲综合网| 亚洲愉拍自拍另类高清精品| 色爱区综合激月婷婷| 亚洲激情五月婷婷| 欧美一区三区二区| 亚洲国产一区二区三区| 欧美性生活大片视频| 亚洲伊人色欲综合网| 欧美吞精做爰啪啪高潮| 亚洲综合色自拍一区| 欧美成人乱码一区二区三区| 欧美a级理论片| 国产精品久久三| 色综合久久中文字幕综合网| 久久综合久久鬼色中文字|