Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДОСЛІДЖЕННЯ ЧИСЕЛЬНИХ МЕТОДІВ ВИРІШЕННЯ НЕЛІНІЙНИХ РІВНЯНЬ МЕТОДАМИ НЬЮТОНА, СІЧНИХ ТА ПРОСТОЇ ІТЕРАЦІЇ.docx
Скачиваний:
73
Добавлен:
02.10.2018
Размер:
393.22 Кб
Скачать

Висновки

В даній курсовій роботі було проаналізовано розв’язок нелінійних рівнянь методами Ньютона, січних та простої ітерації. В результаті роботи було досліджено існуючі методи для розв’язання таких рівнянь, а більш детально розглянуті вище згадані методи. Для цих методів було складено схему, а також написано програму на мові програмування С++. В результаті роботи за допомогою складеної програми було отримано певні корені заданого рівняння. Також було доведено, що метод Ньютона має значно вищу швидкість збіжності і для знаходження коренів потрібно значно менше ітерацій.

Перелік посилань

  1. Квєтний Р. Н. Методи комп’ютерних обчислень: Навчальний посібник. Вінниця.: ВДТУ, 2001. – С. 35.

  2. Вержбицький В. М. Основы численных методов. – М.: Высшая школа, 2002. – С. 43.

  3. Лященко М.Я., Головань М.С. Чисельні методи : Підручник. – К.: Либідь, 1996. – С. 144.

  4. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. – М.: Наука, 1987. – С. 83.

  5. posibnyky.vntu.edu.ua Лекція №4. Чисельні методи розв'язання нелінійних рівнянь[Електронний ресурс] / posibnyky.vntu.edu.ua. - Режим доступу: http://posibnyky.vntu.edu.ua/met/lek9.htm

  6. Chaos Методи нелінійних рівнянь (рос) [Електронний ресурс] / Chaos. – Режим доступу: http://chaos.sgu.ru/K24/MND/algoritms/algoritms.html

  7. BR.com.ua Нелінійні рівняння [Електронний ресурс] / BR.com.ua. – Режим доступу: https://www.br.com.ua/kurs/Mathematic/10852-1.html

//6-го і 7-го посилання не існує(зробіть цю стрічку пустою, вона не для друку!)

Додатки додаток а Схема програми

Рисунок А.1 – Схема програми

Наведені модулі програми відповідають схемам алгоритмів, наведеним у розділі 2.

Додаток б Лістинг програми

#define _USE_MATH_DEFINES

#include <iostream>

#include <cmath>

using namespace std;

double findNewton(double x, double eps)

{

double f, df; int iter = 0;

cout << "Newton's method:" << endl;

cout << "x0= " << x << "," << endl;

do {

f = (x*x*x*x*x)-(x*x*x*x)-3*sin(x*x)-14*x-1;

df =5*x*x*x*x-4*x*x*x-6*sin(x)*cos(x)-14;

x = x - f / df;

iter++;

} while (fabs(f) > eps && iter<20000);

cout << iter << " iterations," << endl;

cout << "epsilon = " << eps << endl;

cout << "result: ";

return x;

}

double findSecant(double x0, double x1, double eps)

{

double rez = x1, f0, f;

int iter = 0;

cout << "Secant method:" << endl;

cout << "epsilon = " << eps << "," << endl;

cout << "x0= " << x0 << " x1= " << x1 << "," << endl;

do {

f = (rez*rez*rez*rez*rez)-(rez*rez*rez*rez)-3*sin(rez*rez)-14*rez-1;

f0 = (x0*x0*x0*x0*x0)-(x0*x0*x0*x0)-3*sin(x0*x0)-14*x0-1;

rez = rez - f / (f - f0)*(rez - x0);

iter++;

} while (fabs(f) > eps && iter<20000);

cout << iter << " iterations"<< "," << endl;

cout << "result: ";

return rez;

}

double findSimpleIteration(double x, double eps)

{

double rez; int iter = 0;

cout << "Simple iteration method:" << endl;

cout << "epsilon = " << eps << "," << endl;

cout << "x0= " << x << " ";

do {

rez = x;

x = x-0.0035*(x*x*x*x*x-x*x*x*x-3*sin(x*x)-14*x-1);

iter++;

} while (fabs(rez - x) > eps && iter<20000);

cout << iter << " iterations" << "," << endl;

cout << "result: ";

return x;

}

int main()

{

cout << findNewton(-2, 0.01) << endl;

cout << findSecant(-2.0, 3.0, 0.01) << endl;

cout << findSimpleIteration(-2, 0.01);

cin.get(); return 0;

}

// (Перед друком видаліть цей коментар).

Увага! У даній курсовій роботі необхідні деякі технічні поправлення але лише в деяких місцях (наприклад може бути на певних сторінках, а не на всіх, але їх дуже мало, приблизно 2), і відсутні повні розв’язання для індивідуального завдання (Такі розв’язання, як зазвичай пишуть в зошиті. Саме повні розв’язання, а не одразу результати. Це мав би бути додаток В окрім додатків А і Б) тому вона розрахована максимум на оцінку 4 , враховуючи максимальний захист.

Якщо бажаєте досконало зробити курсову роботу, я рекомендую вам часто просити допомоги у викладачів, які викладають у вас цей предмет або інших викладачів, які читають лекції або приймають лабораторні роботи(це й такі, які не у вас викладають) у вашому університеті. Вони вам допоможуть швидко збутися курсача.

Корисні посилання:

Посилання на сайт з кодами програм для розв’язання нелінійного рівняння методами Ньютона (дотичних), січних (хорд), простої ітерації та половинного ділення (дихотомії):

http://prog-cpp.ru/digital-find/

Посилання на калькулятор, з допомогою якого були виконані обчислення і побудовані графіки і цієї курсової роботи:

https://math.semestr.ru/optim/newton.php

Також цим калькулятором можна створювати exel таблиці для розрахунків і відображення результатів розрахунків.

Посилання на зручний, універсальний компілятор, який був використаний для написання і перевірки кодів програми цієї курсової роботи:

https://www.onlinegdb.com/online_c++_compiler

Ще корисні посилання:

  1. http://eco.sutd.ru/mathcad/docs/nle/examples.htm http://eco.sutd.ru/mathcad/docs/nle/examples.htm

  2. https://www.intuit.ru/studies/courses/3479/721/lecture/25556?page=6

  3. http://static.krasurao.ru/krasurao.ru/bvv/matlabcalc/lecture3/lecture3.htm

  4. https://posibnyky.vntu.edu.ua/k_m/t1/316..htm

  5. http://reshit.ru/Reshenie-nelineynyh-uravneniy

  6. http://dssp.petrsu.ru/p/tutorial/meth_calc/files/10.shtml