作者steven50609 (雄2)
看板MATLAB
标题[问题]请问 曲线如何用资料点表示?
时间Thu Aug 16 12:28:05 2012
各位大大好
我现在在对一个曲线做最佳化
目标函数是h(i) 变数是方程式系数
for i = 2:size(d,2)
if i < dP
h(i) = a(5)*d(i)^4 + a(4)*d(i)^3 + a(3)*d(i)^2 + a(2)*d(i) + a(1);
hP = 4*a(5)*d(i)^3 + 3*a(4)*d(i)^2 + 2*a(3)*d(i) + a(2);
elseif i == dP
h(i) = a(5)*d(i)^4 + a(4)*d(i)^3 + a(3)*d(i)^2 + a(2)*d(i) + a(1);
hP = (4*a(5)*d(i)^3 + 3*a(4)*d(i)^2 + 2*a(3)*d(i) + a(2) + ...
4*b(1,5)*d(i)^3 + 3*b(1,4)*d(i)^2 + 2*b(1,3)*d(i) + b(1,2))/2;
最佳化大概是这样
a = [0 Hc/D 0 0 0]; b = [0 Hc/D 0 0 0; 0 Hc/D 0 0 0; 0 Hc/D 0 0 0; 0 Hc/D 0 0
0;];
%% fmincon() optimization routine
x0 = [a b(1,:) b(2,:) b(3,:) b(4,:)];
options =optimset('Algorithm','active-set','Display','iter','maxiter',1000,
'MaxFunEvals',16000);
[x,fval] =fmincon(@objfun,x0,[],[],[],[],[],[],@nonlcon,options,Fin,l4,l5,
H,L0,d,D,dP,DP);
a = x(1:5); b(1,:) = x(6:10); b(2,:) = x(11:15); b(3,:) =x(16:20);
b(4,:)=x(21:25);
现在我想将目标函数换成以d=30:0.1:70 然後y(d)的资料点当变数来跑这个最佳化
请问我要如何修改?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.255.167.68