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

📄 corrspline.m

📁 Kriging插值工具箱
💻 M
字号:
function  [r, dr] = corrspline(theta, d)%CORRSPLINE  Cubic spline correlation function,%%           n%   r_i = prod S(theta_j*d_ij) ,  i = 1,...,m%          j=1%% with%           1 - 15x^2 + 30x^3   for   0 <= x <= 0.5%   S(x) =  1.25(1 - x)^3       for  0.5 < x < 1%           0                   for    x >= 1% If length(theta) = 1, then the model is isotropic:% all  theta_j = theta.%% Call:    r = corrspline(theta, d)%          [r, dr] = corrspline(theta, d)%% theta :  parameters in the correlation function% d     :  m*n matrix with differences between given data points% r     :  correlation% dr    :  m*n matrix with the Jacobian of r at x. It is%          assumed that x is given implicitly by d(i,:) = x - S(i,:), %          where S(i,:) is the i'th design site. % hbn@imm.dtu.dk  % Last update May 30, 2002[m n] = size(d);  % number of differences and dimension of dataif  length(theta) == 1  theta = repmat(theta,1,n);elseif  length(theta) ~= n  error(sprintf('Length of theta must be 1 or %d',n))else  theta = theta(:).';endmn = m*n;   ss = zeros(mn,1);xi = reshape(abs(d) .* repmat(theta,m,1), mn,1);% Contributions to first and second part of splinei1 = find(xi <= 0.2);i2 = find(0.2 < xi & xi < 1);if  ~isempty(i1)  ss(i1) = 1 - xi(i1).^2 .* (15  - 30*xi(i1));endif  ~isempty(i2)  ss(i2) = 1.25 * (1 - xi(i2)).^3;end% Values of correlationss = reshape(ss,m,n);r = prod(ss, 2);if  nargout > 1  % get Jacobian  u = reshape(sign(d) .* repmat(theta,m,1), mn,1);  dr = zeros(mn,1);  if  ~isempty(i1)    dr(i1) = u(i1) .* ( (90*xi(i1) - 30) .* xi(i1) );  end  if  ~isempty(i2)    dr(i2) = -3.75 * u(i2) .* (1 - xi(i2)).^2;  end  ii = 1 : m;  for  j = 1 : n    sj = ss(:,j);  ss(:,j) = dr(ii);    dr(ii) = prod(ss,2);    ss(:,j) = sj;   ii = ii + m;  end  dr = reshape(dr,m,n);end  % Jacobian

⌨️ 快捷键说明

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