【发布时间】:2020-04-02 22:35:49
【问题描述】:
我正在尝试优化 MATLAB 中包含 for-loop 的函数。我尝试了不同的代码,但没有得到任何结果,也不知道问题出在哪里。
这里是函数:
function U2 = least1(ydata,xdata,x,y1,w,A,sz,yprime,y)
for i=1:1:1000
U2(1,i) = sum((sqrt(1+yprime.^2)).*(A(1) * exp(-y/A(2))*(1 - exp(-ydata(i)/A(2)))...
+ A(3) * exp(-y/A(4))*(exp(-ydata(i)/A(4))-1)).*w);
end
end
所有变量都可用我只需要优化它以获得A的完美匹配。
我尝试使用基于问题的优化来解决它,如下代码:
但我得到的不是A 的四个值
-Inf
-Inf
-Inf
-Inf
A = optimvar('A',4);
potential = fcn2optimexpr(@least1,A);
obj = sum((potential - u1).^2);
prob = optimproblem('Objective',obj);
x0.A = [11.959,0.069,3.53,4.118*10^(-3)];
show(prob)
sol = solve(prob,x0)
如果有什么遗漏请告诉我
【问题讨论】:
标签: matlab function optimization