Zum Inhalt springen

Datei:Heat eqn.gif

aus AufEinWort, der freien Forschung
    Originaldatei (200 × 136 Pixel, Dateigröße: 500 KB, MIME-Typ: image/gif, Endlosschleife, 181 Bilder, 6,0 s)

    Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.

    Beschreibung

    Beschreibung
    English: Illustration of the Heat equation.
    Datum (UTC)
    Quelle Eigenes Werk
     Dieses Diagramm wurde mit MATLAB erstellt.
    Urheber Oleg Alexandrov
    Andere Versionen

    Lizenz

    Public domain Ich, der Urheberrechtsinhaber dieses Werkes, veröffentliche es als gemeinfrei. Dies gilt weltweit.
    In manchen Staaten könnte dies rechtlich nicht möglich sein. Sofern dies der Fall ist:
    Ich gewähre jedem das bedingungslose Recht, dieses Werk für jedweden Zweck zu nutzen, es sei denn, Bedingungen sind gesetzlich erforderlich.

    MATLAB source code

    % illustration of the heat equation
    % Solve the heat equation using finite differences and Forward Euler
    function main()
     
       % the number of data points. More points means prettier picture.
       N = 400;
     
       L = 2.5; % the box size is [-L, L] x [-L, L]
     
       XX = linspace(-L, L, N);
       YY = linspace(-L, L, N);
       [X, Y] = meshgrid(XX, YY);
     
       scale = 2;
       Z = get_step_function (N, scale, X, Y);
     
       CFL = 0.125; % CourantFriedrichsLewy
       dx = XX(2)-XX(1);  dy = dx; % space grid
       dt = CFL*dx^2;
     
       plot_dt = 0.004; % plot every plot_dt iterations
    
       cmap = rv_matrix_rows(autumn); % colormap
       
       % Solve the heat equation with zero boundary conditions
       T = 0:dt:1;
       iter = 0;
       frame_no = 0;
       for t=T
     
          % plot the current temperature distribution
          if floor(t/plot_dt) + 1 > frame_no
     
             frame_no = frame_no + 1
     
            % plot the surface
             figure(2); clf; 
             surf(X, Y, Z);
     
             %  make the surface beautiful
             shading interp; colormap(cmap); 
     
             % add in a source of light
             camlight (-50, 54);
             lighting phong;
     
             % viewing angle
             view(-40, 38);
     
             axis equal; axis off;
             axis([-L, L, -L, L, 0, scale])
     
             hold on; plot3(0, 0, 3.4, 'g*'); % a marker to help with cropping
     
             pause(0.1);
             %return
     
             file = sprintf('Movie_frame%d.png', 1000+frame_no);
             %saveas(gcf, file) %save the current frame
             print(gcf, '-dpng', '-r400', file) %save the current frame
     
             disp(file); %show the frame number we are at
     
             % cut at max_fr_no frames
             max_fr_no = 15; 
             if frame_no >= max_fr_no
                break
             end
     
          end
     
          % advance in time
          W = 0*Z;
          for i=2:(N-1)
             for j=2:(N-1)
     
                W(i, j) = Z(i, j) + dt * ( Z(i+1, j) + Z(i-1, j) + Z(i, j-1) + Z(i, j+1) - 4*Z(i, j))/dx^2;
     
             end
          end
          Z = W;
     
       end
     
     
    % The gif image was creating with the command 
    % convert -antialias -loop 10000  -delay 20 -compress LZW Movie_frame10* Heat_eqn.gif 
     
    % get a function which is 1 on a set, and 0 outside of it
    function Z = get_step_function(N, scale, X, Y)
     
       c = 2;
       d=-1;
       e=1;
       f=0.5;
       k=1.2;
       shift=10;
     
       Z = (c^2-(X/e-d).^2-(Y/f).^2).^2 + k*(c+d-X/e).^3-shift;
     
       Z = 1-max(sign(Z), 0);
       Z = scale*Z;
    
    function X = rv_matrix_rows(X)
    
       [m, n] = size(XL);
    
       for i = 1:m
          j = m + 1 - i;
          if i < j
             tmp = X(i, :); X(i, :) = X(j, :); X(j, :) = tmp;
          end
       end
    

    Kurzbeschreibungen

    Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

    In dieser Datei abgebildete Objekte

    Motiv

    image/gif

    512.046 Byte

    136 Pixel

    200 Pixel

    96e56406b6ade1e16688ea1e1664479fe187b4de

    Dateiversionen

    Klicke auf einen Zeitpunkt, um diese Version zu laden.

    Version vomVorschaubildMaßeBenutzerKommentar
    aktuell19:01, 2. Feb. 2024Vorschaubild der Version vom 19:01, 2. Feb. 2024200 × 136 (500 KB)wikimediacommons>Jahobrmore frames (by user Emil Dalalyan)

    Die folgende Seite verwendet diese Datei: