Advertisement
Bkmz

Untitled

May 2nd, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.16 KB | None | 0 0
  1. % hold off
  2. Epsilo = 0.005
  3. MaxSteps = 200
  4. step = 0.1;
  5. v = 4
  6. H = 0.0001;
  7. stX = 1;
  8. stY = -3;
  9.  
  10. % [x,y] = meshgrid(-v:step:v, -v:step:v);
  11. [x,y] = meshgrid(-v:step:v, -v:step:v);
  12.  
  13. % func =  sym('x1^2 + y1^2')
  14. func = sym('(1-x1)^2 + 100*(y1-x1^2)^2');
  15. % func = sym('2*x1^2 + y1^2 + x1*y1')
  16. % func = sym('-2*x1^2 - y1^2 + x1*y1')
  17. syms x1 y1
  18. % func = sym('sin(((1/2)*x1^2)-((1/4)*y1^2) + 3)*cos(2*x1 + 1 - exp(y1))');
  19. func_hl = matlabFunction(func);
  20.  
  21. derivateX = matlabFunction(diff(func, x1));
  22. derivateY = matlabFunction(diff(func, y1));
  23.  
  24. z = func_hl(x,y);
  25.  
  26.  
  27. % stX = -2;
  28. % stY = -0.25;
  29.  
  30. hold on;
  31. contour(x,y,z, 32);
  32. % surfc(x,y,z);
  33. % clabel(C, h);    % Отображение меток  на линиях уровня
  34. % quiver(x,y,gx,gy);
  35.  
  36.  
  37. X = stX, Y=stY
  38. steps = 0
  39. plot(X,Y,'+');
  40. % break
  41.  
  42. for i=1:MaxSteps
  43.     derX = derivateX(X, Y);
  44.     derY = derivateY(X, Y);
  45.    
  46.     derX = derX * H;
  47.     derY = derY * H;
  48.    
  49.      
  50.      X = X - derX;
  51.      Y = Y - derY;
  52.      
  53.      plot(X,Y,'x');
  54.      steps = steps + 1;
  55.      if sqrt(derX^2 + derY^2) <= Epsilo;
  56.          break
  57.      end
  58.      
  59. end
  60.  
  61.  
  62. plot(X,Y,'r*');
  63. X
  64. Y
  65.  
  66. % hold on
  67. hold off;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement