Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДИЧКА ВІЧ МАТ-13-correct.doc
Скачиваний:
22
Добавлен:
17.03.2016
Размер:
5.37 Mб
Скачать

Приклади розв’язання заданих задач Завдання 1

F(x)=ln2(x)- ln(x)-2

Рисунок 4.5 – графічна ілюстрація розміщення коренів рівняння , виконана за допомогою програми Advanced Grapher.

Метод дотичних

#include <iostream.h>

#include <stdio.h>

#include <math.h>

float a, b, EPS=10E-7;

float x1, DELTA, x2;

int n=0;

int main() {

cout<< "\n\n*********************************************************************\n\n";

cout<< " Metod dotuchnuh (2.1.8) ";

cout<< "\n\n*********************************************************************\n\n";

cout<< " Vvedit megi a : "; cin>>a;

cout<< " b : "; cin>>b;

x1=(a+b)/2;

do { n=n+1;

x2=x1-(log(x1)*log(x1)-log(x1)-2)/(2*log(x1)/x1-1/x1);

DELTA=fabs(x2-x1);

if (DELTA>EPS)

x1=x2; }

while(DELTA>EPS);

printf (" Korin'=%40.37f\n",x2);

printf (" Chuslo iteratsiu=%i",n);

cout<< "\n\n*********************************************************************\n\n";

printf (" Tochnist E = %40.37f\n",EPS);

getchar();

return 0;

Метод поділу

include <stdio.h>

#include <math.h>

float a, b, x, u, DELTA, EPS=10E-7 ;

int n=0;

int main(){

cout<< "\n\n*********************************************************************\n\n";

cout<< " Metod podilu (2.1.8) ";

cout<< "\n\n*********************************************************************\n\n";

cout<< " Vvedit megi a : "; cin>>a;

cout<< " b : "; cin>>b;

do { x=(a+b)/2;

u=log(x)*log(x)-log(x)-2;

if ((log(a)*log(a)-log(a)-2)*u<0)

b=x; else a=x; n=n+1;

DELTA=fabs(b-a); }

while(DELTA>EPS);

printf (" Korin = %40.37f\n",x);

printf (" Chuslo iteratsiu = %i",n);

cout<< "\n\n*********************************************************************\n\n";

printf (" Tochnist E = %40.37f\n",EPS);

getchar();

return 0;

}

Метод послідовних наближень

F(x)=x5+a4x4+a3x3+a2x2+a1x1+a0

a4=-30.0072 a3=105.6798 a2=-122.0716 a1=60.24546 a0=-13.0072

#include <stdio.h>

#include <math.h>

float EPS=10E-7, x1, x, DELTA;

float c0=-13.0072,c1=60.24546,c2=-122.0716,c3=105.6798,c4=-30.19201;

int n=0;

int main(){

cout<< " Metod podilu (2.1.8) ";

cout<< " Vvedit megi a : "; cin>>x;

do{ x1=-(pow(x,5)+c4*pow(x,4)+c3*pow(x,3)+c2*pow(x,2)+c0)/c1;

n=n+1; DELTA=fabs(x1-x); x=x1;

}while(DELTA>EPS);

printf("Korin'= %f\n",x1);

printf("Chuslo iteratsiu= %i\n",n);

getchar();

return 0;

Контрольні питання

  1. Постановка задачі розв’язку нелінійних рівнянь. Основні етапи розв’язку задачі.

  2. Метод простої ітерації розв’язку нелінійного рівняння: опис методу, умови та швидкість збіжності, критерій закінчення, геометрична ілюстрація, приведення до виду, зручному для ітерацій.

  3. Метод Ньютона розв’язку нелінійного рівняння: опис методу, теорема про збіжності, критерій закінчення, геометрична ілюстрація.

  4. Недоліки методу Ньютона. Модификації методу Ньютона. Модификація методу Ньютона для пошуку кратних коренів.

  5. Інтервал невизначеності кореня.

  6. Визначити кількість коренів рівняння і для кожного кореня знайти відрізки локалізації:

a) , b) .

  1. Знайти дійсний корінь рівняння методом бісекції з точністю .

  2. Виписати ітераційну формулу і вказати початкове наближення для розв’язку рівняння .

  3. Розв’язується рівняння . Визничити, який із ітераційних процесів збігається до кореня :

, , .

  1. Побудувати ітераційний процес Ньютона для обчислення числа , a>0, де p – натуральне число.