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

📄 genind.m

📁 GloptiPoly 3: moments, optimization and semidefinite programming. Gloptipoly 3 is intended to so
💻 M
字号:
function [bin,pow,bas] = genind(nvar,d)% GENIND - Internal use only% [BIN,POW,BAS] = GENIND(N,D) generates indexing tables for% a moment problems of N variables and degree D:% - BIN = binomial coef table% - POW = vector of powers of monomials% - BAS = powers of moment matrix%% Updates/reads index tables MMM.T% Used by GENMOM, MSDP% Uses GENPOW  % D. Henrion, 4 August 2004% Last modified on 14 December 2006global MMMif nargin < 2 error('Invalid syntax')elseif rem(d,2) error('Degree must be even');end% Order = half the degreeord = d/2;
% Already existing tables ?
create = true;
if isfield(MMM,'T')
 [maxnvar,maxord] = size(MMM.T);
 if (maxnvar >= nvar) & (maxord >= ord)
  create = isempty(MMM.T(nvar,ord).bin);
 end
end
if create % Generate binomial coefficient table % used to locate a variable from its powers bin = zeros(nvar,d+2); bin(1,:) = 0:d+1; for k = 2:nvar  bin(k,:) = cumsum(bin(k-1,:)); end % Generate column vectors of powers, arranged in a matrix pow = genpow(nvar+1,d); pow = pow(:,2:nvar+1); % Generate matrix of powers % to construct the moment and localization matrices dmm = bin(nvar,ord+2); % dimension of moment matrix bas = zeros(dmm,dmm,nvar); bas(:,1,:) = pow(1:dmm,:); % first column for c = 2:dmm % generate remaining columns from first row and first column  for k = 1:nvar   bas(:,c,k) = bas(c,1,k)+bas(:,1,k);  end end % Store index tables
 MMM.T(nvar,ord).bin = bin;
 MMM.T(nvar,ord).pow = pow;
 MMM.T(nvar,ord).bas = bas;
 % to optimize we may here also store index tables % for smaller number of variables and degrees % - generation of BAS should be done carefully -else % Retrieve existing tables bin = MMM.T(nvar,ord).bin; pow = MMM.T(nvar,ord).pow; bas = MMM.T(nvar,ord).bas;end

⌨️ 快捷键说明

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