作者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