Photon redshift for Schwarzschild black holes

       2 G M
 Rs = ------- 

                R1 (R2 - Rs)
 f1 = f2 sqrt[ -------------- ]
                R2 (R1 - Rs)

       f2 - f1
  z = ---------

 Where Rs = Schwarzschild radius 
        M = black hole mass
        G = gravitational constant
        c = speed of light in vacuum
       f1 = observed frequency
       R1 = observer distance from singularity (ie. center of mass of the black hole), > Rs
       f2 = emitted frequency 
       R2 = emitter distance from singularity, > Rs
        z = redshift
      [-z = blueshift]

 Calculated in two phases,
 phase 1:  Photon redshift from different emitter distances as observed at R1.
 Emitter starts at 1e12 meters away from the black hole, and approaches
 all the way to 1e-24m (billionth of a proton radius, or so).
 For each emitter distance, observed frequency [Hz] and redshift [dimensionless] are displayed.

 phase 2:  Photon redshift from selected emitter distance at different observer distances.
 Observer starts at 1 meter away from the event horizon, and gains distance
 up the decades all the way to 1e18m (>100ly)
 For each observer distance, observed frequency [Hz] and redshift [dimensionless] are displayed.

 Input as optional GET parameters [with default]:
        M = mass in Msols [1]
       R1 = observer distance in meters [1.49597871e11]
       f2 = emitted frequency in Hertz' [1e20]
        d = emitter distance from event horizon in phase 2 in meters [0.001]
   DIGITS = request more decimal places for calculations [128]


       Solar mass black hole observed from Earth:
         Same but with an emitted visible photon:
                                 Sgr A* from 1au:
           Gargantua from 3au (~Miller's planet):
      10 Sols & emit from 1m above EH in phase 2:
                Msol, visible, emitted from Rsol:
Solar mass observed from Venus, emit a microwave:

                ESA 360° black hole visualisation

Mass M = 10 Msol
Schwarzschild radius Rs = 1.9747458161907E-7 a.u. (29.541776986828km)

Phase 1:  emitter moves towards event horizon
Emission distance R2 = Rs + d (variable)
Observer distance R1 = 1.495979e+11m
Emitted frequency f2 = 1.0E+20Hz

    d [m]          f1 [Hz]        z 
1.000000e+12	 1.000000e+20	-8.396641e-8 (-0.00)
1.000000e+11	 1.000000e+20	4.897156e-8 (0.00)
1.000000e+10	 9.999986e+19	1.378350e-6 (0.00)
1.000000e+9	 9.999853e+19	1.467204e-5 (0.00)
1.000000e+8	 9.998524e+19	1.475992e-4 (0.00)
1.000000e+7	 9.985263e+19	1.475901e-3 (0.00)
1.000000e+6	 9.855486e+19	1.466328e-2 (0.01)
1.000000e+5	 8.786079e+19	1.381641e-1 (0.14)
1.000000e+4	 5.028888e+19	9.885112e-1 (0.99)
1.000000e+3	 1.809476e+19	4.526461e+0 (4.53)
1.000000e+2	 5.808285e+18	1.621679e+1 (16.22)
1.000000e+1	 1.839536e+18	5.336154e+1 (53.36)
1.000000e+0	 5.818009e+17	1.708801e+2 (170.88)
1.000000e-1	 1.839844e+17	5.425243e+2 (542.52)
1.000000e-2	 5.818106e+16	1.717772e+3 (1717.77)
1.000000e-3	 1.839847e+16	5.434234e+3 (5434.23)
1.000000e-4	 5.818107e+15	1.718672e+4 (17186.72)
1.000000e-5	 1.839847e+15	5.435134e+4 (54351.34)
1.000000e-6	 5.818107e+14	1.718762e+5 (171876.20)
1.000000e-7	 1.839847e+14	5.435224e+5 (543522.42)
1.000000e-8	 5.818107e+13	1.718771e+6 (1718770.98)
1.000000e-9	 1.839847e+13	5.435233e+6 (5435233.23)
1.000000e-10	 5.818107e+12	1.718772e+7 (17187718.79)
1.000000e-11	 1.839847e+12	5.435234e+7 (54352341.32)
1.000000e-12	 5.818107e+11	1.718772e+8 (171877196.89)
1.000000e-13	 1.839847e+11	5.435234e+8 (543523422.17)
1.000000e-14	 5.818107e+10	1.718772e+9 (1718771977.86)
1.000000e-15	 1.839847e+10	5.435234e+9 (5435234230.67)
1.000000e-16	 5.818107e+9	1.718772e+10 (17187719787.58)
1.000000e-17	 1.839847e+9	5.435234e+10 (54352342315.66)
1.000000e-18	 5.818107e+8	1.718772e+11 (171877197884.81)
1.000000e-19	 1.839847e+8	5.435234e+11 (543523423165.64)
1.000000e-20	 5.818107e+7	1.718772e+12 (1718771978857.11)
1.000000e-21	 1.839847e+7	5.435234e+12 (5435234231665.41)
1.000000e-22	 5.818107e+6	1.718772e+13 (17187719788580.05)
1.000000e-23	 1.839847e+6	5.435234e+13 (54352342316662.84)
1.000000e-24	 5.818107e+5	1.718772e+14 (171877197885809.09)

Phase 2:  observer moves away from the horizon
Emission distance R2 = Rs + 1.000000e+0m
Observer distance R1 = variable
Emitted frequency f2 = 1.0E+20Hz

R1 = Rs + [m]      f1 [Hz]        z 
1.000000e+0	1.000000e+20	0.00
1.000000e+1	3.162759e+19	2.16
1.000000e+2	1.001674e+19	8.98
1.000000e+3	3.215300e+18	30.10
1.000000e+4	1.156918e+18	85.44
1.000000e+5	6.621849e+17	150.02
1.000000e+6	5.903320e+17	168.40
1.000000e+7	5.826596e+17	170.63
1.000000e+8	5.818868e+17	170.85
1.000000e+9	5.818094e+17	170.88
1.000000e+10	5.818017e+17	170.88
1.000000e+11	5.818009e+17	170.88
1.000000e+12	5.818008e+17	170.88
1.000000e+13	5.818008e+17	170.88
1.000000e+14	5.818008e+17	170.88
1.000000e+15	5.818008e+17	170.88
1.000000e+16	5.818008e+17	170.88
1.000000e+17	5.818008e+17	170.88
1.000000e+18	5.818008e+17	170.88
1.000000e+19	5.818008e+17	170.88

Bonus GET parameters for controlling the loops: p1s = phase 1 loop start, 'outerspace', f.e. 1e24 p1d = phase 1 loop step divider, f.e. 10 or 1e1 (must be > 1) p1e = phase 1 loop end, ~event horizon, f.e. 1e-32 p2s = phase 2 loop start, ~event horizon, f.e. 1e-24 p2d = phase 2 loop step multiplier, f.e. 10 or 1e1 p2e = phase 2 loop end, 'outerspace', f.e. 1e32 Input is handled via PHPs sprintf, which limits numerical range for mass/distance to about 53 decades; the proton mass divided by solar mass is < 1e-57, and therefore proton horizon is intractable (until I maybe fix it). Example: Creative Commons Attribution by jussi.kantola @ 2017 Visualizations by Professor Andrew Hamilton and used with permission. No guarantees on accuracy or correctness of the results. source code.