COS 126 – Atomic Theory of Matter

16
COS 126 – Atomic Theory of Matter

description

COS 126 – Atomic Theory of Matter. Announcements. Project – due Friday (1/12) midnight TA Office Hours this week (check website) Lab Help (Mon-Fri 7pm-9pm) Output should EXACTLY match examples Can use Diff.java (9.6) Start early…. Exam 2 – Pickup from your TA. Atomic Theory Overview. - PowerPoint PPT Presentation

Transcript of COS 126 – Atomic Theory of Matter

Page 1: COS 126 –  Atomic Theory of Matter

COS 126 – Atomic Theory of Matter

Page 2: COS 126 –  Atomic Theory of Matter

Announcements Project – due Friday (1/12) midnight

TA Office Hours this week (check website)

Lab Help (Mon-Fri 7pm-9pm) Output should EXACTLY match

examples Can use Diff.java (9.6)

Start early…. Exam 2 – Pickup from your TA

Page 3: COS 126 –  Atomic Theory of Matter

Atomic Theory Overview Brownian Motion

Random collision of molecules Displacement over time fits a

Gaussian distribution

Page 4: COS 126 –  Atomic Theory of Matter

Atomic Theory Overview Avogadro’s Number

Number of atoms needed to equal substances atomic mass in grams

NA atoms of Carbon-12 = 12 grams

Can calculate from Brownian Motion Variance of Gaussian distribution is a

function of resistance in water, number of molecules

Page 5: COS 126 –  Atomic Theory of Matter

Bead.java Represent particles (beads) in water API

public Bead() public void add(int i, int j) public int mass() // number of pixels public double distanceTo(Bead b) // from center

(average) public String toString()

Only need 3 values to efficiently store Thoroughly test (simple main)

Page 6: COS 126 –  Atomic Theory of Matter

BeadFinder.java Locate all beads in a given image API

public BeadFinder(Picture picture, double threshold)

Calculate luminance (see Luminance.java, 3.1) Count pixels with at luminance > threshold

Find beads with DFS (see Percolation.java, 2.4) The hard part, next slide…

public Bead[] getBeads(int minSize) Returns all beads with at least minSize pixels Array must be of size equal to number of beads

Page 7: COS 126 –  Atomic Theory of Matter

Bead Finder - Depth First Search

Use boolean[][] array to mark visited

Traverse image Dark pixel – mark as visited,

continue Light pixel – create new bead,

call dfs DFS algorithm

If pixel out-of-bounds, return If pixel has been visited, return If pixel is dark, mark + return Add pixel to current bead, mark

as visited Recursively visit up, down, left,

right

Page 8: COS 126 –  Atomic Theory of Matter

Bead Finder - Depth First Search

Use boolean[][] array to mark visited

Traverse image Dark pixel – mark as visited,

continue Light pixel – create new bead,

call dfs DFS algorithm

If pixel out-of-bounds, return If pixel has been visited, return If pixel is dark, mark + return Add pixel to current bead, mark

as visited Recursively visit up, down, left,

right

Page 9: COS 126 –  Atomic Theory of Matter

Bead Finder - Depth First Search

Use boolean[][] array to mark visited

Traverse image Dark pixel – mark as visited,

continue Light pixel – create new bead,

call dfs DFS algorithm

If pixel out-of-bounds, return If pixel has been visited, return If pixel is dark, mark + return Add pixel to current bead, mark

as visited Recursively visit up, down, left,

right

Page 10: COS 126 –  Atomic Theory of Matter

Bead Finder - Depth First Search

Use boolean[][] array to mark visited

Traverse image Dark pixel – mark as visited,

continue Light pixel – create new bead,

call dfs DFS algorithm

If pixel out-of-bounds, return If pixel has been visited, return If pixel is dark, mark + return Add pixel to current bead, mark

as visited Recursively visit up, down, left,

right

Page 11: COS 126 –  Atomic Theory of Matter

Bead Finder - Depth First Search

Use boolean[][] array to mark visited

Traverse image Dark pixel – mark as visited,

continue Light pixel – create new bead,

call dfs DFS algorithm

If pixel out-of-bounds, return If pixel has been visited, return If pixel is dark, mark + return Add pixel to current bead, mark

as visited Recursively visit up, down, left,

right

Page 12: COS 126 –  Atomic Theory of Matter

Bead Finder - Depth First Search

Use boolean[][] array to mark visited

Traverse image Dark pixel – mark as visited,

continue Light pixel – create new bead,

call dfs DFS algorithm

If pixel out-of-bounds, return If pixel has been visited, return If pixel is dark, mark + return Add pixel to current bead, mark

as visited Recursively visit up, down, left,

right

Page 13: COS 126 –  Atomic Theory of Matter

BeadTracker.java Track beads between

successive images Single main function

Take in a series of images Output distance traversed

by all beads for each time-step

For each bead found at time t+1, find closest bead at time t and calculate distance

Not the other way around! Don’t include if distance >

25 pixels (new bead)

Page 14: COS 126 –  Atomic Theory of Matter

Avogadro.java Analyze Brownian motion of all

calculated displacements Lots of crazy formulas, all given,

pretty straightforward Be careful about units in the math,

convert pixels to meters, etc.

Page 15: COS 126 –  Atomic Theory of Matter

Random Thoughts… BeadTracker and Avogadro are

separate clients, must recompile both Can still do Avogadro without other

parts working, use sample input Only keep at most two pictures open

at a time (run out of memory otherwise)

Output format - System.out.printf() "%6.3f" -> _2.354 "%10.4e" -> 1.2535e-23

Page 16: COS 126 –  Atomic Theory of Matter

Announcements Project – due Friday (1/12) midnight

TA Office Hours this week (check website)

Lab Help (Mon-Fri 7pm-9pm) Output should EXACTLY match

examples Can use Diff.java (9.6)

Start early…. Exam 2 – Pickup from your TA