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

📄 nechdcmp.m

📁 computation of conformal maps to polygonally bounded regions
💻 M
字号:
function [L,maxadd] = nechdcmp(H,maxoffl)%% [L,maxadd] = nechdcmp(H,maxoffl)%% This function is part of the Nonlinear Equations package, see NESOLVE.M.%% This is a "Perturbed Cholesky Decomposition".  It finds a lower% triangular matrix L such that LL' is a factorization of H+D, where% D is a diagonal (non-negative) matrix that is added to H if necessary% to make it positive definite (so that the factorization is possible).% If H is already positive definite, the ordinary Cholesky decomposition% (D=0) is carried out.%% Algorithm A5.5.2: Part of the modular software system from% the appendix of the book "Numerical Methods for Unconstrained% Optimization and Nonlinear Equations" by Dennis & Schnabel 1983.%% Coded in Matlab by Sherkat Masoum M., April 1988.% Edited by Richard T. Behrens, June 1988.%%% Check input arguments.%[m,n]=size(H);if (m ~=n)  error('Matrix H must be square.')end%% Algorithm step 1.%minl=(eps^.25) * maxoffl;%% Algorithm step 2.%if (maxoffl == 0.)% This is the case when H is known to be positive def.  maxoffl=sqrt(max(diag(H)));  minl2=(eps^.5) * maxoffl;end%% Algorithm step 3.%maxadd=0.;      % the maximum diagonal element (so far) in D.%% Algorithm step 4.%for j=1:n  if (j==1)    L(j,j)=H(j,j);  else    L(j,j)=H(j,j)-L(j,1:j-1)*L(j,1:j-1)';  end  minljj=0.;  for i=j+1:n    if (j==1)      L(i,j)=H(j,i);    else      L(i,j)=H(j,i)-L(i,1:j-1)*L(j,1:j-1)';    end    minljj=max(abs(L(i,j)),minljj);  end  minljj=max(minljj/maxoffl,minl);  if (L(j,j) > minljj^2)    % Normal Cholesky iteration    L(j,j)=sqrt(L(j,j));  else    % Augment H(j,j)    if (minljj < minl2)      minljj=minl2;      % Only possible when input maxoffl=0    end    maxadd=max(maxadd,(minljj^2-L(j,j)));    L(j,j)=minljj;  end  for i=j+1:n    L(i,j)=L(i,j)/L(j,j);  end  %L(j+1:n,j)=L(j+1:n,j)/L(j,j);end

⌨️ 快捷键说明

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