Скачиваний:
15
Добавлен:
01.05.2014
Размер:
24.06 Кб
Скачать

#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