Программирование на с++ - Вопросы по С+

Вопрос Программирование на с++

Регистрация
13 Дек 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
875a8375f91de049494d6073098e8a2f_4ab39e8aaecc31d35677af0868f5c298.png

помогите, пожалуйста
 
Регистрация
4 Июл 2013
Сообщения
95
Репутация
0
Спасибо
0
Монет
0
Насколько я понимаю тут вычисляется один из корней квадратного уравнения y²-y-x=0 (если они вообще есть, а если нет, то понятия не имею что вычислится - это надо смотреть !), то есть у=0,5±√(х+0,25), а какой из них зависит от начального приближения. #include
#include

using namespace std;

int main()
{
int n; double a, x, y, Y, ε, eps;
printf("x a ε: ");
scanf("%lf%lf%lf", &x, &a, &ε);
y = a;
printf(" 1)%25.16f\n", y);
for (n = 2;; n++)
{
Y = (y + x / (y - 1.)) * 0.5;
eps = fabs(Y * Y - y * y);
printf("%3d)%25.16f %e\n", n, Y, eps);
if (eps < ε) break;
else y = Y;
}
getchar(); getchar(); return 0;
} Это если y₁=a, иначе вообще не понимаю зачем тут эта а. Вот берём, скажем х=24,75, есть два корня квадратного уравнения у=-4,5 и у=5,5, если взять а=3, то вот что получится:
294565678_54f4cb61ef5ee892a9a632d447a9894e_800.jpg

А если взять а=-3, то вот что:
294565678_6b209228840f0f697797670fbe1bf4eb_800.jpg

В первом случае n оказалось равным двадцати, а во втором семнадцати, но корни уравнения оба правильные...
 
Сверху Снизу