Magnetic dipole in an inhomogenous magnetic field by
Ciro Santilli 37 Updated 2025-05-13 +Created 1970-01-01
To better understand the discussion below, the best thing to do is to read it in parallel with the simplest possible example: Schrödinger picture example: quantum harmonic oscillator.
"Making a measurement" for an observable means applying a self-adjoint operator to the state, and after a measurement is done:Those last two rules are also known as the Born rule.
- the state collapses to an eigenvector of the self adjoint operator
- the result of the measurement is the eigenvalue of the self adjoint operator
- the probability of a given result happening when the spectrum is discrete is proportional to the modulus of the projection on that eigenvector.For continuous spectra such as that of the position operator in most systems, e.g. Schrödinger equation for a free one dimensional particle, the projection on each individual eigenvalue is zero, i.e. the probability of one absolutely exact position is zero. To get a non-zero result, measurement has to be done on a continuous range of eigenvectors (e.g. for position: "is the particle present between x=0 and x=1?"), and you have to integrate the probability over the projection on a continuous range of eigenvalues.In such continuous cases, the probability collapses to an uniform distribution on the range after measurement.The continuous position operator case is well illustrated at: Video "Visualization of Quantum Physics (Quantum Mechanics) by udiprod (2017)"
Self adjoint operators are chosen because they have the following key properties:
- their eigenvalues form an orthonormal basis
- they are diagonalizable
Perhaps the easiest case to understand this for is that of spin, which has only a finite number of eigenvalues. Although it is a shame that fully understanding that requires a relativistic quantum theory such as the Dirac equation.
The next steps are to look at simple 1D bound states such as particle in a box and quantum harmonic oscillator.
This naturally generalizes to Schrödinger equation solution for the hydrogen atom.
The solution to the Schrödinger equation for a free one dimensional particle is a bit harder since the possible energies do not make up a countable set.
This formulation was apparently called more precisely Dirac-von Neumann axioms, but it because so dominant we just call it "the" formulation.
Quantum Field Theory lecture notes by David Tong (2007) mentions that:
if you were to write the wavefunction in quantum field theory, it would be a functional, that is a function of every possible configuration of the field .
Alfred Leitner - Liquid Helium II the Superfluid by Alfred Leitner (1963)
Source. Original source: www.alfredleitner.com.TODO WTF is this? How is it built? What is special about it?
Mentioned a lot in the context of superconducting quantum computers, e.g. youtu.be/t5nxusm_Umk?t=268 from Video "Quantum Computing with Superconducting Qubits by Alexandre Blais (2012)",
ELF Hello World Tutorial Program header table by
Ciro Santilli 37 Updated 2025-05-13 +Created 1970-01-01
Only appears in the executable.
Contains information of how the executable should be put into the process virtual memory.
The executable is generated from object files by the linker. The main jobs that the linker does are:
- determine which sections of the object files will go into which segments of the executable.
- do relocation according to the
.rela.text
section. This depends on how the multiple sections are put into memory.
readelf -l hello_world.out
gives:Elf file type is EXEC (Executable file)
Entry point 0x4000b0
There are 2 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000
0x00000000000000d7 0x00000000000000d7 R E 200000
LOAD 0x00000000000000d8 0x00000000006000d8 0x00000000006000d8
0x000000000000000d 0x000000000000000d RW 200000
Section to Segment mapping:
Segment Sections...
00 .text
01 .data
On the ELF header, and:
e_phoff
, e_phnum
and e_phentsize
told us that there are 2 program headers, which start at 0x40
and are 0x38
bytes long each, so they are:00000040 01 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 |................|
00000050 00 00 40 00 00 00 00 00 00 00 40 00 00 00 00 00 |..@.......@.....|
00000060 d7 00 00 00 00 00 00 00 d7 00 00 00 00 00 00 00 |................|
00000070 00 00 20 00 00 00 00 00 |.. ..... |
00000070 01 00 00 00 06 00 00 00 | ........|
00000080 d8 00 00 00 00 00 00 00 d8 00 60 00 00 00 00 00 |..........`.....|
00000090 d8 00 60 00 00 00 00 00 0d 00 00 00 00 00 00 00 |..`.............|
000000a0 0d 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 |.......... .....|
Structure represented www.sco.com/developers/gabi/2003-12-17/ch5.pheader.html:
typedef struct {
Elf64_Word p_type;
Elf64_Word p_flags;
Elf64_Off p_offset;
Elf64_Addr p_vaddr;
Elf64_Addr p_paddr;
Elf64_Xword p_filesz;
Elf64_Xword p_memsz;
Elf64_Xword p_align;
} Elf64_Phdr;
Breakdown of the first one:
- 40 0:
p_type
=01 00 00 00
=PT_LOAD
: this is a regular segment that will get loaded in memory. - 40 4:
p_flags
=05 00 00 00
= execute and read permissions. No write: we cannot modify the text segment. A classic way to do this in C is with string literals: stackoverflow.com/a/30662565/895245 This allows kernels to do certain optimizations, like sharing the segment amongst processes. This member gives the offset from the beginning of the file at which the first byte of the segment resides.
But it looks like offsets from the beginning of segments, not file?- 50 0:
p_vaddr
=00 00 40 00 00 00 00 00
: initial virtual memory address to load this segment to - 50 8:
p_paddr
=00 00 40 00 00 00 00 00
: unspecified effect. Intended for systems in which physical addressing matters. TODO example? - 60 0:
p_filesz
=d7 00 00 00 00 00 00 00
: size that the segment occupies in memory. If smaller thanp_memsz
, the OS fills it with zeroes to fit when loading the program. This is how BSS data is implemented to save space on executable files. i368 ABI says onPT_LOAD
:The bytes from the file are mapped to the beginning of the memory segment. If the segment’s memory size (p_memsz) is larger than the file size (p_filesz), the ‘‘extra’’ bytes are defined to hold the value 0 and to follow the segment’s initialized area. The file size may not be larger than the memory size.
The second segment (
.data
) is analogous. TODO: why use offset 0x0000d8
and address 0x00000000006000d8
? Why not just use 0
and 0x00000000006000d8
?Then the:section of the
Section to Segment mapping:
readelf
tells us that:TODO where does this information come from? stackoverflow.com/questions/23018496/section-to-segment-mapping-in-elf-files
Pinned article: ourbigbook/introduction-to-the-ourbigbook-project
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
Intro to OurBigBook
. Source. We have two killer features:
- topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculusArticles of different users are sorted by upvote within each article page. This feature is a bit like:
- a Wikipedia where each user can have their own version of each article
- a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.Figure 1. Screenshot of the "Derivative" topic page. View it live at: ourbigbook.com/go/topic/derivativeVideo 2. OurBigBook Web topics demo. Source. - local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
- to OurBigBook.com to get awesome multi-user features like topics and likes
- as HTML files to a static website, which you can host yourself for free on many external providers like GitHub Pages, and remain in full control
Figure 2. You can publish local OurBigBook lightweight markup files to either OurBigBook.com or as a static website.Figure 3. Visual Studio Code extension installation.Figure 5. . You can also edit articles on the Web editor without installing anything locally. Video 3. Edit locally and publish demo. Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension. - Infinitely deep tables of contents:
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact