Цитата:
Сообщение от -Gory King-
Вот ище задачка просто другой метод и все равно тоже самое
|
Оформление ужасное. Ты все сделал, чтобы не дать прочесть с ходу код =)
Так же интересно: ты во многие функции передаешь агрументы, которые никак не влияют на результат вычислений. Зачем? Не стал убирать, м.б. ты что-то насчет них запланировал =\
Код:
#include <stdio.h>
#include <math.h>
float f1 (float x, float y) {
return 1.5-cos(x);
}
float f2 (float x, float y) {
return (1-sin(y-0.5));
}
float f1x (float x, float y) {
return -sin(x-1);
}
float f1y (float x, float y) {
return 1;
}
float f2x (float x, float y) {
return 2;
}
float f2y (float x, float y) {
return cos(y);
}
int main() {
float x0 = 1, x1, y0 = -0.2, y1, h1, k1, zn, ch_h1, ch_k1, eps = 1e-4;
int k = 0;
A:
ch_h1 = -f1(x0, y0) * f2y(x0, y0) + f2(x0, y0) * f1y(x0, y0);
ch_k1 = -f1x(x0,y0) * f2(x0, y0) + f2x(x0, y0) * f1(x0, y0);
zn = f1x(x0, y0) * f2y(x0, y0) - f2x(x0, y0) * f1y(x0, y0);
h1 = ch_h1 / zn;
k1 = ch_k1 / zn;
y1 = y0 + k1;
x1 = x0 + h1;
if (fabs(x0 - x1) > eps && fabs(y0 - y1) > eps) {
x0 = x1;
y0 = y1;
k++;
goto A;
}
printf("\n x1=%8.7f y1=%8.7f k=%d eps=%8.7f", x1, y1, k, eps);
getchar();
}
Цитата:
$ g++ 1.cpp
$ ./a.out
x1=-8169.5185547 y1=-16336.1826172 k=12651 eps=0.0001000
|