DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

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

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

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

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

Рік:
2016
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем
Група:
КН-31
Коротко про документ

Про що ця робота

У роботі розглядається застосування методу Ньютона для розв'язування систем нелінійних рівнянь мовою Java. Наведено блок-схеми алгоритмів та програмну реалізацію обчислень.

У роботі розглядаються

  • Чисельні методи
  • Системи нелінійних рівнянь
  • Метод Ньютона
  • Ітераційні алгоритми
  • Програмування на Java
  • Комп'ютерне моделювання

Зміст і розділи

  1. Мета роботи
  2. Модифікований метод Ньютона
  3. Завдання до лабораторної роботи
  4. Блок-схема алгоритму програми
  5. Текст програми
  6. Результат роботи програми та висновок
Для кого:Студенти технічних спеціальностей та вищих навчальних закладів вивчають комп'ютерні методи.
Викладачі:Не вказано

Ключові поняття

метод Ньютонанелінійні рівнянняЯкобіанітераціяматрицязбіжністьпохибкаблок-схемапрограмний кодJava

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра БІТ / Звіт до лабораторної роботи №5 з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «Метод Ньютона для розв’язування систем нелінійних рівнянь» Модифікований метод Нютона ЛЬВІВ 2016 Мета роботи - ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона. Модифікований метод Ньютона При використанні стандартного методу Ньютона на кожній ітерації доводиться обчислювати новий якобіан , хоч зрозуміло, що при закінченні ітерацій він повинен прийняти стабільне значення , де  –розв'язок. У модифікованому або спрощеному методі Ньютона якобіан  заміняють правильно підібраною матрицею А. Звичайно, найкращим, але практично недосяжним варіантом була б заміна , де  - розв'язок. Але на практиці користуються компромісним рішенням: – вибирають за А якобіан в початковій точці , a ітерації проводять за наступною формулою  – зберігають А протягом певного числа ітерацій; – на певній r-й ітерації змінюють А, прирівнюючи її якобіану  і з новим значенням знову виконують певне число ітерацій і т.д. Отже, якобіан обчислюється тільки час від часу, за рахунок чого досягається економія машинного часу. Однак, збіжність методу при цьому близька до лінійної. Завдання до лабораторної роботи Розв’яжіть систему нелінійних рівнянь одним із методів, вказаних викладачем, вибираючи за початкові наближення . Ітерації проводити до збігу двох послідовних наближень з похибкою . 3)   Блок-схема алгоритму програми Блок-схема алгоритму метода f() початок 1 i==0 || i==1 2 так f(x) 3 f(x) кінець f(x) = x1 - x1 / (x1 * x1 + x2 * x2) + 0.4 f(x) = x2 - x2 / (x1 * x1 + x2 * x2) + 1.4 Блок-схема алгоритму метода derivative() / f(x) = (f(x1 + h, x2,i) - f(x1, x2,i)) / h f(x) = (f(x1, x2 + h,i) - f(x1, x2,i)) / h Блок-схема алгоритму метода solve() початок 1 a := Poxidna() 2 d:= f(x) 3 dx1:=f(x) dx2:=f(x) 4 x:=x1 y:=x2 x1=x1+dx x2=x2+dx2 5 del:=(x1-x)/x 6 |del|>h ні x1,x2,f1,f2 кінець f(x) = a[0] * a[3] - a[1] * a[2] f(x) = (-f(x1, x2, 1) * a[3] - (-f(x1, x2, 2) * a[1])) / d; f(x) = (-f(x1, x2, 2) * a[0] - (-f(x1, x2, 1) * a[2])) / d; Блок-схема методу Main( ). початок newtonFin.solve() кінець Текст програми import java.math.*; class newton{ private double h = Math.pow(10, -5); private int n = 4; public double x1, x2; public double dx1, dx2, d, x, y, del; public newton(double x, double y){ x1 = x; x2 = y; } double f(double x1, double x2, int i){ if(i == 0 || i == 1){ return x1 - x1 / (x1 * x1 + x2 * x2) + 0.4; } return x2 - x2 / (x1 * x1 + x2 * x2) + 1.4; } double [] derivative(){ double [] df = new double[n]; for(int i = 0; i < n; i++){ if(i % n == 0){ df[i] = (f(x1 + h, x2, i) - f(x1, x2, i)) / h; } else{ df[i] = (f(x1, x2 + h, i) - f(x1, x2, i)) / h; } } return df; } public void solve(){ do{ double[] a; a = derivative(); d = a[0] * a[3] - a[1] * a[2]; dx1 = (-f(x1, x2, 1) * a[3] - (-f(x1, x2, 2) * a[1])) / d; dx2 = (-f(x1, x2, 2) * a[0] - (-f(x1, x2, 1) * a[2])) / d; x = x1; y = x2; x1 += dx1; x2 += dx2; del = (x1 - x) / x; } while (Math.abs(del) > h); System.out.println("x1 = " + x + " x2 = " + y); System.out.println("\nf1 = " + (x - x / (x * x + y * y) + 0.4)); System.out.println("\nf2 = " + (y - y / (x1 * x1 + y * y) + 1.4)); } } public class main { public static void main(String args[]) { newton newtonFin = new newton(1, 1); newtonFin.solve(); } } Результат роботи програми / Висновок. В даній лабораторній роботі я ознайомився з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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