Sunteți pe pagina 1din 8

True Laws of Nature cannot be linear. The search for truth is more precious than its possession.

Everything should be made as simple as possible, but not a bit simpler. Albert Einstein

In this article, we will use Matlab to numerically solve the heat equation ( also known as diffusion equation) a partial differential equation that describes many physical processes including conductive heat flow or the diffusion of an impurity in a motionless fluid The heat equation is a parabolic partial differential equation which describes the distribution of heat (or variation in temperature) in a given region over time.

A differential equation that contains, in addition to the dependent variable and the independent variables, one or more partial derivatives of the dependent variable is called a partial differential equation .

A General description

Suppose one has a function u which describes the temperature at a given location (x, y, z). This function will change over time as heat spreads throughout space. The heat equation is used to determine the change in the function u over time. The image to the right is animated and describes the way heat changes in time along a metal bar. One of the interesting properties of the heat equation

is the maximum principle which says that the maximum value of u is either earlier in time than the region of concern or on the edge of the region of concern. This is essentially saying that temperature comes either from some source or from earlier in time because heat permeates but is not created from nothingness Another interesting property is that even if u has a discontinuity at an initial time t = t0, the temperature becomes smooth as soon as t > t0. For example, if a bar of metal has temperature 0 and another has temperature 200 and they are stuck together end to end, then very quickly the temperature at the point of connection will become 100 and the graph of the temperature will run smoothly from 0 to 200. It's very impotant to remind that The heat equation is used in probability and desribes random

walks...

Let's go back to our problem

In three-dimensional medium the heat equation is: u/t=k*( u/x+u/y+u/z)


Here u is a function of (x,t,y,z) that represents temeperature at time at position (x,y,z) The costant k depends on the material involved,it is called the thermal conductivity in the case of heat flow and diffusion coefficient in the case of diffusion.To simplify matters let us assume that the medium is one-dimensional.This could represent heat flow in a thin insulated wire or rod

Then partial differential equation becomes:

u/t=k*( u/x)
where u is temperature at time t a distance x along the wire u=u(x,t)

A finite difference solution


A finite defference solution based in this general scheme

To solve this partial differential equation we need both initial conditions of the form u(x,t=0)=f(x) ,where f(x) gives the temperature distirbution in the wire at time 0, and boundary conditions at the endpoints of the wire,call them x=a and x=b We choose so- called Dirichlet boundary conditions u(x=a,t)=La;u(x=b,t)=Lb which correspond to the temperature being held steady at valuesLa and Lb at the two endpoints Though an exact solution is available in this scenario, let us instead illustrate the numerical method of finite differences. To begin with ,on computer we can only keep track of the temperature u

at discrete set of times and discrete set of positions. Let times be 0,t,2t,,nt t,2t,,nt ,and let the positions a,a+x,,Jx=b u(j,n)=u(a+Jt,nt).Rewriting t,nt).Rewriting the partila differential equation in terms of finite- difference approximations to the derivatives,we get g

u/t=[(u j,n+1)+(uj,n)]/t j,n+1)+(uj,n)]/

k*( u/x)=k*[(u )=k*[(u j+1,n)-2u j+1,n) j,n+(u j-1,n)]/x [(u j,n+1)+(u j,n)]/t=k*[(u t=k*[(u j+1,n)-2u j+1 j,n+(u j-1,n)]/x x
Thus if for a particualr n,we know the values of u j,n for all j we can solve equation above to find u j,n+1 for each j;

u j,n+1=[(u j,n)k*t/x t/x]*[(u j+1,n)-2u j,n+(u j-1,n)]


after some algebric manipulation we get

u j,n+1=[(u j+1,n)+(u 1,n)+(u j-1,n)]*l*(1-2*l)*(u j j,n)


where l=k*t/x In other words ,this equation tell us how to find the temperature ditribution at time step n+1 given the temperature distribution at time step n Thus our numerical implementation of the heat equation is a discretized version of the microscopic description of diffusion we gave initially, that heat energy spreads due to random interactions between nearby particles.

The following M-file which we have named heat.m

function u = heat(k, x, t, init, bdry) % solve the 1D heat equation on the rectangle described by % vectors x and t with u(x, t(1)) = init and Dirichlet % boundary conditions % u(x(1), t) = bdry(1), u(x(end), t) = bdry(2). J = length(x); N = length(t); dx = mean(diff(x)); dt = mean(diff(t)); l = k*dt/dx^2; u = zeros(N,J); u(1,:)=int; for n = 1:N-1 u(n+1, 2:J-1) = l*(u(n, 3:J) + u(n, 1:J-2)) +... (1 - 2*l)*u(n, 2:J-1); u(n+1, 1) = bdry(1); u(n+1, J) = bdry(2); end end The function takes as inputs the value of k vectors of t and and x values

a vector int and a vector bdry containing a pair of boundary values Lets use the M-file above to solve the one-dimensional heat equation with k=5 on the interval10x10 from time 0 to time 4, using boundary temperatures 16 and 26, and initial temperature distribution of 16 for x<0 and 26 forx>0. You can imagine that two separate wires of length 10 with different temperatures are joined at time 0 at position x=0, and each of their far ends remains in an environment that holds it at its initial temperature. We must choose values for t and x; lets try t=0.1 and x=0.6, tvals = linspace(0, 4, 41); xvals = linspace(-7, 7, 23); init = 21 + 7*sin(xvals); uvals = heat(5, xvals, tvals, init, [16 26]); surf(xvals, tvals, uvals) xlabel x; ylabel t; zlabel u

Here we used surf to show the entire solution u(x,t).

Conclusions
The output is clearly unrealistic; notice the scale on the u axis! The numerical solution of partial differential equations is fraught with dangers, and instability like that seen above is a common problem with finite difference schemes. For many partial differential differential equations a finite difference scheme will not work at all, but for the heat equation and similar equations it will work well with proper choice of t and x

S-ar putea să vă placă și