![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
asia |
![]()
Сообщение
#1
|
Школьник ![]() Группа: Продвинутые Сообщений: 43 Регистрация: 27.11.2008 Город: SPb Вы: студент ![]() |
Здравствуйте, прошу проверить, нет уверенности, что метод выполнен верно
Код #include <stdio.h> #include <math.h> void main(){ double y; //f(x) double x; double x0, x1;//границы отрезка double x2, d1,d2;// d1-первая производная, d2-вторая производная double exp=0.001; //точность вычисления printf("x0 = "); scanf("%lf ",&x0); printf("x1 = "); scanf("%lf ",&x1); y=2*pow(x,3)-3*pow(x,2)+12*x-12; d1=6*pow(x,2)-6*x+12; d2=12*x-6; while(abs(x-x2)>exp){ x=x2; if((x0*d2)>exp){ x=x0; x2=x-y/d1; } else if((x1*d2)>exp){ x=x1; x2=x-y/d1; } }; printf ("\n Kasatelnix : x=%.3lf",x2); y=f(x2); printf (" y=%.3lf",y); return 0; } Заранее спасибо! |
![]() ![]() |
steph |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 66 Регистрация: 21.12.2008 Город: Санкт-Петербург Вы: студент ![]() |
У Вас используется
abs(x-x2)>exp, abs возвращает абсолютное значение , не учитывая знаков после точки. Чтобы применить в данном случае точность нужно записать просто : (x-x2)>exp У Вас не определены функции y=2*pow(x,3)-3*pow(x,2)+12*x-12; d1=6*pow(x,2)-6*x+12; d2=12*x-6; Это будут просто числа , не функции, в Вашем случае они будут 0 все. А вот так будет функция.( на примере y) double func(double x) { return (2*pow(x,3)-3*pow(x,2)+12*x-12); } int main() { double y=0; y=func(1.0); return 0; } |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 17:17 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru