Advertisement
Guest User

Univariado

a guest
Mar 22nd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.41 KB | None | 0 0
  1. function unitest()
  2.     funObj = @(x)-200*exp(-0.02*sqrt(x(1)^2+x(2)^2)); %Modify
  3.    
  4.     e = 1*10^-6;
  5.     e2 = 10^-4;
  6.    
  7.     %inital values
  8.     current = [-30 30];
  9.     currentVal = funObj(current) %Modify
  10.    
  11.     optimalDimensions = 0;
  12.     totalDimensions = size(current,2);
  13.    
  14.     whileIters = 0;
  15.     maxIters = 10;
  16.    
  17.     index = 1;
  18.     while  optimalDimensions <totalDimensions && whileIters < maxIters
  19.        disp("****************************************");
  20.        currentMas = current;
  21.        currentMenos = current;
  22.        currentMas(index) = current(index) + e;
  23.        currentMenos(index) = current(index) - e;
  24.        format long;
  25.        disp(whileIters);
  26.        disp(currentVal);
  27.        disp(funObj(currentMas));
  28.        disp(funObj(currentMenos));
  29.        disp("------------------------------------------------------------");
  30.        if currentVal>funObj(currentMas) || currentVal>funObj(currentMenos)
  31.            optimalDimensions = 0;
  32.            if index == 1
  33.               [current(1), currentVal] = fminunc(@(x)funObj([x,current(2)]),current(1));
  34.            else
  35.                [current(2), currentVal] = fminunc(@(x)funObj([current(1),x]),current(2));
  36.            end
  37.        else
  38.            optimalDimensions = optimalDimensions+1;
  39.        end
  40.        disp(current);
  41.        disp(currentVal);
  42.        index = mod(index,totalDimensions)+1;
  43.        whileIters = whileIters + 1;
  44.     end
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement