Movimiento browniano

prev.gif (1231 bytes)home.gif (1232 bytes)next.gif (1211 bytes)

Fenómenos de transporte

Difusión
Difusión
Medida del coeficiente 
de difusión
Simulación de la difusión

marca.gif (847 bytes)Movimiento browniano
Sedimentación
Constante Boltzmann
java.gif (886 bytes) El movimiento browniano en dos dimensiones

java.gif (886 bytes)Movimiento browniano en una dimensión. Simulación de la difusión

Referencias

Código fuente

 

Movimiento browniano en dos dimensiones

Una partícula suficientemente pequeña como un grano de polen, inmersa en un líquido, presenta un movimiento aleatorio, observado primeramente por el botánico Brown en el siglo XIX. El movimiento browniano pone de manifiesto las fluctuaciones estadísticas que ocurren en un sistema en equilibrio térmico. Tienen interés práctico, por que las fluctuaciones explican el denominado "ruido" que impone limitaciones a la exactitud de las medidas físicas delicadas.

El movimiento browniano puede explicarse a escala molecular por una serie de colisiones en una dimensión en la cual, pequeñas partículas (denominadas térmicas) experimentan choques con una partícula mayor.

 

Actividades

Se introduce

  • La masa de las partícula browniana, en el control de edición titulado Masa browniana
  • La velocidad de las partículas térmicas, en el control de edición titulado Velocidad térmicas
  • La masa de las partículas térmicas se ha fijado en la unidad
  • La partícula browniana parte del reposo
Se pulsa en el botón titulado Empieza

Observar el movimiento de la  partícula browniana

BrownianApplet1 aparecerá en un explorador compatible JDK 1.1
                   
 

Movimiento browniano en una dimensión. Simulación de la difusión

En la simulación del proceso de difusión se sitúan N partículas brownianas en el origen. Se puede visualizar en el applet la distribución de partículas en cualquier instante, contando el número de partículas (eje vertical) que hay en cada intervalo en el que se ha dividido el eje X. La simulación nos va a mostrar cómo se van extendiendo las partículas brownianas a medida que pasa el tiempo.

El modelo adoptado (véase el último artículo citado en las referencias) predice que para tiempos grandes, la media de los cuadrados de los desplazamientos es proporcional al tiempo t.

Donde D es el coeficiente de difusión

Actividades

Se pulsa en el botón titulado Empieza para comenzar la simulación.

Para obtener la distribución de partículas en cada subsistema se puede hacer de dos formas:

  1. Cuando lo desee el usuario pulsando el botón titulado Manual.
  2. De forma automática (la casilla de verificación está activada) cada cierto número de pasos que el usuario puede cambiar, indicados por el control de edición titulado Automático. El número de pasos totales (tiempo) del proceso se muestra en la parte superior derecha de la ventana del applet.

Se muestra en color rojo la representación gráfica del número de partículas en cada intervalo en el que se ha dividido el eje X.

En la parte superior izquierda del applet, se muestra el valor del cociente de la media de los cuadrados de los desplazamientos entre el tiempo. <x2>/t. Vemos que tiende hacia un valor medio y luego, fluctúa alrededor de dicho valor.

DifusionApplet4 aparecerá en un explorador compatible con JDK 1.1

Referencias

Mishima N., Yamakoshi Petrosky T., Minowa H., Goto S. Model experiment of two-dimensional Brownian motion by microcomputer. Am. J. Phys. 48 (12) December 1980, pp. 1050-1055

Anger C. D., Prescott J. R., A Monte Carlo simulation of Brownian motion in the freshman laboratory. Am. J. Phys. 38 (6) June 1970, pp. 716-719

Gunther L., Weaver D. L., Monte Carlo simulation of Brownian motion with viscous drag. Am. J. Phys. 46 (5) May 1978, pp. 543-545

 

Código fuente

Movimiento browniano en una dimensión. Simulación de la difusión

import java.util.*;
public class Sistema {
	final int nParticulas=500;
//posición
	double[] x;
//velocidad
	double[] v;
//tiempo
	int t;
//números aleatorios
	Random rnd=new Random();

public Sistema() {
	x=new double[nParticulas];
	v=new double[nParticulas];
	for(int i=0; i<nParticulas; i++){
		x[i]=0.0;
		v[i]=0.0;
	}
	t=0;
}
public void evolucion(){
	for(int i=0; i<nParticulas; i++){
		x[i]+=v[i];
		if((int)(10*rnd.nextDouble())!=9){
			v[i]*=0.9;
			if(rnd.nextDouble()>0.5){
				v[i]-=0.25;
			}else{
				v[i]+=0.25;
			}
		}
	}
	t++;
}
}

Movimiento browniano en dos dimensiones

import java.util.*;
public class Sistema {
//masa de las partículas térmicas
	final double Mt=1.0;
//masa de las partículas brownianas
	double Mb;
//velocidad de las partículas térmicas
	double Vt;
//Posición de las partícula browniana
	public double X, Y;
//Velocidad de la partícula browniana
	double Vx, Vy;
//números al azar
	Random rnd=new Random();

public Sistema(double Vt, double Mb) {
	this.Vt=Vt;
	this.Mb=Mb;
//estado inicial
	X=0;
	Y=0;
	Vx=0;
	Vy=0;
}
public void evolucion(){
	double Ux, Uy, angulo, Wx, Wy;
	angulo=2*Math.PI*rnd.nextDouble();
	Ux=Vt*Math.cos(angulo);
	Uy=Vt*Math.sin(angulo);
	Wx=Vx-Ux; Wy=Vy-Uy;
	angulo=2*Math.PI*rnd.nextDouble();
	Vy+=(Mt/(Mt+Mb))*(Wy*(Math.cos(angulo)-1)+Wx*Math.sin(angulo));
	Vx+=(Mt/(Mt+Mb))*(Wx*(Math.cos(angulo)-1)-Wy*Math.sin(angulo));
	X+=Vx;
	Y+=Vy;
}
}