Your reasoning is incorrect, because once you have the number of individuals surviving after the 50% mortality you can't just give them all one identical offspring, you have to mate them with one another.

Here is my reasoning:

f(A)=0.3

f(a)=0.7

calculate genotype frequencies:

AA = 0.32 = 0.09

aa = 0.72 = 0.49

Aa = 2 * 0.3 * 0.7 = 0.42

(these add to 1 as expected)

use 1000 individuals for nice round numbers

number AA = 90

number aa = 490

number Aa = 420

Now apply 50% mortality in aa individuals:

number AA => 90

number aa => 245

number Aa => 420

now calculate new allele frequencies in mating population:

f(A) = (90 + 90 + 420)/1510 = 600/1510

f(a) = (245 + 245 + 420)/1510 = 910/1510

calculate proportion of heterozygote offspring

= 2 * f(A) * f(a)

= (1200 * 910)/(1510 * 1510)

= 0.479

I hope someone can see where I'm going wrong.

Your reasoning is incorrect, because once you have the number of individuals surviving after the 50% mortality you can't just give them all one identical offspring, you have to mate them with one another.

Here is my reasoning:

f(A)=0.3

f(a)=0.7

calculate genotype frequencies:

AA = 0.32 = 0.09

aa = 0.72 = 0.49

Aa = 2 * 0.3 * 0.7 = 0.42

(these add to 1 as expected)

use 1000 individuals for nice round numbers

number AA = 90

number aa = 490

number Aa = 420

Now apply 50% mortality in aa individuals:

number AA => 90

number aa => 245

number Aa => 420

now calculate new allele frequencies in mating population:

f(A) = (90 + 90 + 420)/1510 = 600/1510

f(a) = (245 + 245 + 420)/1510 = 910/1510

calculate proportion of heterozygote offspring

= 2 * f(A) * f(a)

= (1200 * 910)/(1510 * 1510)

= 0.479

I hope someone can see where I'm going wrong.