La caja cuadrada descrita arriba se cuadricula en una malla de 100x100, de tal modo que la celda básica es de 0.1x0.1.
El método que se describe a continuación, llamado de relajación, da inicialmente al potencial valores arbitrarios en todos los puntos de la malla de 100x100. Luego a los puntos que corresponden a bordes cuyos valores ya fueron dados se les da esos valores conocidos y ellos no serán tocados durante la ejecución del programa. Aunque parezca sorprendente, este método converge.
N = 100
epsilon = 0.1
/********************Inicializacion**********************/
for i=0 to 100
{
for j=0 to 100
{
V[i,j] = numero aleatorio entre -1 y 1
}
}
for i=0 to 100 do
{
V[i,0] = 0.0
V[i,10] = 0.0
V[0,i] = 0.0
V[10,i] = 0.0
}
for i=30 to 70 do
{
V[i,40] = 8.0
V[i,60] = -8.0
}
/*****************************Loop*****************************/
/** Tan pronto calcula cada V[i,j] puede ejecutar una **/
/** instruccion tipo pintar_pixel(i,j,color=entero(8+V[i,j]) **/
/** que coloca en el sitio [i,j] de la pantalla un color **/
/** que varia segun el valor del potencial. **/
iter = 0
while (iter<1000) do
{
for i=1 to 29 do
{
for j=1 to 99 do
{
V[i,j] = 0.25*(V[i+1,j]+V[i-1,j]+V[i,j+1]+V[i,j-1])
V(70+i,j) = 0.25*(V(i+71, j)+V(i+69,j)+V(i+70,j+1) + V(i+70,j-1)
}
}
for i=30 to 70 do
{
for j=1 to 39 do
{
V[i,j] = 0.25*(V[i+1,j]+V[i-1,j]+V[i,j+1]+V[i,j-1])
V(i, j+60) = 0.25*(V(i+1,j+60) + V(i-1,j+60)+V(i,j+61)+V(i,j+59))
}
for j=41 to 59 do
{
V[i,j] = 0.25*(V[i+1,j]+V[i-1,j]+V[i,j+1]+V[i,j-1])
}
}
iter = iter + 1
}
/************************************************************/
Regreso a Electromagnetismo