problem with fix_shake angle constrain with asymmetric bonds

I am trying to apply fix shake to an angle with asymmetric bonds. but for some reason the angle fixes to another value instead of the fix value. Here is the part of the code I use to fix the angle:

units real

bond_coeff 1 1000.00 1.0
bond_coeff 2 1000.00 1.510

angle_coeff 1 100.0 109.47

fix 1 all shake 0.0001 20 0 b 1 2 a 1

I fix the bonds for the sides of the angel to 1 and 1.51 Angstrom which works fine. I also expect angle #1 to fix to 109.47 however once I run lammps with this code the angle fixes to 104 degree.

Many thanks, Sahand