多参量最优化matlab,fmincon函数优化多个参数
本帖最后由 sangzhenyu 于 2020-10-30 13:57 編輯
function G=MiuCal(X)
%參數:Miu:生長速率;MiuMax:生長速率最大值;Ks:底物飽和常數;
%? ?? ?Ki:底物抑制常數;S:極限底物濃度;
%[t,y,te,ye,ie] = ode23s(odefun,tspan,y0,options)
%ODE求解微分過程,然而在參數模擬中涉及的是最后的積分狀態,不需要用到
%i=1,2,3,4
CPi=X(1);ni=X(2);a=X(3);b=X(4);c=X(5);
P=[ 1.13 10.481 42.06 79.635 96.7567 113.793 141.438 192.6075 231.086];
S=[28.2534 25.987 24.518 25.979 24.9225 25.5405 24.3915 29.4365 28.931];
MiuN=zeros(1,9);
for i=1:length(S)
MiuN(i)=a*S(i)/(S(i)+b+S(i)^2/c);
for j=1:length(P)
MiuN(j)=MiuN(i)*(1-(P(j)/CPi))^ni;
end
end
%??需要計算Ks、Ki、MiuMax、CPi、ni+
%??規劃法求最小參數:實驗次數、實驗變量數、實驗時間點
%??minG=求和(((預測值-實際值)/實際值)^2)
Miu=[0.319394 0.310556 0.308202 0.283174 0.258364 0.250183 0.207294 0.169681 0.128755 ];
G=0;
for i=1:length(Miu)
G=G+((MiuN(i)-Miu(i))/Miu(i))^2;
end
end
ObjectiveFunction = @MiuCal;
X0 = [ 0.1 0.1 0.05 0.5 1 ];
lb=[ 230 0.1 0.05 0.5 300];
ub = [inf 5 1 2 inf];
A=[];b=[];Aeq=[];beq=[];
[x,fval,exitflag,output] = fmincon(ObjectiveFunction,X0,[],[],[],[],lb,ub);
用fmincon函數的SQP算法來優化上面那個Miucal(X),目標函數是優化方程的參數,使得方程減去實際值的誤差平方和最小;這樣做有什么問題嗎
我運行后會出現下面這樣的錯誤
Objective function is undefined at initial point. Fmincon cannot continue.
出錯 fmincon (line 824)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
出錯 Untitled5 (line 6)
[x,fval,exitflag,output] = fmincon(ObjectiveFunction,X0,[],[],[],[],lb,ub);
總結
以上是生活随笔為你收集整理的多参量最优化matlab,fmincon函数优化多个参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql分页limit运算,MySQL
- 下一篇: gps matlab teqc,TEQC