📄 crderiv.m
字号:
function fp = crderiv(zp,beta,cr,aff,wcfix,Q,qdat)
%CRDERIV Derivative of the disk map in crossratio formulation.
% CRDERIV(ZP,BETA,CR,AFF,WCFIX,Q) returns the derivative at the points
% ZP of the Schwarz-Christoffel crossratio disk map. The arguments are
% returned from CRPARAM, CRAFFINE, and CRFIXWC.
%
% CRDERIV(ZP,BETA,CR,AFF,WCFIX,Q,TOL) uses quadrature data intended to
% give an answer accurate to within roughly TOL.
%
% See also CRPARAM, CRAFFINE, CRFIXWC, CRMAP.
% Copyright 1998 by Toby Driscoll.
% $Id: crderiv.m 7 1998-05-10 04:37:19Z tad $
% Parse input and initialize
beta = beta(:);
n = length(beta);
if nargin < 6
qdat = scqdata(beta,8);
elseif length(qdat)==1
qdat = scqdata(beta,max(ceil(-log10(qdat)),4));
end
fp = zeros(size(zp));
zp = zp(:).';
p = length(zp);
% Transform points into all embeddings, from the reference in wcfix
quadnum = wcfix(1);
mt = wcfix(2:5);
zl = (mt(1)*zp + mt(2)) ./ (mt(3)*zp + mt(4));
d0 = (mt(1)*mt(4) - mt(2)*mt(3)) ./ (mt(3)*zp + mt(4)).^2;
[zl,dl] = crspread(zl,quadnum,cr,Q);
% Choose best embeddings based on proximity to origin
[tmp,idx] = min(abs(zl));
% Compute derivatives via embeddings
for q = unique(idx)
z = crembed(cr,Q,q);
mask = (idx==q);
% Compose Moebius transformations with disk map, and apply the affine
% transformation constant
fp(mask) = aff(q,1)*d0(mask).*dl(q,mask).*dderiv(zl(q,mask),z,beta);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -