МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Лабораторна робота №
«Методи уточнення корення»
Постановка задачі:
Знайти корені рівняння на відрізку [2;8], за допомогою методів:
Методу ділення відрізка на половину;
Методу Ньютона;
Методу простої ітерації.
Написати програму визначення коренів рівняння.
Метод ділення відрізка на половину:
Програма:
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
main ()
{float a=2,b=7,e=0.01,x; float f(float);
if(f(a)*f(b)>0); else
{
while (fabs(b-a)>=2*e)
{x=(a+b)/2;
if (f(a)*f(x)>0) a=x; else b=x;
}
printf("Korin': %.2f",(a+b)/2);
getchar();
}}
float f(float x)
{return(5x*x-8*x+10);}
Блок-схема:
Метод Ньютона:
Програма
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
main ()
{float e=0.01,x=7; float f(float), df(float);
while(fabs(f(x)*df(x))>e)
x=x-f(x)/df(x);
printf("Korin': %.2f",x);
getchar();
}
float f(float x)
{return(5x*x-8*x+10);}
float df(float x)
{return(10*x-8);}
Блок-схема:
Метод простої ітерації:
Програма
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
main ()
{float e=0.01,xp=6,xn; float f(float), fi(float);
xn=f(xp);
while(fabs(xn-xp)<e)
xn=fi(xp);
printf("Korin': %.2f",xn);
getchar();
}
float f(float x)
{return(5x*x-8*x+10);}
Блок-схема: