Математичне обґрунтування алгоритму знаходження кореня рівняння

Страницы работы

Содержание работы

Математичне обґрунтування алгоритму

Нехай функція f(x) – неперервна на відрізку [a,b], на кінцях його набуває значень різних знаків, тобто f(a)*f(b)<0, похідна f’(x) зберігає на цьому відрізку знак. Виходить, усередині цього відрізка міститься корінь.

Рівняння  має корінь на відрізку [0.5..1], тому що:

f(0,5) = 0.3678794412 > 0

f(1) = − 0.8646647168 > 0

f(0,5)*f(1) < 0

Методом половинного поділу звузимо цей інтервал до [0.5..0.75]. Теорема 1 виконується й для нього (на ньому також буде корінь).

Використаємо метод простої ітерації. Перевірка достатньої умови збіжності для методу простої ітерації: для цього замінимо f(x)=0 на еквівалентне йому рівняння в вигляді х=φ(х), в нашому випадку ; знайдемо похідну цього виразу ─ 

Перевіримо на інтервалі [0.5..0,75] (графік 1).

Графік 1

За допомогою графіку  можна побачити, що на розглянутому інтервалі умова збіжності для методу простої ітерації виконується. Таким чином можна використовувати метод простої ітерації для розв'язання нелінійного рівняння .

Вибираємо початкове наближення x0. Виберемо х0 = 0,5.


Програмна реалізація

Лістинг

#include <stdio.h>

#include <math.h>

#include <conio.h>

void main()

{ double x0,x,e;

  clrscr();

  scanf("%lf%lf",&x,&e);

  do {

    x0=x;

    x=exp(-2*x0)/2+0.5;

  } while (fabs(x0-x)>e);

  printf("%f\n",x); }

Де:

  • x0 – попереднє значення;
  • x – наступне значення;
  • e – точність.

Скріншот

Пакетна реалізація

Висновок

Знайдемо корінь рівняння  в Maple та за допомогою програми, яка була створена в процесі виконання лабораторної роботи. Створена програма точно знаходить корінь з заданою точністю.

Значення в Maple: 0.6392322714.

Значення в програмі з точністю 10-5: 0.639234

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
172 Kb
Скачали:
0