Facebook
From Whipped Human, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 263
  1. clear all; close all; clc;
  2.  
  3. % x=sym('x',[2,1]);
  4. % f=(x(1)+2*x(2)-7)^2+(2*x(1)+x(2)-5)^2;
  5. % df=gradient(f);
  6. % H=hessian(f);
  7. % f=matlabFunction(f,'Vars',([x(1);x(2)]));
  8. % df=matlabFunction(df,'Vars',([x(1);x(2)]));
  9. % H=matlabFunction(H,'Vars',([x(1);x(2)]));
  10.  
  11. f=@(x)(x(1)+2*x(2)-7)^2+(2*x(1)+x(2)-5)^2;
  12. df=@(x)[10*x(1)+8*x(2)-34;
  13.     8*x(1)+10*x(2)-38];
  14. H=[10,8;8,10];
  15.  
  16. xmin=[-10;10];
  17. xmax=[10;10];
  18.  
  19. x1=linspace(xmin(1),xmax(1),50);
  20. x2=linspace(xmin(2),xmax(2),50);
  21. y=zeros(50);
  22.  
  23. for i=1:50
  24.     for j=1:50
  25.         y(j,i)=f([x1(i);x2(j)]);
  26.     end
  27. end
  28. surf(x1,x2,y);
  29.  
  30. x0=20*rand(2,1)-10;
  31. h=0.05;
  32. epsilon=1e-3;
  33. Nmax=1e3;
  34. delta=1e-6;
  35. x_opt=[];
  36.  
  37. i=1;
  38. while true
  39.     [h,x0]=naj_spadek(df,x0,x_opt);