Лабораторна по ЧМ 1
.docxЛабораторна робота №1
виконав студент групи АК-3-2ск
Козловський Євгеній
Варіант 14
Постановка задачі
Знайти корінь нелінійного рівняння методами:
ділення відрізка навпіл;
простої ітерації;
Ньютона
З заданою точністю ε, де , .
Знаходження кореня (розв'язку) нелінійного рівняння складається з двох етапів:
1) відокремлення коренів;
2) уточнення коренів
Відокремлення кореня (коренів) виконаємо графічним методом. Для цього на декартовій площині побудуємо графік функції f(x) і знайдемо інтервал [a,b] (або інтервали, якщо коренів декілька), який містить один єдиний корінь рівняння f(x)=0. Точки перетину графіка функції f(x) з віссю OX і є коренями рівняння f(x)=0.
Рисунок 1.1 – Графік функції
З графіків випливає, що найменший додатній корінь знаходиться на інтервалі [a,b], де а=1, b=2.
Для того, щоб переконатись в цьому, перевіримо критерій існування кореня на відрізку [a,b]: f(a)f(b)<0, тобто функція f(x) на кінцях відрізку [a,b] повинна приймати різні знаки . Отже, на інтервалі [a,b]=[1,2] дійсно існує єдиний корінь рівняння f(x)=0. На цьому етап відокремлення кореня закінчено. Переходимо тепер до етапу уточнення кореня.
Уточнення кореня методом ділення відрізка навпіл
Знаходимо середину відрізка [a,b], яку позначимо точкою c=1,5, обчислюємо значення функції в цій точці f(a)f(с)=0,119. Так як f(a)f(c)>0, то на відрузку [a,c] маємо корінь.
Відрізок [с,b] відкидаємо і залишаємо відрізок [a,c], який для зручності знову позначимо через [a,b].
Перевіримо умову зупинки метода: b-a<ε, де , 1.5-0.119> ε.
Оскільки Δ>ε, тобто заданої точності ми ще не досягли, то переходимо до наступних ітерацій, тобто знову ділимо зменшений відрізок [a,b] навпіл і послідовність дій повторюється поки умова не виконається.
Рисунок 1.2 – Обчислення а, b за допомогою програмного забезпечення MatCad
Уточнення кореня методом простої ітерації
Нелінійне рівняння перетворимо до канонічного виду .
Перевіримо достатню умову збіжності метода простої ітерації. Для цього знайдемо похідну.
,
Будуємо графік функції |g(x)|
Рисунок 1.1 – Графік функції |g(x)|
Зробимо декілька кроків методом простої ітерації:
Рисунок 1.4 – Розрахунок методом простої ітерації
Уточнення кореня методом Ньютона
Знайдемо похідну , і обчислимо декілька ітерацій:
Рисунок 1.5 – Розрахунок методом простої Ньютона
Програми
Уточнення кореня методом ділення відрізка навпіл
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{ setlocale (LC_ALL, "Russian"); // виведення російської мови
double a,b,c,e,fc,fa,ffa;
printf("Введите а = ");
scanf("%lf",&a);
printf("Введите b = ");
scanf("%lf",&b);
do { c = (a+b)/2;
fc =tan(0.36*c+0.4)-c*c+1;
fa = tan(0.36*a+0.4)-a*a+1;
ffa = fa*fc;
e = fabs(b-a);
if (ffa > 0) {
a = c ; }
else if (ffa < 0) {
b = c; }
e = (b-a) < 0 ? (b-a)*(-1) : b-a;
printf("a=%1.4f \n", a );
printf("b=%1.4f \n", b );
printf("С=%1.4f \n", c );
printf("e=%1.4f \n \n", e );
} while ( e > 0.001 );
return 0;}
Рисунок 1.6 – Результат виконання
Уточнення кореня методом простої ітерації
#include <math.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
setlocale (LC_ALL, "Russian") ; // виведення російської мови
double d ,e = 0.001, x0, z ;
printf("Введите x0 = ");
scanf("%lf",&x0);
for(;;)
{
z = sqrt(tan(0.36*x0+0.4)+1);
if (fabs(z - x0) < e) break;
d= z-x0;
x0 = z;
printf("z=%1.4f \n", z );
printf("d=%1.4f \n \n", d );
}
return 0;
}
Рисунок 1.7 – Результат виконання
Уточнення кореня методом Ньютона
#include <math.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
setlocale (LC_ALL, "Russian");
double f, df,y,eps=0.001,y1,w;
int i = 0;
printf("Введите y0 = ");
scanf("%lf",&y);
do {
f = 3*pow(y,2)+7*sin(y);
df = 7*cos(y)+6*y;
y1=y;
y = y - f / df;
w=fabs(y-y1);
i++;
printf("y=%1.4f \n", y );
printf("w=%1.6f \n \n", w );
} while (fabs(f) > eps );
return 0;
}
Рисунок 1.7 – Результат виконання
Висновок: на даній лабораторній роботі знайшов корінь нелінійного рівняння за допомогою методів:
1) ділення відрізка навпіл, визначивши, що корінь знаходиться в проміжку від 1.56 до 1.561;
2) простої ітерації, визначивши, що корінь знаходиться в проміжку від 1.559 до 1.56;
3)метод Ньютона, визначивши, що корінь знаходиться в проміжку від 1.56 до 1.564.