Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fun = @(x,y)2*(x^2) +(y^2) +(x*y) -(6*x) -(5*y) +8;
- x = -5:0.05:5;
- y = -5:0.05:5;
- [X,Y] = meshgrid(x,y);
- z = 2.*(X.^2) + Y.^2 + X.*Y -6.*X -5.*Y+8;
- contour(X,Y,z,50)
- %mesh(X,Y,z)
- hold on;
- x0 = -4;
- y0 = -4;
- alfa = 0.1;
- while(true)
- f1 = fun(x0, y0);
- f2 = fun(x0, y0+alfa);
- f3 = fun(x0+alfa, y0);
- f4 = fun(x0, y0-alfa);
- f5 = fun(x0-alfa, y0);
- najmniejszy = min([f1,f2,f3,f4,f5]);
- if najmniejszy == f1
- break
- end
- if najmniejszy == f2
- line([x0, x0], [y0, y0+alfa], 'Color', 'r');
- y0 = y0+alfa;
- end
- if(najmniejszy == f3)
- line([x0, x0+alfa], [y0, y0], 'Color', 'r');
- x0 = x0+alfa;
- end
- if(najmniejszy == f4)
- line([x0, x0], [y0, y0-alfa], 'Color', 'r');
- y0 = y0-alfa;
- end
- if(najmniejszy == f5)
- line([x0, x0-alfa], [y0, y0], 'Color', 'r');
- x0 = x0-alfa;
- end
- end
- fprintf("minimum = %f\n", najmniejszy);
- fprintf("x = %f\n", x0);
- fprintf("y = %f\n", y0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement