Чисельні методи розв’язування нелінійних рівнянь

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

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

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

Рік:
2014
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Чисельні методи

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Інститут післядипломної освіти ЗВІТ Про виконання лабораторної роботи №1 «Чисельні методи розв’язування нелінійних рівнянь» з дисципліни «Чисельні методи» Мета роботи: Ознайомлення на практиці з методами відокремлення дійсних ізольованих коренів нелінійних рівнянь та ітераційними методами їх уточнення. Теоретичні відомості Процес розв’язання нелінійних рівнянь вигляду (4.1) або (4.2) на ЕОМ розбивається на два етапи: 1. відокремлення коренів; 2. уточнення коренів. Графічний метод. Будують графік функції  для рівняння виду  або представляють рівняння у вигляді  та будують графіки функцій  та . Значення дійсних коренів рівняння є абсцисами точок перетину графіка функції  з віссю  або абсцисами точок перетину графіків функцій  та . Відрізки, в яких знаходиться тільки по одному кореню, легко знаходяться наближено. Метод половинного ділення / / / Хід роботи 1. Відокремлення коренів здійснюемо графічним методом: будуємо графік функції у= після аналізу графіку функції робимо висновок, що розвязок функції знаходиться на проміжку від 0 до 1. / 2. Здійснюємо уточнення коренів методом половинного ділення: #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; double a, b, E, y, xo; double f (double x); double f (double x) {y=x*x*x+0.3*x*x+x-1.2; return y;} void main() { cout<<"vvedit a "; cin>>a; // введення проміжку , що містить розвязок рівняння cout<<"vvedit b"; cin>>b; while(abs(a-b)>0.001) // задается точність { if(f(a)*f(b)>0) cout<<"zminit a ta b"; // якщо на проміжку від а до б знак функц. не змін else // то цей пром. не містить розв. { xo=(a+b)/2.0; //знаходимо середину відрізка if(f(xo)==0) cout<<"rozvjazok rivnyannya "<<(a+b)/2.0; else {if(f(a)*f(xo)<0) b=xo; else a=xo;} //беремо той відрізок, на якому змін. } //знак функції } cout<<(a+b)/2.0; //цикл завершився- вивід розвязку _getch(); } 3. Результати роботи програми: / 4. Уточнення коренів методом хорд. #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; double a, b, E, y, xo; double f (double x); double f (double x) {y=x*x*x+0.3*x*x+x-1.2; return y;} void main() { cout<<"vvedit a "; cin>>a; // введення проміжку , що містить розвязок рівняння cout<<"vvedit b"; cin>>b; E=1; if(f(a)*f(b)>0) cout<<"zminit a ta b"; // якщо на проміжку від а до б знак функц. не змін else // то цей пром. не містить розв. { while(E) // задается точність { xo=a-(f(a)*(b-a)/(f(b)-f(a))); //Знайдемо значення xo, для якого y=0 if(abs(a-xo)>0.001) E=1; else E=0; // перевіряємо точність a=xo; } } cout<<xo; //цикл завершився- вивід розвязку _getch(); } 5. Результати роботи програми. / Висновки В ході даної лабораторної роботи на практиці розглядалися методи розв’язування нелінійних рівнянь, а саме : графічним методом здійснене відокремлення коренів, після чого уточнення коренів методом бісекцій та хорд.
Антиботан аватар за замовчуванням

02.06.2014 21:06-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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