Мета роботи: ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона. Завдання Розв’язати систему нелінійних рівнянь методом Ньютона з якобіаном із кінцевих різниць, вибираючи за початкові наближення . Ітерації проводити до збігу двох послідовних наближень з похибкою .
Текст програми class Program { public static void Main() { Nuton nt = new Nuton(1, 1); nt.solve(); } } class Nuton { public double x1, x2; public double dx1, dx2, d, x, y, del, f1, f2; double h = 0.00001; int n = 4; public Nuton(double x, double y) { x1 = x; x2 = y; } double f(double x1, double x2, int i) { if (i == 0 || i == 1) return x1 - (Math.Pow(Math.Pow(x1, 2) - Math.Pow(x2, 2), 2)) / 4 - Math.Pow(x1, 2) * Math.Pow(x2, 2) + 0.5; return x2 - x1 * x2 * (Math.Pow(x1, 2) - Math.Pow(x2, 2)) + 0.5; } double[] Poxidna() { double[] df = new double[n]; for (int i = 0; i < n; i++) { if (i % 2 == 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 = Poxidna(); 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); Console.WriteLine("Коренi системи:\nx1=" + x + "\nx2=" + y); f1 = x - (Math.Pow(Math.Pow(x, 2) - Math.Pow(y, 2), 2)) / 4 - Math.Pow(x, 2) * Math.Pow(y, 2) + 0.5; f2 = y - x * y * (Math.Pow(x, 2) - Math.Pow(y, 2)) + 0.5; Console.WriteLine("\nf1=" + f1); Console.WriteLine("f2=" + f2); Console.WriteLine("\nPress any key to exit..."); Console.Read(); } } / Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська Політехніка» ІКТА Кафедра ЗІ
Звіт до лабораторної роботи №5 з дисципліни: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «Метод Ньютона для розв’язування систем нелінійних рівнянь»
Виконала ст. гр. УІ – 21 Трач Софія Перевірила Лужецька Н. М. Львів-2013