Higidura browndarra

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

Garraio fenomenoak

Difusioa
Difusioa
Nola neurtu difusio 
koefizientea
Difusioaren
simulazioa

marca.gif (847 bytes)Higidura browndarra
Jalkiera
Boltzmann-en
konstantea
java.gif (886 bytes) Higidura browndarra bi dimentsiotan

java.gif (886 bytes) Higidura browndarra dimentsio bakarrean. Difusioaren simulazioa

Erreferentziak

Programazio-kodea

 

Higidura browndarra bi dimentsiotan

Partikula txiki-txiki bat, esaterako polen ale bat, likido batean murgiltzean, ausazko higiduraz mugitzen da, etengabe. Horrelako higidura mota behatu zuen lehena Robert Brown izan zen, botanikari eskoziarra, XIX mendean. Higidura browndarrak erakusten du oreka termikoan dagoen sistema batek fluktuazio estatistikoak dauzkala. Oso interesgarria da, zeren neurketa fisiko delikatuenek izan dezaketen zehaztasuna mugatzen baitu.

Higidura browndarra eskala mikroskopikoan uler daiteke, partikula txiki horrek etengabeko talkak jasaten dituelako inguruko likidoko  molekulekin (partikula "termiko" deiturikoekin).

Saiakuntza

Aukeran idatz daitezke:

  • Partikula browndarraren masa dagokion laukian idatziz.
  • Partikula termikoen abiadura dagokion laukian idatziz.

Partikula termikoen masa unitatetzat hartzen da (mt=1) eta beraz, partikula browndarraren masa haiekiko erlatiboa da. Partikula browndarra pausagunetik abiatzen da.

Hasi botoian klikatu.

Beha ezazu partikula browndarraren higidura, polen aleak mikroskopioan egiten duena bezalakoxea.

BrownianApplet1 aparecerá en un explorador compatible JDK 1.1
                   
 

Higidura browndarra dimentsio bakarrean. Difusioaren simulazioa

Aurreko kapituluan difusioaren simulazioa burutzen da, non, N partikula browndar koordenatuen jatorrian kokatzen diren eta inguruetara eboluzionatzen duten. Kapitulu horretako applet-ean partikulen banaketa aurki daiteke askatu ondorengo edozein aldiunetan n(x,t),  X ardatzean zehar hartu diren kutxa bakoitzaren partikula kopuruak zenbatuz. Simulazioak erakusten du nola sakabanatzen diren partikula browndarrak X ardatzean zehar denbora pasa ahala.

Erabilitako eredu matematikoaren arabera (ikus bedi erreferentzietan aipatutako azken artikulua) denbora luzeetarako, desplazamenduen karratuen bataz bestekoa (desplazamendu koadratikoa) t denborarekiko proportzionala da:

eta hemen D difusio koefizientea da

Saiakuntza

Hasi botoian klik egin simulazioa abiatzeko.

Programak kalkulu-urratsak egiten ditu eta urrats-kopurua goiko eta eskumako erpinaren inguruan erakusten du (denbora). Kutxa-segida osoaren partikula kopuruen distribuzioa bi modutan erakuts daiteke:

  1. Erabiltzaileak nahi duenean Manuala botoian klik eginez.
  1. Automatikoki (laukitxoa aktibatu behar da), eta urrats-kopuru jakin bat aukeratu. Orduan, programak N urrats burutzen dituen bakoitzean kutxetako populazioak eguneratzen ditu.

Azpialdean kutxa segida ikusten da eta partikula higikorrak puntu gorriz adierazita. Gaineko grafikoan kutxa bakoitzaren populazioa marra urdinaz adierazten da. Leihatilaren goiko eta ezkerreko erpinean erakusten da, desplazamenduen karratuen batez besteko balioa zati denbora: <x2>/t. Ikus daitekeenez, hazi egiten da balio finko baterantz baina gero fluktuatu egiten du balio horren inguruan.
DifusionApplet4 aparecerá en un explorador compatible con JDK 1.1

Erreferentziak

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

 

Programazio kodea

Higidura browndarra dimentsio bakarrean. Difusioaren simulazioa.

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++;
}
}

Higidura browndarra bi dimentsiotan

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;
}
}