Maple Code for Equilibrium Temperature Problem

Load needed packages:

  with(plots): with(linalg):
Set up array to hold the temperatures:
  n := 21;
  t := array(1..n, 1..n):
Define the equations which express the mean value principle:
  eq := array(2..n-1, 2..n-1);
  for i from 2 to n-1 do
    for j from 2 to n-1 do 
     eq[i,j] := t[i,j] = (1/4)*( t[i+1,j] + t[i,j+1] + t[i-1,j] + t[i,j-1] );
    od; 
  od;
Verify an equation:
  eq[2,4];
Define the boundary values:
  for i from 1 to n 
  do
     t[1,i] := 1.0;
     t[i,1] := 1.0;
   od:
  for i from 2 to n 
  do
     t[n,i] := 0.0;
     t[i,n] := 0.0;
   od:
Convert the array of equations to a set so that they will have the right type for solve:
  eqs := convert(eq, set):
Solve the equation:
  sol := solve( eqs ):
Assign the solutions found to the array t:
  assign(sol);
Verify a temperature. The temperature of the middle cell be very close to the average temperature of the boundary values.
  t[11,11];
Plot the result:
 
  matrixplot(t);


Back