Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function unitest()
- funObj = @(x)-200*exp(-0.02*sqrt(x(1)^2+x(2)^2)); %Modify
- e = 1*10^-6;
- e2 = 10^-4;
- %inital values
- current = [-30 30];
- currentVal = funObj(current) %Modify
- optimalDimensions = 0;
- totalDimensions = size(current,2);
- whileIters = 0;
- maxIters = 10;
- index = 1;
- while optimalDimensions <totalDimensions && whileIters < maxIters
- disp("****************************************");
- currentMas = current;
- currentMenos = current;
- currentMas(index) = current(index) + e;
- currentMenos(index) = current(index) - e;
- format long;
- disp(whileIters);
- disp(currentVal);
- disp(funObj(currentMas));
- disp(funObj(currentMenos));
- disp("------------------------------------------------------------");
- if currentVal>funObj(currentMas) || currentVal>funObj(currentMenos)
- optimalDimensions = 0;
- if index == 1
- [current(1), currentVal] = fminunc(@(x)funObj([x,current(2)]),current(1));
- else
- [current(2), currentVal] = fminunc(@(x)funObj([current(1),x]),current(2));
- end
- else
- optimalDimensions = optimalDimensions+1;
- end
- disp(current);
- disp(currentVal);
- index = mod(index,totalDimensions)+1;
- whileIters = whileIters + 1;
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement