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

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2011
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Інформаційні технології

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська політехніка» Інститут комп’ютерних наук та інформаційних технологій Кафедра автоматизованих систем управління  ЗВІТ ПРО ВИКОНАННЯ ЛАБОРАТОРНОЇ РОБОТИ №8 З ПРЕДМЕТУ: ЧИСЕЛЬНІ МЕТОДИ НА ТЕМУ «Розв’язування системи нелінійних алгебраїчних рівнянь методом простої ітерації (методом Ньютона)» Мета роботи: вивчити і засвоїти метод простої ітерації. Короткі теоретичні відомості Метод простої ітерації для розв’язування системи двох нелінійних рівнянь. Нехай потрібно з заданою точністю ε знайти дійсні корені системи двох нелінійних рівнянь. F1(x,y)=0 (3) F2(x,y)=0 Кількість і наближення коренів системи (3) знаходимо графічно. Нехай система має тільки ізольовані дійсні корені. При використанні методу ітерацій систему (3) зводимо до еквівалентної системи наступного вигляду:  (4) де , – так звані ітеруючі функції. На основі системи (4) будуємо ітерації  (5) Згідно з теоремою [3, с. 79] для збіжності процесу (5) до кореня системи (4) необхідно, щоб виконувалася умова на неперервно диференційовні функції ,  (6) Оцінка похибки n-го наближення дається формулою  (7) де M=max{q1,q2} Збіжність методу ітерацій є доброю, якщо М<1/2, при цьому М/(1-М) < 1. Побудуємо ітеруючі функції для системи (4)   (8) Коефіцієнти α,β,γ,δ знаходимо з системи  (9) Тоді, за такого підбору параметрів α,β,γ,δ, умова (6) виконується, якщо часткові похідні функцій ,  в околі точки  змінюються мало. Приклад.. Нехай маємо систему  Записуємо еквівалентну систему  В квадраті будуть виконуватися умови 0<φ1<1, 0<φ2<1 Тоді умови (6) матимуть вигляд  Завдання Використовуючи метод простої ітерації, розв’язати з точністю ε = 10 такі нелінійні системи рівнянь. Початкове наближення знайти графічно. Номер завдання для кожного студента відповідає його порядковому номеру в списку групи (підгрупи). 12.  Лістинг програми #include <vcl.h> #include <math.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; float x0, y0, xn0, ytn1, yn0, eps, h, xn1, yn1, k1, k2; bool modif=true; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- double func(double xn0, double yn0) { return (sin(yn0*yn0+xn0)/(xn0*yn0)); } //--------------------------------------------------------------------------- double func_toch(double xn0, double yn0) { return (xn0*xn0-yn0*yn0-0.75))); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { eps=StrToFloat(LabeledEdit1->Text); xn0=x0; yn0=y0; while (xn0 < (x0+0.4267)) { k1 = h*func(xn0,yn0); k2 = h*func(xn0+h,yn0+k1); yn1 = yn0 + (k1+k2)/2.0; xn1 = xn0 + h; xn0 = xn1; yn0 = yn1; ytn1=func_toch(xn1); Edit1->Text=FloatToStrF(xn1,ffFixed,8,4); Edit2->Text= FloatToStrF(yn1,ffFixed,8,4); if(abs(yn1-ytn1)>eps){h/=2.0; modif=false;} else if(!modif){h*=2; modif=true;} } } Вигляд програми:  Висновок: на даній лабораторній роботі я навчився розв‘язувати системи нелінійних рівнянь методом простої ітерації.
Антиботан аватар за замовчуванням

20.02.2013 20:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!