Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа №12 / c2c
.txt#include<stdio.h>
#include<math.h>
//newton
void func(double x, double & fx, double & dfx)
{
fx = x*x*x-3*x+1;//ўлзЁб«ҐЁҐ § 票п дгЄжЁЁ
dfx = 3*x*x - 3; //ўлзЁб«ҐЁҐ § зҐЁп Їа®Ё§ў®¤®©
}
void newton(double x) /* newton */
{
const double tol = 1.0E-9;
int max = 20;
double fx, dfx, dx, x1;
int i;
char error;
error = 0;
i = 0;
do
{
i = i + 1;
x1 = x;
func(x,fx,dfx);
if (dfx == 0.0)
{
error = 1;
x = 1.0;
printf("%cERROR: slope zero",7);
}
else
{
dx = fx/dfx;
x = x1 - dx;
printf("x=%f, fx=%f, dfx=%f\n",x,fx,dfx);
}
}while(!(error || (i > max) || (abs(dx) <= abs(tol*x)) ));
if (i > max)
{
printf("%cERROR: no convergence in %d loops\n",7,max);
error = 1;
}
} /* newton */
void main()
{
double x = 43.356;
newton(x);//Ї а ¬Ґва x - ЇаЁ¬Ґал© Є®аҐм
}
Соседние файлы в папке Лабораторная работа №12