⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mclas_pc.asv

📁 一种求解目标函数最小化的MATLAB仿真程序.
💻 ASV
字号:
mclas_pc:=proc(zrow,zcol)
local f1_dim,f2_dim,f_dim,j_rowdim,j_coldim,theta,P,Q,X,Data,V,j2,
     DataSeq,Param,State,Parameters,StateRules,ParameterRules,DataRules,
         k_list,n_list,n,k;
global f1,f2,F,j0,m_pv,s_pq;
# **************** Set up arrays

if m_pv+s_pq=0 then 
        F:=f1:
        f_dim:=rowdim(F):
        f1_dim:=rowdim(f1)-1:
        f2_dim:=0:
else
        F:=stackmatrix(f1,f2):
        f_dim:=rowdim(F):
        f1_dim:=rowdim(f1)-1:
        f2_dim:=rowdim(f2):
fi:
f1:='f1':
f2:='f2':
theta:=seq(th[k],k=1..f1_dim-f2_dim):
P:=seq(p[k],k=1..f1_dim+1):
Q:=seq(q[k],k=f1_dim-f2_dim+2..f1_dim+1):
X:=seq(x[k],k=0..f1_dim+f2_dim-1):
Data:=seq(data[k],k=0..f1_dim+1-f2_dim+2*rowdim(zrow)-1):
Param:=seq(param[k],k=0..f1_dim+1+f2_dim-1):
# ***************** Set up replacement rules
State:=theta,seq(op([e[k+1],th[k]]),k=f1_dim-f2_dim+1..f1_dim):
StateRules:={seq(State[k]=X[k-1],k=1..nops([X]))}:                        # modified 
Parameters:=P,Q:
ParameterRules:={seq(Parameters[k]=Param[k-1],k=1..nops([Parameters]))}:  # mod
DataSeq:=seq(e[k],k=1..f1_dim+1-f2_dim):
k_list:=convert(col(zrow,1),list):
n_list:=convert(col(zcol,1),list):
for n from 1 to rowdim(zrow) do
        DataSeq:=DataSeq,b[k_list[n],n_list[n]]:
od:
for n from 1 to rowdim(zrow) do
        DataSeq:=DataSeq,g[k_list[n],n_list[n]]:
od:
DataRules:={seq(DataSeq[k]=Data[k],k=1..nops([Data]))}:
F:=subs(StateRules,evalm(F)): 
F:=subs(ParameterRules,evalm(F)): 
F:=subs(DataRules,evalm(F)):
j0:=jacobian(col(F,1),[X]):
# ************************ Augment J with 2nd derivatives
# v:=array(1..coldim(j0)):
V:=convert([seq(v[k],k=0..f1_dim+f2_dim-1)],vector):
j2:=jacobian(evalm(j0&*V),[X]):
j0:=augment(j0,j2):
RETURN(1)
end:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -