もしかしてtaって時間の配列なのかな?もしそうなら、
一つ目のfor文の中の
double t = i * dt;
ya[i] = sin(2.0 * M_PI * f * t);
を
ta[i] = i * dt;
ya[i] = sin(2.0 * M_PI * f * ta[i]);
にして、
二つ目のfor文の中の
double t = i * dt;
を削除して、
fs << t << "," << ya[i] << endl;
を
fs << ta[i] << "," << ya[i] << endl;
に修正。