get_dcoef.m

来自「采用matlab编写的数字图像恢复程序」· M 代码 · 共 29 行

M
29
字号
  function [dcoefx,dcoefy] = get_dcoef(u,beta)%  [dcoefx,dcoefy] = get_dcoef(u,beta)%%  Generate 2 arrays, dcoefx and dcoefy, used in the CCFD discretization %  of the diffusion equation%     L(u)v = -div (dcoef grad u)%           = - d/dx(dcoef du/dx) - d/dy(dcoef du/dy)%  where%     dcoef = 1 / sqrt((du/dx)^2 + (du/dy)^2 + beta^2).%%  dcoefx gives values of dcoef across cell x-interfaces.%  dcoefy gives values of dcoef across cell y-interfaces.  [nx,ny] = size(u);  n = nx;  %  Assume nx = ny for now.  h = 1/n;      ux = diff(u)/h;  uy = diff(u')'/h;  uxavg = (ux(:,1:n-1) + ux(:,2:n))/2;  uxavg = [zeros(1,n-1); uxavg; zeros(1,n-1)];  uxavg = (uxavg(1:n,:) + uxavg(2:n+1,:))/2;  uyavg = (uy(1:n-1,:) + uy(2:n,:))/2;  uyavg = [zeros(n-1,1) uyavg zeros(n-1,1)];  uyavg = (uyavg(:,1:n) + uyavg(:,2:n+1))/2;  dcoefx = sqrt(ux.^2 + uyavg.^2 + beta^2);  dcoefy = sqrt(uxavg.^2 + uy.^2 + beta^2);

⌨️ 快捷键说明

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