Trying to plot frequency response of a filter Transfer Function in MATLAB, it looks wrong I have the transfer function below which is for a IIR filter and trying to plot its frequency response for omega&lt;pi. r=0.99 and theta=pi/3:

Here is my attempt at implementing it in MATLAB:
N=5000;
W=(0:pi/(N-1):pi);
r1=0.99;
theta=pi/3;
z= exp(j*W);

num= (1-r1);
den= (1-2*r1*cos(theta)*z.^(-1)+r1^(2)*z.^(-2));
TF=num./den;
TFdb= 20*log10(TF);
plot(W,TFdb)

Here is what I get:

Apparently it should look like this:

I am very new to this and can't tell what I'm doing wrong, would appreciate if anyone can help.
How did you derive the second figure? I got the different result using the following code:
b = 1 - r1;
a = [1, -2*r1*cos(theta), r1^(2)];
figure; freqz(b, a)

)
The only problme I can find in your code is that
TFdb= 20*log10(TF);
should be
TFdb= 20*log10(abs(TF));
Did you take the wrong sign of $a_1$ when calculating second transfer function?
b = 1 - r1;
a = [1, 2*r1*cos(theta), r1^(2)];

The above code generates the second figure.