Part 5: Bose-Einstein condensation in variable dimensionality
This commit is contained in:
parent
c9a67f0347
commit
f3dd440322
@ -25,7 +25,7 @@ findZeroBisect <- function(func, xl, xr, tol, maxsteps=1e6){
|
|||||||
# Solve 1a
|
# Solve 1a
|
||||||
fun.a <- function(x) {x^2-2}
|
fun.a <- function(x) {x^2-2}
|
||||||
fun.a.string <- "x^2-2=0"
|
fun.a.string <- "x^2-2=0"
|
||||||
sqrt2.estimate <- findZeroBisect(fun.a.string,1,2,1e-6)
|
sqrt2.estimate <- findZeroBisect(fun.a,1,2,1e-6)
|
||||||
# Plot 1a
|
# Plot 1a
|
||||||
if (!require("ggplot2")) install.packages("ggplot2")
|
if (!require("ggplot2")) install.packages("ggplot2")
|
||||||
library(ggplot2)
|
library(ggplot2)
|
||||||
@ -189,3 +189,54 @@ fb.estimate <- implicitFF(8000, 0.0001, 0)
|
|||||||
# 4c
|
# 4c
|
||||||
fc.estimate <- implicitFF(9000, 0.0001, 0)
|
fc.estimate <- implicitFF(9000, 0.0001, 0)
|
||||||
|
|
||||||
|
|
||||||
|
## Part 5: Bose-Einstein condensation in variable dimensionality
|
||||||
|
# a:
|
||||||
|
g <- 10000
|
||||||
|
d <- 2
|
||||||
|
l <- 0
|
||||||
|
|
||||||
|
func.five <- function(u){
|
||||||
|
(-10000/(2*pi)) +
|
||||||
|
(u/2) *
|
||||||
|
sqrt((u^2)-((d+2*l)^2)/4) +
|
||||||
|
(((d+2*l)^2)/16) *
|
||||||
|
log((u-sqrt((u^2)-((d+2*l)^2)/4))/(u+sqrt((u^2)-((d+2*l)^2)/4)))
|
||||||
|
}
|
||||||
|
|
||||||
|
func.five.string <- "function"
|
||||||
|
func.five.estimate <- findZeroBisect(func.five,50,75,1e-6)
|
||||||
|
# Plot
|
||||||
|
ggplot(data.frame(x=seq(1,80,.1)), aes(x)) +
|
||||||
|
stat_function(fun=func.five, aes(col=func.five.string)) +
|
||||||
|
geom_hline(aes(yintercept=0, col = "y=0"), show.legend=TRUE)+
|
||||||
|
geom_vline(aes(xintercept=func.five.estimate[1],
|
||||||
|
col = "bisection estimate"), show.legend=TRUE)+
|
||||||
|
ggtitle("zeroth-order dimensional perturbation theory approximation for the chemical potential of the Gross-Pitaevskii equation in d dimensions") +
|
||||||
|
xlab("x") + ylab("y") +
|
||||||
|
theme(text = element_text(size=20), plot.title = element_text(hjust = 0.5))
|
||||||
|
|
||||||
|
# b:
|
||||||
|
g <- 10000
|
||||||
|
d <- 2
|
||||||
|
l <- 1
|
||||||
|
|
||||||
|
func.five <- function(u){
|
||||||
|
(-10000/(2*pi)) +
|
||||||
|
(u/2) *
|
||||||
|
sqrt((u^2)-((d+2*l)^2)/4) +
|
||||||
|
(((d+2*l)^2)/16) *
|
||||||
|
log((u-sqrt((u^2)-((d+2*l)^2)/4))/(u+sqrt((u^2)-((d+2*l)^2)/4)))
|
||||||
|
}
|
||||||
|
|
||||||
|
func.five.string <- "function"
|
||||||
|
func.five.estimate <- findZeroBisect(func.five,50,75,1e-6)
|
||||||
|
# Plot
|
||||||
|
ggplot(data.frame(x=seq(5,80,.1)), aes(x)) +
|
||||||
|
stat_function(fun=func.five, aes(col=func.five.string)) +
|
||||||
|
geom_hline(aes(yintercept=0, col = "y=0"), show.legend=TRUE)+
|
||||||
|
geom_vline(aes(xintercept=func.five.estimate[1],
|
||||||
|
col = "bisection estimate"), show.legend=TRUE)+
|
||||||
|
ggtitle("zeroth-order dimensional perturbation theory approximation for the chemical potential of the Gross-Pitaevskii equation in d dimensions") +
|
||||||
|
xlab("x") + ylab("y") +
|
||||||
|
theme(text = element_text(size=20), plot.title = element_text(hjust = 0.5))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user