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

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

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

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

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

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

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

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

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

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

Звіт до лабораторної роботи присвячено ознайомленню з методом Ньютона для розв’язування систем нелінійних рівнянь. Складено та протестовано програму мовою C# для обчислень.

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

  • Числові методи
  • Нелінійні рівняння
  • Метод Ньютона
  • Програмування на C#
  • Обчислювальна математика

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

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

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

метод Ньютонанелінійні рівнянняітераційний методЯкобіанC#похибкамасивпрограмаалгоритмобчислення

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” ІКТА Кафедра захисту інформації З В І Т До лабораторної роботи №5 з курсу: „ Комп’ютерні методи дослідження інформаційних процесів та систем ” на тему: «Метод Ньютона для розв’язування систем нелінійних рівнянь» Варіант 7 Мета роботи: Ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона. ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розв’язати систему нелінійних рівнянь модифікованим методом Ньютона, вибираючи за початкові наближення . Ітерації проводити до збігу двох послідовних наближень з похибкою . 7)   Блок схема програми Список індентифікаторів, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення class Program – клас, в якому оголошений метод Main; class Metods –клас, в якому оголошені методи J, A, F, Obchusl; public void J – метод обчислення Якоб’яна; public void A – метод обчислення обертання Якоб’яна; public void F – метод обчислення функції в при х[1], x[2]; public void Obchusl – метод обчислення значення х[1], x[2]; static void Main(string[] args) – головна функція; I – клас типу Methods; j, a масиви 2х2 типу Double; x1, x2, E, delta_xk1, delta_xk2, xk1, xk2 змінні типу double; p – змінна типу int; f,r – лінійні масиви типу Double. Текст програми: using System; using System.Collections.Generic; using System.Text; namespace Njuton { class Program { static void Main(string[] args) { Metods I = new Metods(); I.Obchusl(); Console.ReadKey(); } } class Metods { Double[,] j = new Double[2, 2]; Double[,] a = new Double[2, 2]; double x1, x2, E = 0.00001, delta_xk1, delta_xk2, xk1, xk2; int p; Double[] f = new Double[2]; Double[] r = new Double[2]; public void J(double x1, double x2) { j[0, 0] = 1 - 2 * x1; j[0, 1] = -2 * x2; j[1, 0] = -2 * x2; j[1, 1] = 1 - 2 * x1; } public void A(double x1, double x2) { J(x1, x2); double det = Math.Pow(1 - 2 * x1, 2) - Math.Pow(2 * x2, 2); a[0, 0] = (1 / det) * j[1, 1]; a[0, 1] = (1 / det) * j[1, 0]; a[1, 0] = (1 / det) * j[0, 1]; a[1, 1] = (1 / det) * j[0, 0]; } public void F(double x1, double x2) { f[0] = x1 - Math.Pow(x1, 2) - Math.Pow(x2, 2) + 0.1; f[1] = x2 - 2 * x1 * x2 - 0.1; } public void Obchusl() { x1 = Convert.ToDouble(Console.ReadLine()); x2 = Convert.ToDouble(Console.ReadLine()); int k = 0; A(x1, x2); do { p = 0; k++; if (k % 5 == 0) A(x1, x2); F(x1, x2); r[0] = a[0, 0] * f[0] + a[0, 1] * f[1]; r[1] = a[1, 0] * f[0] + a[1, 1] * f[1]; xk1 = x1 - r[0]; xk2 = x2 - r[1]; delta_xk1 = Math.Abs(xk1 - x1); delta_xk2 = Math.Abs(xk2 - x2); if (delta_xk1 < E) p = 1; if (delta_xk2 < E) p = 1; x1 = xk1; x2 = xk2; } while (p != 1); Console.WriteLine("\n\n{0}\t{1}\n", x1, x2); } } } Результат виконання програми: 
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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