Наближені методи розв’язку нелінійних рівнянь
В роботі розглянуто наближені методи розв’язку нелінійних рівнянь. Для вказаних методів складено блок-схеми та написано програму, за якою розв’язується задане рівняння. Аналіз як самого рівняння і методів його розв’язання так і результатів обрахунку.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 03.12.2009 |
Размер файла | 302,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Міністерство освіти та науки України
Вінницький національний технічний університет
Інститут АЕКСУ
Кафедра АІВТ
Курсова робота
з дисципліни
Обчислювальні методи та застосування ЕОМ
Вінниця-2006
Анотація
В цій курсовій роботі розглянуто наближені методи розв'язку нелінійних рівнянь, для вказаних методів складено блок-схеми та написано програму, за якою розв'язується задане рівняння. Проведено аналіз як самого рівняння і методів його розв'язання так і результатів обрахунку.
вступ
В наш час, коли надзвичайно швидкими темпами розвивається наука і техніка, людина освоює все нові і нові галузі, все більше проникає як в надра землі так і за її межі, з'являється багато нових і досить складних задач, рішення яких потребує нових методів і нових підходів. Зокрема надзвичайно велика кількість задач електроніки, електротехніки, механіки, кібернетики та ряду інших галузей науки вимагають від вчених інженерів вирішення досить складних математичних задач які вимагають певного аналізу та нестандартного підходу до вирішення.
З'являються задачі які не можна розв'язати за допомогою класичної математики і отримати точний розв'язок, і в загалі досить часто про отримання точного розв'язку не доводиться говорити, оскільки отримати його при існуючих умовах просто неможливо. Тож ставляться задачі отримати приблизні розв'язки, але якомога близькі до точних. Тому в таких задачах використовуються різні наближені методи рішення тієї чи іншої задачі.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
В залежності від конкретного виду та типу задачі використовуються різні методи та специфічні підходи до вирішення цієї задачі. Зокрема якщо мова йде про вирішення нелінійних рівнянь, то існує ряд методів для рішення такої задачі. Найбільшого поширення отримали метод половинного ділення, метод хорд, метод Ньютона та метод простої ітерації.
Розглянемо суть цих методів.
Метод половинного ділення: в цьому методі спочатку обчислюється значення функції в точках що розташовані через рівні інтервали на осі х. Коли f(xn) i f(xn+1) мають протилежні знаки, знаходять , f(xcp). Якщо знак f(xcp) збігається зі знаком f(xn), то надалі замість хn використовується хср . Якщо ж f(xcp) має знак, протилежний f(xn), тобто збігається зі знаком f(xn+1), то на хср замінюється xn+1 . За умову припинення ітераційного процесу доцільно брати умову | xn+1 - xn| < , де - задана похибка. Похибка розв'язку через n ітерацій знаходиться в межах Д<
Метод хибного положення (хорд) полягає в тому, що визначаються значення функції в точках, що розташовані на осі через рівні інтервали. Це робиться поки кінці інтервалів xn+1 , хn не будуть мати різні знаки. Пряма, що проведена через ці дві точки, перетинає вісь у точці . Після цього визначають f(xn+1) і порівнюють його з f(xn). Надалі користуються xn+1 замість того значення, з яким воно збіглося за знаком. Якщо | xn+1 - xn| < , то вся процедура повторюється спочатку.
В цій курсовій роботі розглядаються два методи розв'язку нелінійних рівнянь - це метод Ньютона та простої ітерації тому розглянемо їх більш детально.
Суть цих методів досить схожа але все ж є деякі відмінності.
Метод Ньютона полягає в побудові дотичної до графіка функції в обраній точці. Наступне наближення знаходиться як точка перетину дотичної з віссю ОХ. В основі цього методу лежить розкладання функції в ряд Тейлора: . Члени що містять h у другому і більших степенях відкидаються і врезультаті отримується наближена формула для оцінки хn+1: Хn+1=Xn - , але оскільки цей метод є наближеним, то логічно буде якщо для нього задавати певну похибку і тоді наближене значення кореня буде визначатися з виконання наступної умови: < Д, де дельта певна задана похибка. Швидкість збіжності цього алгоритму значною мірою залежить від вірного вибору початкової точки. Коли в процесі обчислень кут нахилу дотичної f '(x)перетворюється на нуль, застосування цього методу ускладнюється. Можна також показати, що у випадку дуже великих значень f ''(x) чи кратних коренів метод Ньютона стає неефективним.
Початкове наближення слід вибирати з умови: .
Наступний метод це метод простої ітерації. Цей метод дуже схожий до попереднього, але його можна використовувати лише якщо доведена збіжність ітераційного алгоритму. В цьому методі процес розв'язання потрібно починати з пошуку інтервалу збіжності. Умовою збіжності є те що максимальне значення І-ї похідної правої частини рівняння Х=g(x) (1) (до такого вигляду потрібно привести вихідне рівняння f(x)=0 ) повинна бути менша за 1. Якщо умова не виконується, то алгоритм не збіжний. Коли в інтервалі збіжності немає коренів, треба застосовувати інші методи або приходити до рівняння (1) через інші способи. Грубо оцінити похибку для обох методів можна так: Д де М2 - найбільше за модулем значення другої похідної на інтервалі [xn, xn+1]. Похибка ж методу на n - ій ітерації обчислюється так: Д<.
Аналіз заданого рівняння
В цій роботі необхідно розв'язати нелінійне рівняння 5-го порядку яке відповідно матиме п'ять коренів. Для того щоб розв'язати це рівняння заданими методами, а саме ньютона і простої ітерації, необхідно визначити початкове приблизне наближення, це можна зробити за допомогою графіка цього рівняння( рисунок 2.1 ), побудувавши його за допомогою математичного пакета Mathcad.
рисунок 2.1
Для того щоб точніше визначити значення початкового наближення необхідно збільшити цей графік (рисунок 2.2)
Рисунок 2.2
і тепер з цього графіка видно, що значення початкового наближення потрібно брати приблизно 0.08-0.1 і дійсно ці значення задовольняють необхідну умову оскільки при значенні х0=0.1 (f''(x0))2=16,7, a добуток f'(x0) f(x0)=-3,8 , що є меншим за значення другої похідної піднесеної до квадрату.
Для знаходження комплексних коренів нелінійного рівняння окрім звичайних методів, які аналогічні тим, що використовуються для знаходження дійсних коренів, існує низка спеціальних методів, що дозволяють оцінювати комплексні корені проводячи обчислення з дійсними числами. Більшість цих методів базується на перетворені початкового нелінійного рівняння до добутку квадратичних співмножників типу: , де p i q - коефіцієнти, проміжною формою для здійснення такого перетворення є рівняння у вигляді:
.
Тому використавши цей метод і записавши наступну систему рівнянь:
знайдемо з неї приблизні значення комплексних коренів яких має бути чотири. Отже одержано дві пари таких значень: -0,88+ 1,8і; 1,35+ 1,34і;
Алгоритми методів
Алгоритм розв'язку нелінійного рівняння методом Ньютона за допомогою ЕОМ є досить простим і полягає в тому, що спочатку задається дане вихідне рівняння, його похідна, а також допустима похибка. Потім використовуючи вищеописану ітераційну формулу знаходять ряд значень х
(Хn+1=Xn -,
де хn+1 - значення х на наступній ітерації, а хn - значення х на попередній ітерації) і повторюємо цю операцію до тих пір, поки не виконається умова < Д, тобто різниця значень наступної ітерації і попередньої менше за задану похибку.
Алгоритм розв'язку цього ж рівняння за методом простої ітерації полягає в тому, що спочатку вихідне рівняння потрібно привести до вигляду x=g(x), тобто виразити х з рівняння, а потім використовуючи формулу x1=g(x0), де відповідно х1 - значення х на наступній ітерації, а х0 - значення х на попередній ітерації. Знаходимо також ряд х до тих пір, поки не виконається умова < Д, де Д - задана допустима похибка.
Блок схеми методів наведені в додатку А.
Вибір інструментальних засобів
Для вирішення цієї задачі було обрано середовище програмування С, так як воно має ряд вагомих переваг перед іншими середовищами і мовами програмування. Зокрема такими перевагами є те, що:
- не вимагає великих затрат як апаратної частини комп'ютера так і програмної.
- Дозволяє досить просто реалізовувати поставлені задачі
- Є дуже візуальним і наглядним що робить його зручним інструментом в користуванні.
- Ця мова є досить гнучка і дозволяє використовувати технології об'єктно-орієнтованого програмування.
Вхідні та вихідні дані
Вхідними даними для програми є :
1)Для методу Ньютона: початкове рівняння; похідна від нього; початкове
наближення (х0) і допустима, задана за умовою
задачі похибка.
2)для методу простої ітерації: початкове рівняння, приведене до вигляду
x=g(x); початкове наближення і допустима
похибка.
Вихідними даними для обох методів є значення х, яке задовольняє умову< Д, де Д - задана за умовою похибка.
Структура програми
Програма розділена на чотири частини такі як:
1) блок опису вхідних та вихідних даних;
2) введення початкових даних;
3) виклик підпрограм для розв'язок задачі різними методами (в даному випадку методом Ньютона та методом простої ітерації);
4) виведення результатів;
інструкція користувачеві
Для запуску програми необхідно запустити файл з назвою “метод Ньютона та простої ітерації ” після чого на вашому екрані відкриється вікно програми (рисунок 7.1).
Рисунок 7.1
Необхідно слідувати вказівкам які з'явились у робочому вікні програми, а саме спочатку ввести допустиму похибку - d потім - початкове наближення - х0 після чого потрібно обрати метод (Ньютона чи простої ітерації) яким ви бажаєте розв'язати дане рівняння, тобто згідно інструкції натисніть 1 для того щоб розв'язати рівняння методом Ньютона або 2 - для методу простої ітерації, потім натисніть кнопку Enter і ви побачите результат. Наприклад: х=0,0681529 (рисунок 1.). після того як ви отримали результат якимось одним методом ви також відразу можете отримати його і іншим відповідно вибравши 1 чи 2 для методу який вас цікавить.
Аналіз результатів розрахунку
Отже після проведення розрахунку по знаходженню коренів нелінійного рівняння за методами Ньютона та простої ітерації отримано наступні результати: рівняння має 5 коренів, а саме один дійсний і чотири комплексні: хдійсне.Нютона=0,0681529, хкомпл.1,2= -0,9+ 1,8і; хкомпл.3,4 = -1,4+ 1,34і; хдійс.пр.ітерації=0,0681396. Порівнявши отримані результати з наступними результатами
,
що отримані за допомогою автоматизованого математичного пакету Mathcad, можна зробити висновок що корені рівняння розраховані за допомогою чисельних методів є досить таки точними і похибка складає не більше 0.01. за отриманими результатами також можна зробити висновок щодо швидкодії кожного з методів, а саме при однакових початкових умовах метод простої ітерації працює дещо швидше, ніж метод Ньютона, але точніший результат дає метод Ньютона.
висновки
Ця курсова робота була присвячена розв'язанню нелінійних рівнянь методами Ньютона та простої ітерації. В результаті роботи було досліджено існуючі методи для розв'язання таких рівнянь, а більш детально розглянуті вищезгадані два методи, а саме Ньютона та простої ітерації. Для цих методів було складено блок-схему, а також написано програму. В результаті роботи за допомогою складеної програми було отримано певні корені заданого рівняння і порівняно їх з значеннями коренів цього ж рівняння, але розв'язаного за допомогою спеціалізованого математичного програмного пакету Mathcad.
Література
1. Квєтний Р. Н. Методи комп'ютерних обчислень. - Навчальний посібник. - Вінниця: ВДТУ, 2001.
2. Вержбицький В. М. Основы численных методов, - М.: Высшая школа, 2002.
Додаток А
(Лістинг програми)
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
int main()
{int x,i,j;
float a1,a2,a3,d,x0,x1;
cout<<"enter the delta and first approximation"<<endl;
cout<<"d= ";
cin>>d;
cout<<endl;
cout<<"x0= ";
cin>>x0;
cout<<endl;
cout<<"chose one of the points\n for Nuton-1 for Iteraciy-2 to quite-0"<<endl;
cout<<endl;
while (x!=0)
{cin>>x;
switch (x)
{case 1:
x1=x0-((pow(x0,5)-pow(x0,4)+3*pow(x0,3)-5*pow(x0,2)+15*x0-1)/ /(5*pow(x0,4)-4*pow(x0,3)+9*pow(x0,2)-10*x0+15));
while(fabs(x1-x0)>d)
{
x0=x1;
x1=x0-((pow(x0,5)-pow(x0,4)+3*pow(x0,3)-5*pow(x0,2)+15*x0-1)/(5*pow(x0,4)-4*pow(x0,3)+9*pow(x0,2)-10*x0+15));
}
cout<<"x="<<x1<<endl ;
break;
cout<<"chose one of the points\n for Nuton-1 for Iteraciy-2 to quite-0"<<endl;
case 2:
x1=(1-pow(x0,5)+pow(x0,4)-3*pow(x0,3)+5*pow(x0,2))/15;
while(fabs(x1-x0)>d)
{
x0=x1;
x1=(1-pow(x0,5)+pow(x0,4)-3*pow(x0,3)+5*pow(x0,2))/15;
}
cout<<"x="<<x1<<endl;
break; }
}
}
Подобные документы
В роботі розглянуто наближені методи розв'язку нелінійних рівнянь для методів Ньютона та хорд, складено блок-схеми та написано програму, за допомогою якої розв'язується задане рівняння. Аналіз рівняння, методів його розв'язання і результатів обрахунку.
курсовая работа [380,9 K], добавлен 30.11.2009Розвиток виробництва і широке використання промислових роботів. Алгоритми методів, блок-схеми алгоритмів розв'язку даного диференційного рівняння. Аналіз результатів моделювання, прямий метод Ейлера, розв’язок диференціального рівняння в Mathcad.
контрольная работа [59,1 K], добавлен 30.11.2009Розв’язання нелінійних алгебраїчних рівнянь методом дихотомії. Вирішення задачі знаходження коренів рівняння. Розробка алгоритму розв’язання задачі і тестового прикладу. Блок-схеми алгоритмів основних функцій. Інструкція користувача програмою мовою С++.
курсовая работа [2,0 M], добавлен 24.09.2010Види рівнянь та методи їх розв’язань. Чисельні методи уточнення коренів, постановка задачі. Рішення нелінійного рівняння методом простих та дотичних ітерацій. Використання програмних засобів. Алгоритми розв’язку задач. Програми мовою С++, їх тестування.
курсовая работа [232,2 K], добавлен 12.02.2013Виконання "ручного" розв'язування рівняння методом Ньоютона. Розробка програми на мові С#, яка реалізує введення вихідних даних, розв'язання заданого рівняння, виведення результатів у зручній формі на екран. Визначення початкового наближення кореня.
лабораторная работа [120,9 K], добавлен 19.01.2022Програма чисельного розв'язку систем лінійних алгебраїчних рівнянь (СЛАР) з розрідженою матрицею, економне витрачання оперативної пам'яті дозволяє розв’язувати багато систем високих ступенів за допомогою персональних комп'ютерів. Методи розв’язку СЛАР.
дипломная работа [1,1 M], добавлен 01.08.2009Огляд та аналіз методів розв’язання системи диференціальних рівнянь та вибір методів рішення. Алгоритми методів Ейлера. Вибір методу рішення задачі Коші. Рішення диференціальних рівнянь. Отримання практичних навиків програмування на мові Паскаль.
курсовая работа [174,3 K], добавлен 06.03.2010Розв’язання системи рівняння методом Гауса за схемою з частковим вибором головного елементу. Рішення задачі Коші методом Рунге-Кутта. Знаходження моментів кубічних сплайнів методом прогонки. Розв’язування системи нелінійних рівнянь методом Ньютона.
контрольная работа [252,3 K], добавлен 04.06.2010Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.
курсовая работа [132,0 K], добавлен 03.12.2009Розв’язання системи лінійних та нелінійних рівнянь у програмі MathCAD. Матричний метод розв'язання системи рівнянь. Користування панеллю інструментів Математика (Math) для реалізації розрахунків в системі MathCAD. Обчислення ітераційним методом.
контрольная работа [1023,4 K], добавлен 08.04.2011