DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Методи уточнення коренів нелінійних рівнянь

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

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

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем
Варіант:
9

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ  З В І Т до лабораторної роботи №1 з курсу: «Комп'ютерні методи дослідження інформаційних процесів і систем» на тему: «Методи уточнення коренів нелінійних рівнянь» Варіант №9 Львів – 2012 ТЕКСТ ПРОГРАМИ using System; using System.Collections.Generic; using System.Text; namespace kmd_lab1 { class Program { static void Main(string[] args) { Console.WriteLine(" КМД, Лабораторна робота №1 \"Методи уточнення коренiв нелiнiйних рiвнянь\""); Main p = new Main(); p.input(); p.comb(); Console.Write("Press <Enter> to exit..."); Console.ReadKey(); } } class Main { // перелік усіх змінних типу double: public double a, b, e, xnt, xntl, xntlpo, fxntl, fsxntl, fxnt, fxntlpo, xntpo; public void input() // метод введення і присвоєння змінних { Console.WriteLine(" Введiть промiжок [a, b] та абсолютну похибку E:"); try { Console.Write(" Введiть 'a'= "); a = Convert.ToDouble(Console.ReadLine()); Console.Write(" Введiть 'b'= "); b = Convert.ToDouble(Console.ReadLine()); Console.Write(" Введiть 'E'= "); e = Convert.ToDouble(Console.ReadLine()); } catch (Exception) { Console.WriteLine(" Виникла помилка!"); input(); } Console.WriteLine(" Ви ввели промiжок ["+a+","+b+"] та E= "+e+";\n"); xnt = a; xntl = b; } public void func() // метод обчислення функцій { // x n-те (Ньютона) fxntl = Math.Cos(xntl)+(1/(xntl-2)); // f (xntl) fsxntl = (-1)*(Math.Sin(xntl))-(1/Math.Pow((xntl-2), 2)); // f'(xntl) xntlpo = xntl-(fxntl/fsxntl); // xntlpo Console.WriteLine(" f(b) = "+fxntl); Console.WriteLine(" f'(b) = "+fsxntl); Console.WriteLine(" xntlpo = "+xntlpo); // x n-те fxnt = Math.Cos(xnt)+(1/(xnt-2)); // f (xnt) fxntlpo = Math.Cos(xntlpo)+(1/(xntlpo-2)); // f (xntlpo) xntpo = xnt-((fxnt*(xntlpo-xnt))/(fxntlpo-fxnt)); // xntpo Console.WriteLine(" f(a) = "+fxnt); Console.WriteLine(" f(xntlpo)= "+fxntlpo); Console.WriteLine(" xntpo = "+xntpo); } public void comb() { double tf; int iter=1; do { if (iter != 1) { xntl = xntlpo; xnt = xntpo; } func(); Console.WriteLine(" Iтерацiя "+iter+" - завершено!\n"); iter++; tf = Math.Abs(xntpo-xntlpo); // |xntpo-xntlpo| } while(tf>e); double xz = 0.5*(xnt+xntl); Console.WriteLine(" Корiнь X* = "+xz+"\n"); } } } БЛОК-СХЕМА  Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим. КОРОТКІ ТЕОРИТИЧНІ ВІДОМОСТІ: Комбінований метод хорд та дотичних: Метод хорд та дотичних дають наближення кореня з різних сторін (менше і більше від істинного значення). Тому доцільно використати обидва способи одночасно, завдяки чому уточнене значення кореня одержується швидше. Нехай – початкове наближення кореня за методом хорд, а – за методом дотичних (див.рис.1). Тоді провівши хорду та дотичну, одержимо відповідні наближення за методом хорд  і за методом дотичних  Або в загальному випадку    (рис. 1) Якщо припустима абсолютна похибка E заздалегідь задана, то процес наближення припиняється, доки не буде виявлено, що  Після закінчення процесу за значення кореня х* краще взяти середнє арифметичне одержаних останніх значень  Кращий результат дає наступний порядок обчислень: Знаходиться наближене значення кореня за методом Ньютона. При цьому початкове наближення має бути обране так, щоб виконувалась умова . Отже якщо в точці x=b умова  не виконується, на етапі введення початкових даних в поданому нижче прикладі алгоритму необхідно ввести ; Знаходиться наближене значення кореня за методом хорд, використовуючи замість  значення , знайдене за методом Ньютона, і процес повторюється до одержання бажаної похибки обчислень. ; .  ЗАВДАННЯ: Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b]. Методи чисельного розв’язування задаються викладачем. Варіант Рівняння Відрізок  9. cos x + 1/(x – 2) = 0 [0;1]   СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ І ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ Console.ReadLine() – зчитування стрічки з консолі; Covert.ToDouble() – конвертування текстової змінної в число типу Double; Console.WriteLine – метод виведення на екран; Math.Cos(x) – математичний метод обчислення синуса x; Math.Sin(x) – математичний метод обчислення косинуса x; public void func()– метод обчислення функцій
Антиботан аватар за замовчуванням

28.05.2013 18:18

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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