Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.78 KB | None | 0 0
  1. function min = shtraf %МЕТОД ВНУТРЕННИХ В АББАСОВЕ (Метод штрафных функций machinelearning)
  2. x = 5; y = -0.5;
  3. r = 10;
  4. alfa = 10^-4;
  5. c = 1;
  6. xtrace = [x];
  7. ytrace = [y];
  8. while true
  9.     while true
  10.         c = c + 1;
  11.         dx = M1_Der_x(r, x, y);
  12.         dy = M1_Der_y(r, x, y);
  13.         x_t = x; y_t = y;
  14.         x = x - alfa*dx;
  15.         y = y - alfa*dy;
  16.         xtrace(c) = x;
  17.         ytrace(c) = y;
  18.         if is_in_trust_region(x, y) == 0
  19.             x = x_t; y = y_t;
  20.             alfa = alfa / 2;
  21.         end
  22.         if abs(Res_1(x,y)) <= 10^-2 || abs(Res_2(x,y)) <= 10^-2
  23.             break;
  24.         end
  25.     end
  26. if abs(-r*(1/Res_1(x,y) + 1/Res_2(x,y))) <= 10^-3
  27.     break
  28. end
  29.     r = r / 10;
  30. end
  31. grad_fx = M3_DerF_x(x,y);
  32. grad_fy = M3_DerF_y(x,y);
  33. grad_gx = M3_DerG1_x(x,y);
  34. grad_gy = M3_DerG1_y(x,y);
  35. xt = x; yt = y;
  36. x = x - grad_fx*Res_1(xt, yt)/(grad_fx*grad_gx + grad_fy*grad_gy);
  37. y = y - grad_fy*Res_1(xt, yt)/(grad_fx*grad_gx + grad_fy*grad_gy);
  38.  
  39. % x = -5:0.1:6;
  40. % y = -5:0.1:6;
  41. % [X, Y] = meshgrid(x, y);
  42. % Z = (conj(X)*(21 - 10i) - conj(Y)*(10 + 21i) + (conj(X) - conj(Y)*1i)^2*(4 - 18i) + (conj(X) - conj(Y)*1i)^3*(10 - 10i) + (17 - 12i))*(X*(21 + 10i) - Y*(10 - 21i) + (X + Y*1i)^2*(4 + 18i) + (X + Y*1i)^3*(10 + 10i) + 17 + 12i);
  43. % [C, h] = contour(X, Y, real(Z));
  44. % clabel(C, h);  % Отображение меток на линиях уровня
  45. % hold on;
  46. % plot(xtrace, ytrace, '-x');
  47. % %Вывод начальной точки на график
  48. % text(xtrace(1) + 0.2, ytrace(1) + 0.5, 'M0');
  49. % %Вывод решения на график
  50. % text(x + 2, y, ...
  51. % strvcat(['x = ' (num2str(x))], ...
  52. %         ['y = ' (num2str(y))], ...
  53. %         ['c = '  (num2str(c))]));
  54.  
  55. min = [x y];
  56. fval = F(x, y)
  57. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement