#dc, 10199 bytes
Whitespace and comments added for "readability":
2?dsi # Push 2. push input n, duplicate and store in i
1+^k # Set calculation precision to 2^(n+1)
1dddsa # Push four 1s. Store 1st in a
2v/sb # Store 1/sqrt(2) in b
4/st # Store 1/4 in t
sp # Store 1 in p
[ # Start iteration loop macro
lalb*v # Save sqrt(a*b) on stack
lalb+2/d # Save a[i+1] = (a[i]+b[i])/2 on stack and duplicate
la-d*lp*ltr- # Save t-p(a[i]-a[i+1])^2 on the stack
st # Store t result from stack
sa # Store a result from stack
sb # Store b result from stack
lp2*sp # Store 2p in p
li1-dsi0<m]dsmxdsi0<m] # Decrement iteration counter i; recurse into macro if < 0
dsmx # Duplicate, store and run macro
K2/1-k # Set display precision to 2^n-1
lalb+d*4lt*/ # Save (a+b)^2/4t on stack
nAPp # Print result