Note that the yield is annual yield, so the semiannual interest rate is ( y/2).

Each coupon is paid semi-annually and is (C = 100 ×2.125/100/2= 1.0625.)

The convexity (by the formula given at Chapter 3 Section 3.7 Convexity of Investment Science by Luenberger) is

(

\begin{align*}

Convexity

&= \frac{1}{P(1+y/2)^2} (

\frac{100+C}{(1+y/2)^{20}} (20^2+20)/2^2

+ \sum_{t=1}^{19} \frac{C}{(1+y/2)^t} (t^2+t)/2^2)

\\&= \frac{1}{98.39 \times (1+0.02306/2)^2} (

\frac{100+1.0625}{(1+0.02306/2)^{20}} (20^2+20)/2^2

+ \sum_{t=1}^{19} \frac{1.0625}{(1+0.02306/2)^t} (t^2+t)/2^2)

\\&= 89.75947

\end{align*}

)

But the solution is 94.18. Where am I wrong? Thanks for help!