www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgmathsobject/private/invjupp.m

    function knots= invjupp(sigma,a,b)
% INVJUPP
% 
% This function will undo Jupp's transformation.
% The routine is:
% 
% p(i) = e^sigma(i)
% Z = 1 + p(1) + p(1)p(2) + ... +p(1)p(2)..p(N)
% h(1) = (b-a)/Z
% h(i+1)=p(i)h(i)
% 

%  Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc.

%-------------------------------------------------------------------------------
% undo Jupp's transformation scheme
%-------------------------------------------------------------------------------
sz= size(sigma);
Z=ones(sz(1),1);

knots=zeros(sz);

cp= (cumprod(sigma));
Z =  sum(cp)+1;

h=(b-a)./Z;

knots(1) =h+a;
knots(2:end)= knots(1) + cumsum(cp(1:end-1)*h);