El Ratio de Sharpe se define como la pendiente de la línea que es la rentabilidad en función de la varianza de una cartera compuesta por un activo con riesgo y otro sin riesgo.
Por lo tanto, si tiene un grupo de activos de riesgo (A,B) y otro de menor riesgo (C), basta con que calcule la cartera eficiente para su activo de riesgo (A,B), y luego calcule el ratio de Sharpe para la cartera tangencial.
En otras palabras, las propiedades de la combinación de activos A,B (dada $x_A + x_B = 1$ ) son, $$\mu_e = \mu_A x_A + \mu_B x_B = \mu_A x_A + \mu_B (1-x_A)=x_A(\mu_A - \mu_B)+\mu_B, $$ $$\sigma^2_e = \sigma^2_A x^2_A + \sigma^2_B x^2_B + \sigma_{AB}x_A x_B = x^2_A (\sigma^2_A+\sigma^2_B-2\sigma_{AB}) +2 x_A(\sigma_{AB} - \sigma^2_B) + \sigma^2_B,$$ con $mu$ los rendimientos esperados, y $\sigma^2$ los riesgos.
Esto da como resultado que cuando se considera el activo libre de riesgo C en la mezcla se tiene $$\mu_p = (1-x_e) r_f + x_e \mu_e = r_f + x_e(\mu_e-r_f),$$ con $r_f$ la rentabilidad libre de riesgo, en su caso la rentabilidad del 4% de C. La varianza viene dada únicamente por la parte de riesgo de la cartera, por lo que $$\sigma^2_p = x^2_e \sigma^2_e,$$ a partir de la cual se puede definir convenientemente el peso que se debe dar a la cartera eficiente como $$x_e = \sigma_p / \sigma_e,$$ determinando que $$\mu_p = (1-x_e) r_f + x_e \mu_e = r_f + \frac{(\mu_e-r_f)}{\sigma_e}\sigma_p.$$
El coeficiente angular de dicha línea, que nos indica que se puede afinar la rentabilidad esperada sobre la volatilidad utilizando el tipo libre de riesgo como amortiguador (y eventualmente poniéndose en corto sobre él), se conoce como Ratio de Sharpe, $$\frac{(\mu_e-r_f)}{\sigma_e}.$$
Si se sustituye por $\sigma_e$ y $\mu_e$ con las ecuaciones dadas anteriormente, se tiene el ratio sharpe en función de $x_A$ (o Wpa, como tú lo llamas).
Para esta primera asignación la función Utilidad no es necesaria, pero supongo que será útil más adelante cuando pida usarla para calcular los pesos deseados.