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

📄 sysequ.m

📁 基于matlab的约束非线性规划算法库
💻 M
字号:
function [GNlambda, r, p, beta, lenJp, JpTf] = SysEqu(Aset,Jc,Teq,T,J,Tnfixed,nfixed,fixed,Abounds,b,f,m,n)
%Call:
%[GNlambda, r, p, beta, lenJp, JpTf] = SysEqu(Aset,Jc,Teq,T,J,Tnfixed,nfixed,fixed,Abounds,b,f,m,n)
%Compute GnLambda, r and p the solution of the system equations
%
%Form system matrix and corresponding right-hand side
%Form the Jacobian corresponding to the current active set
%First the rows corresponding to fixed variables
JcB = zeros(nfixed,n);
if nfixed > 0
   for kk=1:nfixed
       JcB(kk,fixed(kk)) = Abounds(fixed(kk));
   end
end
JcB
%Then the complete Jacobians
i = Aset(Teq+1:T)
A = [Jc(1:Teq,:); Jc(i,:); JcB]
pause
Ssize = Tnfixed+m+n;
Smat = zeros(Ssize);
Smat(1:Tnfixed,Tnfixed+m+1:Ssize) = A;
Smat(Tnfixed+1:Tnfixed+m,Tnfixed+1:Tnfixed+m) = eye(m);
Smat(Tnfixed+1:Tnfixed+m, Tnfixed+m+1:Ssize) = J;
Smat(Tnfixed+m+1:Ssize,1:Tnfixed) = A';
Smat(Tnfixed+m+1:Ssize,Tnfixed+1:Tnfixed+m) = J';
rh = [-b(:); zeros(nfixed,1); -f; zeros(n,1)];
%Solve
Sol = Smat\rh;
disp('In SysEqu:')
GNlambda = Sol(1:Tnfixed)
r = Sol(Tnfixed+1:Tnfixed+m);
p = Sol(Tnfixed+m+1:Ssize)
%Compute the length of the projection of [b(xk); f(xk)] onto the range of [A(xk); J(xk)]
temp = -f-r; %this is Jp
beta = norm(temp)
lenJp = norm(temp)
JpTf = temp'*f
pause

⌨️ 快捷键说明

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