![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Розв’язання нелінійних рівнянь методом НьютонаСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Вступ Комп’ютерний практикум з дисципліни “Обчислювальна техніка та програмування” проводяться зі студентами спеціальності “Системи управління виробництвом та розподілом електроенергії” у першому, другому і третьому семестрах. Відповідні методичні вказівки складаються з 4-х частин. ЗмістЧастини 4 методичних вказівок до виконання комп’ютерного практикуму “Математичні методи розв’язання задач: алгоритмізація і програмування” відповідає навчальній програмі дисципліни у третьому семестрі. Тут вивчаються математичні методи розв’язання рівнянь і систем рівнянь, методи чисельного інтегрування і диференціювання функцій, інтерполяції функцій, методи розв’язання диференційних рівнянь, визначення екстремумів функцій тощо. Значна увага в методичних вказівках приділяється питанням алгоритмічної та програмної реалізації цих методів. В результаті студенти набувають навичок самостійного розв’язання задач наукового програмування на мові Pascal. Методичні вказівки містять матеріали 12-ти занять комп’ютерного практикуму. Матеріали кожного заняття присвячені одному із методів, що вивчаються і включають теоретичні відомості, приклади розв’язання задач, фрагменти алгоритмів і програм на мові Pascal, що реалізують відповідний метод, індивідуальні завдання і порядок їх виконання. При виконанні завдань студент повинен ознайомитись з теоретичним матеріалом, наведеним у методичних вказівках і додатковій літературі, виконати “ручне” розв’язання індивідуального завдання, розібравшись у наведеному алгоритмі і фрагменті програми, розробити на їх основі докладний алгоритм і програму Pascal для розв’язання завдання. Після цього з використанням розробленої програми розв’язується поставлена задача і проводиться серія порівняльних розрахунків з метою дослідити характеристики математичного методу що вивчається, вплив на них різних чинників. По результатам роботи студенти готують звіт, в якому наводять результати виконання всіх пунктів завдання.
Заняття № 1 Розробка програми Розв’язання нелінійних рівнянь методом Ньютона Мета роботи: Закріплення знань із застосування ітераційних методів длячисельного розв’язання нелінійних алгебраїчних рівнянь, вивчення алгоритму метода Ньютона, розробка відповідної комп’ютерної програми на мові Pascal і використання її для розв’язання заданих нелінійних рівнянь.
Теоретичні відомості Ітераційні методи. Метод Ньютона для розв’язання нелінійних алгебраїчних рівнянь У загальному вигляді нелінійне рівняння (алгебраїчне, трансцендентне) можна записати: F(x) = 0. (1.1) Припускаємо, що функція F(x) диференціюється. Коренем рівняння (1.1) називається будь-яке значення Графічно корінь рівняння відповідає значенню
Розв’язання рівняння заключається у визначені одного або всіх його коренів на відрізку [a,b]. Алгебраїчне рівняння n -го ступеня має не більше n дійсних коренів. У загальному випадку нелінійні рівняння не мають аналітичних формул для визначення коренів. Тоді для їх розв’язання використовують чисельні методи, які є наближеними. Вони дозволяють знайти корені рівняння із заданою точністю. Чисельні методи знаходження коренів рівняння складаються з двох основних етапів: 1. Визначення початкового наближення значення кореня 2. Покрокове уточнення початкового наближення до досягнення заданої точності Як результат розв’язання рівняння чисельним методом приймається чергове наближення кореня
де Початкове наближення кореня
Тоді на відрізку між a і b є не менше однієї точки, де функція F(x) перетинає вісь абсцис, тобто, F(x)=0. Як початкове наближення для визначення кореня рівняння F(x) можна взяти значення:
Для визначення початкового наближення кореня можна застосувати, також графічне розв’язання рівнянь. Для цього треба побудувати графік функції у =F(x ). Значення параметру х у точках перетину функцією вісі абсцис приймаються як початкові наближення коренів. Інший спосіб: рівняння (1.1) замінюють рівносильним рівнянням виду:
де функції
Чисельний метод, у якому відбувається послідовне, крок за кроком, уточнення початкового наближення, називається ітераційним методом. Кожний крок уточнення невідомих у такому методі називається ітерацією. Якщо при послідовних ітераціях отримуємо значення, які все ближче наближуються до точного значення кореня Одним з ефективних ітераційних методів розв’язання рівнянь є метод Ньютона (метод дотичних). Його суть полягає у заміні кривої F(x) в точці чергового наближення
де
Графічна ілюстрація метода Ньютона показана на Рис. 1.1.
Рис. 1.1. Примітки: 1. Як початкове наближення кореня
2. Контроль завершення ітераційного процесу виконується за умовами досягнення заданої точності а) за зміною наближень невідомого на суміжних ітераціях:
б) по величині нев’язки рівняння (1.1) на черговій ітерації:
Нев’язка визначається при підстановці наближення 3. Метод Ньютона збігається набагато швидше, ніж інші ітераційні методи. 4. Похибка округлення не накопичується – загальна властивість ітераційних методів.
Послідовність дій при розв’язанні рівняння методом Ньютона: а) Підготовчий етап: 1. Записати рівняння у формі (1.1); 2. Визначити похідну від функції 3. Записати формулу (1.4) для заданого рівняння; 4. Визначити початкове наближення невідомого кореня
б) Розв’язання рівняння: 5. Визначити значення функції 6. За формулою (1.4) обчислити наступне наближення невідомого; 7. Перевірити умови завершення ітераційного процесу за формулами (1.6) або (1.7). Якщо умови виконуються, то обчислене на останній ітерації наближення кореня Якщо умови не виконуються, то ітераційний розрахунок повторюється з пункту 5 при новому наближенні кореня.
Приклад розв’язання нелінійного рівняння методом Ньютона:
Знайти один із коренів рівняння Розв’язання: а) Підготовчий етап. Записуємо рівняння у формі (1.1): Похідна від функції: Запишемо формулу (1.4) для заданого рівняння: Визначаємо початкове наближення кореня: обчислимо значення функції в точках х=2 і х=3:
Тобто на інтервалі [ 2,3 ] існує не менше одного кореня. Як початкове наближення можна взяти значення б) Розв’язання рівняння. Ітерація 1.
Нев’язка рівняння в цій точці: Необхідно виконати наступну ітерацію. Ітерація 2: Задана точність досягнута. Як корінь рівняння із точністю
Порядок виконання роботи 1. Вибрати індивідуальне завдання. Номер варіанту в Таблиці 1.1. відповідає номеру студента у списку групи;
2. Ознайомитись із теоретичним матеріалом по чисельним методам розв’язання рівнянь; 3. Виконати «ручне» розв’язання заданого рівняння методом Ньютона (до 5 ітерацій); 4. Скласти докладний алгоритм розв’язання рівняння методом Ньютона; 5. Скласти і відлагодити програму на мові Pascal, яка реалізує введення вихідних даних, розв’язання заданого рівняння, виведення результатів у зручній формі на екран і в файл. Основні фрагменти програми оформити як процедури і функції. Описати алгоритм і програму (змінні, масиви, процедури і функції, особливості реалізації тощо); 6. Розв’язати задане рівняння за допомогою розробленої програми з точністю ε =0.01. Порівняти отримані результати із результатами «ручних» розрахунків. Побудувати графік збіжності ітераційного процесу 7. Обчислити корінь рівняння при 5 різних значеннях точності 8. Повторити п.7 з використанням умови (1.6), внісши відповідні зміни у програму. Результати п.6 і п.7 оформити у вигляді таблиці; 9. Обчислити інші дійсні корені рівняння; 10. Підготувати висновки по роботі.
Результати виконання кожного пункту докладно описати у звіті по роботі. Для отримання підвищеної оцінки необхідно на основі наведеного фрагменту програми розробити власну програму.
Таблиця 1.1. Варіанти завдань до Заняття № 1
Заняття № 2 Розробка програми розв’язання систем лінійних алгебраїчних рівнянь (СЛАР) методом Гауса Мета роботи: Закріплення знань із застосування метода Гауса для розв’язання СЛАР, вивчення алгоритму метода, розробка відповідної комп’ютерної програми на мові Pascal і застосування її для розв’язання заданої системи рівнянь
A. Теоретичні відомості Метод Гауса для розв’язання СЛАР
Система n лінійних рівнянь з n невідомими у загальному вигляді може бути записана:
де системи;
У матричній формі ця система рівнянь має вигляд:
або де А - квадратна матриця коефіцієнтів системи розмірністю
x - вектор невідомих; В - вектор вільних членів. Розв’язати систему (2.1) - означає обчислити такі значення елементів вектора невідомих Для цього можна застосувати як прямі, так і ітераційні методи. Найбільш поширеним прямим способом розв’язання систем лінійних рівнянь є алгоритм послідовного виключення невідомих, що має назву метод Гауса. Існують різні алгоритми його реалізації. Один із них - метод Гауса із зворотнім ходом для розв’язання СЛАР розглядається у цій роботі. Метод Гауса із зворотнім ходом передбачає виконання двох етапів: прямий і зворотній хід методу. Прямий хід - послідовність однотипних кроків виключення невідомих із системи рівнянь. В результаті його виконання вихідна система (2.1) або (2.2) з прямокутною матрицею коефіцієнтів перетворюється на еквівалентну систему рівнянь з верхньою трикутною матрицею коефіцієнтів. На зворотному ході обчислюються значення невідомих, починаючи з останнього (від
Прямий хід: Перший крок виключення невідомих. Виключаємо невідому
Тобто він повинен бути відмінним від нуля і серед елементів першого стовпця матриці коефіцієнтів в (2.2) найбільшим за абсолютною величиною. В іншому разі переставимо рівняння в системі так, щоб ці умови виконувались. Ділимо перше рівняння системи (2.1) на опорний елемент
Для виключення складових з невідомим
де номер рівняння в системі, і = 2, …, n; j - номер елемента в рівняннях, j = 1, …, n. На другому кроці виключення невідомих необхідно виключити
Виключаємо доданки з невідомим
де
Наступні кроки виключення невідомих виконуються аналогічно. На k -му кроці коефіцієнти і вільні члени системи рівнянь обчислюються за такими формулами:
де к = 1, …, n-1 – номер кроку виключення невідомих, що збігається з номером рівняння системи, в якому розташований опорний елемент; і = k+1, …, n - номер рівняння, з якого виключається невідома; j = k, …, n - номер елемента в рівнянні.
Опорний елемент
Після виконання останнього ( n-1 ) -го кроку виключення невідомих вихідна система рівнянь перетворюється на еквівалентну систему з верхньою трикутною матрицеюкоефіцієнтів:
Зворотній хід: Обчислюємо значення всіх невідомих, починаючи з
Підставляємо його в передостаннє рівняння і обчислюємо
Послідовно визначаємо
Для перевірки правильності розв’язання системи рівнянь, необхідно обчислені значення невідомих
Приклад розв’язання СЛАР методом Гауса Обчислити корені системи 3-х лінійних рівнянь з трьома невідомими
Прямий хід. Необхідно виконати 2 кроки виключення невідомих. На першому кроці (к=1)виключаємо невідому і виконуємо виключення. Для цього робимо перетворення відповідно до (2.6) при і=2,3; j=1,2,3: і=2, Таким чином, в результаті перетворень, друге рівняння (i=2) набуває вигляду: і=3, Третє рівняння (і=3) набуває вигляду: 0+0.6 Отримуємо еквівалентну систему рівнянь:
На другому кроці (к=2) виключаємо невідому і виконуємо виключення. При і=3, j=2,3 відповідно до (2.9) отримуємо:
і=3 Третє рівняння системи (2.17) набуває вигляду: 0+0.3182 Отримуємо еквівалентну систему рівнянь з трикутною матрицею коефіцієнтів:
Зворотній хід. Із останнього рівняння системи (2.18) знаходимо: Підставляємо обчислене значення Із першого рівняння системи знаходимо: Таким чином, розв’язком системи є вектор
Для перевірки правильності розв’язання системи рівнянь підставляємо елементи вектора Х у вихідну систему (2.16). Рівняння системи перетворюється на тотожності, що підтверджує правильність її розв’язання.
Порядок виконання роботи 1. Вибрати індивідуальне завдання. Номер варіанту в Таблиці 2.1. відповідає номеру студента у списку групи; 2. Ознайомитись із теоретичним матеріалом по методу Гауса (методика і алгоритм розв’язання СЛАР); 3. Виконати «ручне» розв’язання заданої системи рівнянь методом Гауса. Перевірити правильність отриманого результату; 4. Скласти докладний алгоритм розв’язання системи рівнянь методом Гауса; 5. Скласти і відлагодити програму на мові Pascal, яка реалізує введення вихідних даних, розв’язання заданої системи рівнянь методом Гауса, виведення результатів на екран і в файл у зручній формі. Основні фрагменти програми оформити як процедури і функції; 6. Описати розроблений алгоритм і програму (основні змінні, масиви, процедури і функції, особливості реалізації, склад і структура вхідних і вихідних даних тощо); 7. Розв’язати задану систему рівнянь за допомогою розробленої програми, порівняти отримані результати із результатами ручних розрахунків; 8. Сформулювати висновки по роботі.
Результати виконання кожного пункту завдання докладно описати у звіті по роботі.
Таблиця 2.1. Варіанти завдань до занять №2 і №3.
Заняття № 3 Розробка програми Порядок виконання роботи Виконати завдання Заняття № 2 (розділ 2.3), застосовувавши для розв’язання заданної СЛАР метод подвійної факторизації.
Заняття № 4 Розробка програми Методом Зейделя Мета роботи: Закріплення знань із застосування ітераційних методів для чисельного розв’язання СНАР, вивчення алгоритмів метода Зейделя і простої ітерації, розробка відповідної комп’ютерної програми на мові Pascal і застосування її для розв’язання заданої системи рівнянь.
Теоретичні відомості Методи простої ітерації і Зейделя для розв’язання СНАР Ці методи належать до групи ітераційних методів, що застосовуються для розв’язання систем нелінійних алгебраїчних рівнянь. Дозволяють отримати значення невідомих величин із заданою точністю, як результат виконання послідовності ітерацій. У загальному вигляді нелінійну систему рівнянь можна записати:
Для її розв’язання методами простої ітерації і Зейделя, систему необхідно перетворити: розв’язати кожне і - те рівняння системи відносно відповідної невідомої величини Перетворена система набуває загального вигляду:
При підстановці в праву частину цієї системи чергового наближення невідомих величин При цьому ітераційна форма запису системи має вигляд:
Підставивши в (4.3) нове наближення невідомих і виконавши обчислення, знаходимо нові значення невідомих і т.д. Це відповідає послідовності розрахунків за методом простої ітерації. Більш ефективним по показниках збіжності є модифікація методу простої ітерації - метод Зейделя. Відмінність методу Зейделя полягає в тому, що для визначення чергового (к+1)- го наближення і - го невідомого Система рівнянь (4.3) при розв’язанні її методом Зейделя набуває вигляду:
Ітерації повторюються доти, поки не стане виконуватись умова (1.6) для всіх невідомих, або умова (1.7) - для всіх рівнянь системи.
Послідовність дій при розв’язанні СНАР методом Зейделя: 1. Перетворення вихідної системи у форму (4.2) і запис її в ітераційній формі (4.4). 2. Визначення початкового наближення невідомих У випадку системи двох рівнянь з двома невідомими, початкові наближення коренів і їх кількість можна знайти, виконавши побудову графіків для кожного рівняння системи на площині
Координати 3. Обчислення наступного наближення невідомих. Підставляємо вибрані наближення коренів (на 1-й ітерації – це початкові наближення) у перше рівняння системи (4.4) і обчислюємо 4. Контроль завершення ітераційного процесу за умовами досягнення заданої точності Якщо точність досягнута, то обчислені на цій ітерації наближення коренів
Приклад розв’язання СНАР методом Зейделя Знайти корені системи 3-х нелінійних рівнянь з трьома невідомими. Точність Система рівнянь у формі (4.1): Перетворюємо систему у форму (4.2):
Записуємо систему в ітераційній формі по методу Зейделя: Вибираємо початкові наближення невідомих Ітерація 1. Визначаємо перші наближення невідомих: Нев’язки рівнянь при цих наближеннях: Нев’язки рівнянь
Порядок виконання роботи
1. Вибрати індивідуальне завдання. Номер варіанту в Таблиці 4.1. відповідає номеру студента у списку групи; 2. Ознайомитись з теоретичним матеріалом по чисельним методам розв’язання СНАР; 3. Виконати «ручне» розв’язання заданої системи рівнянь методом Зейделя з точністю ε = 0.01 (до 4-х ітерації); 4. Скласти докладний алгоритм розв’язання заданої СНАР методом Зейделя; 5. Скласти і відлагодити програму на мові Pascal, яка реалізує введення вихідних даних, розв’язання заданої системи рівнянь методом Зейделя, виведення результатів на екран і у файл в зручній формі. Основні фрагменти програми оформити як процедури і функції; 6. Описати алгоритм і програму (змінні, масиви, процедури і функції, особливості реалізації тощо); 7. Розв’язати задану СНАР за допомогою розробленої програми, порівняти отримані результати із результатами ручних розрахунків. Побудувати графіки збіжності ітераційного процесу: 8. Обчислити корені системи рівнянь при 5 різних значеннях точності 9. Внести зміни у програму відповідно до алгоритму метода ітерації і розв’язати задану СНАР. Побудувати графіки збіжності ітераційного процесу. Порівняти отримані результати із результатами п.7; 10. Підготувати висновки по роботі.
Результати виконання кожного пункту викласти у звіті по роботі. Для отримання підвищеної оцінки необхідно розробити власну програму на основі наведеного фрагменту. Таблиця 4.1. Варіанти завдань до Занять №4 і №5
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 555; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.156.172 (0.015 с.) |