Different Output value of Functions
2 次查看(过去 30 天)
显示 更早的评论
function f_value = test_function(Solution)
% Beale function test functions
Implementation 1
x=Solution(1);
y=Solution(2);
f_value = (1.5- x+ x*y)^2 + (2.25 - x + x*y^2)^2 + (2.625 -x + x*y^2)^2;
% Optimal at f(3,0.5) = 0
%% Implementation 2
% x1 = Solution(1);
% x2 = Solution(2);
%
% term1 = (1.5 - x1 + x1*x2)^2;
% term2 = (2.25 - x1 + x1*x2^2)^2;
% term3 = (2.625 - x1 + x1*x2^3)^2;
%
% f_value = term1 + term2 + term3;
end
Hi, I have a test function for testing my optimization algorithm. These two implementations are same but they are generating different f_value for the same solution value. For example. for Solution [-3.3381,0.1668], Implementation1 generates f_value of 82.9832 whereas Imp2 generates 83.8981. I am unable to find the reason. This small difference is making huge difference and with imp1. Optimization algorithm doesnot converge to global solution. However, with imp2 it converges to global solution. Any help would be appreciated.
0 个评论
采纳的回答
Voss
2024-5-14
Implementation 1 has x*y^2 in the third term; Implementation 2 has x1*x2^3 in term3.
f_value = (1.5- x+ x*y)^2 + (2.25 - x + x*y^2)^2 + (2.625 -x + x*y^2)^2;
% ^ squared
term1 = (1.5 - x1 + x1*x2)^2;
term2 = (2.25 - x1 + x1*x2^2)^2;
term3 = (2.625 - x1 + x1*x2^3)^2;
% ^ cubed
f_value = term1 + term2 + term3;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Direct Search 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!