跳转到内容

File:Heat eqn.gif

页面内容不支持其他语言。
这个文件来自维基共享资源
维基百科,自由的百科全书

Heat_eqn.gif (200 × 136像素,文件大小:500 KB,MIME类型:image/gif、​循环、​181帧、​6.0秒)


摘要

描述
English: Illustration of the Heat equation.
日期 (UTC)
来源 自己的作品
 
本GIF 位图使用MATLAB创作.
作者 Oleg Alexandrov
其他版本

许可协议

Public domain 我,本作品著作权人,释出本作品至公有领域。这适用于全世界。
在一些国家这可能不合法;如果是这样的话,那么:
我无条件地授予任何人以任何目的使用本作品的权利,除非这些条件是法律规定所必需的。

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

说明

添加一行文字以描述该文件所表现的内容

此文件中描述的项目

描绘内容

创作作者 简体中文(已转写)

某些值没有维基数据项目

作者姓名字符串 简体中文(已转写):​Oleg Alexandrov
维基媒体用户名 简体中文(已转写):​Oleg Alexandrov

版权状态 简体中文(已转写)

文件来源 简体中文(已转写)

上传者的原创作品 简体中文(已转写)

媒体类型 简体中文(已转写)

image/gif

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2024年2月2日 (五) 18:012024年2月2日 (五) 18:01版本的缩略图200 × 136(500 KB)Jahobrmore frames (by user Emil Dalalyan)
2019年4月12日 (五) 01:252019年4月12日 (五) 01:25版本的缩略图200 × 136(172 KB)Jorge StolfiDuplicated some framed at beginning so that readers can see the initial state. Added a couple blank frames at end to make it clear that the simulation ended. Slowed down the movie a bit.
2011年4月24日 (日) 19:582011年4月24日 (日) 19:58版本的缩略图200 × 136(116 KB)Oleg AlexandrovReverse the colormap (red is high).
2007年11月23日 (五) 06:112007年11月23日 (五) 06:11版本的缩略图199 × 140(126 KB)Oleg AlexandrovTweak, same license
2007年11月23日 (五) 05:512007年11月23日 (五) 05:51版本的缩略图200 × 129(112 KB)Oleg Alexandrov{{Information |Description=Illustration of the en:Heat equation |Source=self-made with Matlab |Date=~~~~~ |Author= Oleg Alexandrov |Permission=PD-self, see below |other_versions= }} {{PD-self}} ==MATLAB source code== <pre>

以下页面使用本文件:

全域文件用途

以下其他wiki使用此文件: