Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function min = shtraf %МЕТОД ВНУТРЕННИХ В АББАСОВЕ (Метод штрафных функций machinelearning)
- x = 5; y = -0.5;
- r = 10;
- alfa = 10^-4;
- c = 1;
- xtrace = [x];
- ytrace = [y];
- while true
- while true
- c = c + 1;
- dx = M1_Der_x(r, x, y);
- dy = M1_Der_y(r, x, y);
- x_t = x; y_t = y;
- x = x - alfa*dx;
- y = y - alfa*dy;
- xtrace(c) = x;
- ytrace(c) = y;
- if is_in_trust_region(x, y) == 0
- x = x_t; y = y_t;
- alfa = alfa / 2;
- end
- if abs(Res_1(x,y)) <= 10^-2 || abs(Res_2(x,y)) <= 10^-2
- break;
- end
- end
- if abs(-r*(1/Res_1(x,y) + 1/Res_2(x,y))) <= 10^-3
- break
- end
- r = r / 10;
- end
- grad_fx = M3_DerF_x(x,y);
- grad_fy = M3_DerF_y(x,y);
- grad_gx = M3_DerG1_x(x,y);
- grad_gy = M3_DerG1_y(x,y);
- xt = x; yt = y;
- x = x - grad_fx*Res_1(xt, yt)/(grad_fx*grad_gx + grad_fy*grad_gy);
- y = y - grad_fy*Res_1(xt, yt)/(grad_fx*grad_gx + grad_fy*grad_gy);
- % x = -5:0.1:6;
- % y = -5:0.1:6;
- % [X, Y] = meshgrid(x, y);
- % 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);
- % [C, h] = contour(X, Y, real(Z));
- % clabel(C, h); % Отображение меток на линиях уровня
- % hold on;
- % plot(xtrace, ytrace, '-x');
- % %Вывод начальной точки на график
- % text(xtrace(1) + 0.2, ytrace(1) + 0.5, 'M0');
- % %Вывод решения на график
- % text(x + 2, y, ...
- % strvcat(['x = ' (num2str(x))], ...
- % ['y = ' (num2str(y))], ...
- % ['c = ' (num2str(c))]));
- min = [x y];
- fval = F(x, y)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement