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

📄 fpoint.m

📁 这是在网上下的一个东东
💻 M
字号:
function [p,status] = fpoint(A,G,d,p0)%FPOINT Compute a feasible point for mtsvdcstr and tikhcstr.%% [p,status] = fpoint(A,G,d,p0);%% Finds a feasible point p such that
%    A p = 0   and   G p >= d ,
% using p0 as an initial guess.
%% If status = 'feasible', then p is a feasible point.

% Ann-Charlotte Berglund, IMM and UNI-C, June 28, 1999.
% Initialization.status = 'feasible';
[nEqCstr,nVar] = size(A);
nCstr = nEqCstr + size(G,1);
if (nargin < 4 | isempty(p0)), p0 = zeros(nVar,1); end
% Start by checking whether initial guess p0 is feasible.
% It is assumed that p0 lies in the null space of A such that A*p0 = 0.minCstr = min(G*p0 - d);
if  minCstr > -eps
  p = p0;
  return
end
% If p0 is not feasible then try to find a feasible point p.G = [[A;G;zeros(1,nVar)],[zeros(nEqCstr,1);ones(nCstr+1-nEqCstr,1)]];
d = [zeros(nEqCstr,1);d];pTmp = tcsub([],[zeros(nVar,1);1],G,[d;-1e-5], ...	        [p0;-minCstr],nEqCstr,'fpoint',size(G,1),nVar+1);         
% Element no. nVar+1 of pTmp measures the residual. ???if pTmp(nVar+1) > eps
  % No feasible solution found.  status = 'infeasible';  p = NaN*ones(size(p0));else
  % First elements constitute a feasible point.  p = pTmp(1:nVar);
end

⌨️ 快捷键说明

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