Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.71 KB | None | 0 0
  1. clear all
  2. close all
  3. [X,Y] = meshgrid(-5:0.1:5);
  4. F = (X + 2).^2 + (Y + 2).^2;
  5. figure(1)
  6. contour(X,Y,F,100,'k')
  7. axis equal
  8. Z = zeros(size(F));
  9. G = (Y - X);
  10. P = max(G,Z).^2;
  11. miu = 10;
  12. T = F + miu*P;
  13. figure(2)
  14. contour(X,Y, F, 50, 'k')
  15. hold on
  16. x = -5:0.01:5;
  17. y = x+2;
  18. plot(x,y,'r')
  19. axis([-5 5 -5 5])
  20. axis equal
  21. zlim([-10 10])
  22. R = 0.25;
  23. epsilon = 0.001;
  24. x0=[1 4];
  25. xs=x0;
  26. itsk = 200;
  27. step=0.1;
  28. for i=1:itsk
  29. x0 = xs - step * gradient1(xs,R);
  30. plot([xs(1),x0(1)],[xs(2),x0(2)],'r',[xs(1),x0(1)],[xs(2),x0(2)],'ro')
  31. d = abs(xs - x0);
  32. xs=x0;
  33. %R = R/5;
  34. if(d < epsilon)
  35. break;
  36. end
  37. end
  38. function gr = gradient1(x,R)
  39. gr(1) = (2*(R*(x(1) + 2) + x(1) - x(2)))/R;
  40. gr(2) = (2*(R*(x(2) + 2) - x(1) + x(2)))/R;
  41. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement