fourint.m

来自「matlab6矩阵微分工具 matlab6矩阵微分工具」· M 代码 · 共 43 行

M
43
字号
function t = fourint(fk, x)%  The function t = fourint(fk, x) computes the trigonometric interpolant%  of the data (xk, fk), where xk are equidistant nodes.%%  Input:%  fk:  Vector of y-coordinates of data, at equidistant points %       x(k) = (k-1)*2*pi/N,  k = 1...N.%  x:   Vector of x-values where interpolant is to be evaluated.%%  Output:%  t:    Vector of interpolated values.%%  The code implements the barycentric formula; see page 46 in%  P. Henrici, Applied and Computational Complex Analysis III, Wiley, 1986.%  (Note that if some fk > 1/eps, with eps the machine epsilon,%  the value of eps in the code may have to be reduced.)%  J.A.C. Weideman, S.C. Reddy 1998 fk = fk(:); x = x(:);           % Make sure data are column vectors.  N = length(fk);   M = length(x); xk = (2*pi/N)*[0:N-1]';         % Compute equidistant points     w = (-1).^[0:N-1]';            % Weights for trig interpolation x2 = x/2; xk2 = xk/2;     D = x2(:,ones(1,N)) - xk2(:,ones(1,M))'; % Compute quantities x-x(k)if rem(N,2) == 0                    D = 1./tan(D+eps*(D==0));       %  Formula for N evenelse  D = 1./sin(D+eps*(D==0));       %  Formula for N oddend  t = D*(w.*fk)./(D*w);            % Evaluate interpolant as                                    % matrix-vector products.

⌨️ 快捷键说明

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