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

📄 scdfaber.m

📁 computation of conformal maps to polygonally bounded regions
💻 M
字号:
function slide=scdfaber
% This is a slideshow file for use with playshow.m and makeshow.m
% To see it run, type 'playshow scdfaber', 

% Copyright (c) 1984-98 by The MathWorks, Inc.
% $Id: scdfaber.m 56 1999-01-28 22:10:45Z tad $
if nargout<1,
  playshow scdfaber
else
  %========== Slide 1 ==========

  slide(1).code={
   '' };
  slide(1).text={
   ''};

  %========== Slide 2 ==========

  slide(2).code={
   '' };
  slide(2).text={
   'Let f be a conformal map from the exterior of a Jordan curve to the exterior of the unit disk such that infinity is a fixed point.  The nth Faber  polynomial is the polynomial part of the Laurent expansion of f^n at infinity.',
   '',
   'The Faber polynomials reduce to Chebyshev polynomials when the curve is a line segment, and to Taylor polynomials when it is a circle. If the curve is a polygon, the Schwarz-Christoffel exterior map can be used to compute Faber polynomial coefficients.',
   ''};

  %========== Slide 3 ==========

  slide(3).code={
   'p = polygon([  -3.0519 + 1.3846i',
   '  -0.7308 + 1.5385i',
   '  -1.8423 - 1.7538i',
   '  -1.7442 - 3.3846i',
   '   3.5000 - 1.5000i',
   '   3.0000',
   '   0.5000 - 1.0000i',
   '   2.0000 + 3.5000i',
   '  -3.0846 + 2.9231i]);',
   'plot(p)',
   'f = extermap(p);',
   'F = faber(f,20);' };
  slide(3).text={
   'We find the exterior map to this polygon.',
   '>> plot(p)',
   '>> f = extermap(p);',
   '',
   'We compute the coefficients of the first 21 Faber polynomials.',
   '>> F = faber(f,20);'};

  %========== Slide 4 ==========

  slide(4).code={
   'lim = axis;',
   '[X,Y] = meshgrid(linspace(lim(1),lim(2),50),linspace(lim(3),lim(4),50));' };
  slide(4).text={
   'Because the Faber polynomials approximate a function having unit modulus on the polygon, the lemniscate',
   '',
   '        {z: | P (z) | = 1}',
   '',
   ' for a Faber polynomial P will approximate the polygon.',
   '',
   '>> lim = axis;',
   '>> [X,Y] = meshgrid(linspace(lim(1),lim(2),50),linspace(lim(3),lim(4),50));'};

  %========== Slide 5 ==========

  slide(5).code={
   'hold on',
   'u = abs(polyval(F{6},X+i*Y));',
   '[ct,h] = contour(X,Y,u,[1 1],''r'');',
   'title(''| P_5(z) | = 1'')' };
  slide(5).text={
   '>> u = abs(polyval(F{6}, X+i*Y));',
   '>> contour(X,Y,u,[1 1],''r'')',
   '',
   'Note how badly the reentrant corners (with respect to the interior of the polygon) are represented.  In the coming frames, we will increase the degree of the Faber polynomial.'};

  %========== Slide 6 ==========

  slide(6).code={
   'delete(h)',
   'u = abs(polyval(F{11}, X+i*Y));',
   '[ct,h] = contour(X,Y,u,[1 1],''r'');',
   'title(''| P_{10}(z) | = 1'')' };
  slide(6).text={
   '>> u = abs(polyval(F{11}, X+i*Y));',
   '>> contour(X,Y,u,[1 1],''r'')'};

  %========== Slide 7 ==========

  slide(7).code={
   'delete(h)',
   'u = abs(polyval(F{16}, X+i*Y));',
   '[ct,h] = contour(X,Y,u,[1 1],''r'');',
   'title(''| P_{15}(z) | = 1'')' };
  slide(7).text={
   '>> u = abs(polyval(F{16}, X+i*Y));',
   '>> contour(X,Y,u,[1 1],''r'')'};

  %========== Slide 8 ==========

  slide(8).code={
   'delete(h)',
   'u = abs(polyval(F{21}, X+i*Y));',
   '[ct,h] = contour(X,Y,u,[1 1],''r'');',
   'title(''| P_{20}(z) | = 1'')' };
  slide(8).text={
   '>> u = abs(polyval(F{21}, X+i*Y));',
   '>> contour(X,Y,u,[1 1],''r'')',
   '',
   'Even this far, the reentrant corners are not well approximated.'};

  %========== Slide 9 ==========

  slide(9).code={
   'zp = f( exp(i*linspace(0,2*pi)) );',
   'delete(h)',
   'title('''')' };
  slide(9).text={
   'A familiar property of Chebyshev polynomials on the interval is equioscillation.  The Faber polynomials have similar tendencies on the boundary.',
   '',
   'We create a vector of Fejer points around the polygon.',
   '>> zp = f( exp(i*linspace(0,2*pi)) );'};

  %========== Slide 10 ==========

  slide(10).code={
   'hold off',
   'plot(1:100,abs(polyval(F{6},zp)))',
   'xlabel(''Fejer point'')',
   'ylabel(''| P_5(z) |'')' };
  slide(10).text={
   '>> plot(1:100,abs(polyval(F{6},zp)))',
   '',
   'Note the oscillations about 1.'};

  %========== Slide 11 ==========

  slide(11).code={
   'plot(1:100,abs(polyval(F{11},zp)))',
   'xlabel(''Fejer point'')',
   'ylabel(''| P_{10}(z) |'')' };
  slide(11).text={
   '>> plot(1:100,abs(polyval(F{11},zp)))',
   '',
   'Perfect equioscillation is not achieved in general, but this is fairly close.',
   ''};
end

⌨️ 快捷键说明

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