Смотрите, можно проделывать длительные вычисления, но обычно поступают так: говорят, что Кд2<<Кд1 (ну если это и вправду так; в вашем случае хорошо работает), тогда пренебрегают диссоциацией по второй ступени и считают рН по первой ступени
Так как если мы считаем, что sum[i=1..n](y[i])=n*(n^2+1)/2 и есть условия, что все y разные, то можно просто записать уравнение для того, как они различаются. то есть, то, что выше.