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