Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % hold off
- Epsilo = 0.005
- MaxSteps = 200
- step = 0.1;
- v = 4
- H = 0.0001;
- % [x,y] = meshgrid(-v:step:v, -v:step:v);
- [x,y] = meshgrid(-v:step:v, -v:step:v);
- % func = sym('x1^2 + y1^2')
- func = sym('(1-x1)^2 + 100*(y1-x1^2)^2');
- % func = sym('2*x1^2 + y1^2 + x1*y1')
- % func = sym('-2*x1^2 - y1^2 + x1*y1')
- syms x1 y1
- % func = sym('sin(((1/2)*x1^2)-((1/4)*y1^2) + 3)*cos(2*x1 + 1 - exp(y1))');
- func_hl = matlabFunction(func);
- derivateX = diff(func, x1);
- derivateX = matlabFunction(derivateX);
- derivateY = diff(func, y1);
- derivateY = matlabFunction(derivateY);
- z = func_hl(x,y);
- stX = -0.8;
- stY = -1.5;
- % stX = -2;
- % stY = -0.25;
- hold on;
- contour(x,y,z, 32);
- % surfc(x,y,z);
- % clabel(C, h); % Отображение меток на линиях уровня
- % quiver(x,y,gx,gy);
- X = stX, Y=stY
- steps = 0
- plot(X,Y,'+');
- % break
- for i=1:MaxSteps
- derX = derivateX(X, Y);
- derY = derivateY(X, Y);
- derX = derX * H;
- derY = derY * H;
- X = X - derX;
- Y = Y - derY;
- plot(X,Y,'x');
- steps = steps + 1;
- if sqrt(derX^2 + derY^2) <= Epsilo;
- break
- end
- end
- plot(X,Y,'r*');
- X
- Y
- % hold on
- hold off;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement