Hi,
OK, there are a couple of issues here.
(1) max needs to be calculated for each f. In your code, max was calculated for f = 2000 and was used for all cases of f.
(2) NMaximize may sometimes find only a local maximum.
The following changes will fix the problems. I removed the WorkingPrecision option since it seems unnecessary.
max := Max[Table[NMaximize[Abs[rho[phi]], {phi, 0.2 i \[Pi], 0.2 (i + 1) \[Pi]}][[1]], {i, 0, 4}]];
maxx = max;
PolarPlot[Abs[rho[phi]/maxx], {phi, 0, 2 Pi}, PlotRange -> All]
This will force recalculation of max everytime it is used. In order to find the global maximum, 0 to Pi was subdivided into 5 intervals to search for the global maximum.
When generating the table, set f first, calculate max and save it as maxx and generate a list for the selected values of phi.
ms = Table[maxx = max;
Table[Abs[rho[phi]/maxx], {phi, 0, 2*\[Pi],
0.04363323129985823942309226921222*2}], {f, {2000, 2060, 2120,
2180, 2240, 2300, 2360, 2430, 2500, 2580, 2650, 2720, 2800, 2900,
3000, 3070, 3150, 3250, 3350, 3450, 3550, 3650, 3750, 3870,
4000, 4120, 4250, 4370, 4500, 4620, 4750, 4870, 5000, 5150, 5300,
5450, 5600, 5800, 6000, 6150, 6300, 6500, 6700, 6900, 7100,
7300, 7500, 7750, 8000, 8250, 8500, 8750, 9000, 9250, 9500, 9750,
10000, 10300, 10600, 10900, 11200, 11500, 11800, 12200, 12500,
12800, 13200, 13600, 14000, 14500, 15000, 15500, 16000, 16500,
17000, 17500, 18000, 18500, 19000, 19500, 20000}}]
You may take the Transpose of ms if necessary.
I checked the max values of the lists in ms and I got:
In[44]:= Max /@ ms
Out[44]= {1., 0.972359, 0.999797, 1., 0.999178, 1., 0.998816, 1., \
0.999587, 1., 0.999707, 1., 0.99784, 1., 1., 0.995071, 1., 0.999356, \
0.999327, 1., 0.999872, 0.997138, 1., 1., 1., 0.999881, 0.999385, \
0.998648, 0.972954, 0.993735, 0.922472, 1., 1., 1., 1., 1., 0.999864, \
0.99852, 1., 1., 1., 0.956176, 1., 0.997538, 0.999508, 1., 0.999849, \
0.734313, 1., 0.999998, 0.997419, 0.994247, 1., 1., 0.999931, \
0.664976, 1., 0.831829, 0.982719, 0.994, 0.999141, 0.968075, \
0.999792, 0.863026, 0.998463, 0.999967, 0.999526, 0.970138, 0.906406, \
0.999587, 0.661889, 0.999868, 0.990541, 0.999992, 0.986254, 1., \
0.996389, 1., 0.914377, 1., 0.976002}
They are all less than equal to 1, as expected. For those less than 1, the phi for the max is missing in the selected values of phi used for table generation. For those significantly less 1, e.g., 0.661889 at f = 15000, rho may be highly oscillatory.
Youngjoo Chung