МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №1
з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Методи уточнення коренів нелінійних рівнянь»
Варіант № 16
Львів 2016
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Короткі теоретичні дані:
Метод хорд
Метод забезпечує швидшу збіжність, ніж метод поділу навпіл. Ідея методу в тому, що на проміжку дугу кривої заміняють хордою, яка її стягує. За наближене значення кореня приймають точку перетину хорди з віссю абсцис (точка А)
Рівняння прямої, яка проходить через точки і :
Точка А є наближеним коренем , яка була знайдена з рівняння прямої, якщо покласти , :
Далі застосовуємо метод хорд до відрізку :
Таким чином, ітераційна формула методу хорд має вигляд:
(4)
За наведеними формулами обчислюють корені також і тоді, коли ; ; ; . Тобто коли - застосовують (4).
У випадку, коли перша і друга похідні мають різні знаки, тобто , ітераційна формула має інший вигляд:
(5)
Метод хорд – це метод одностороннього наближення. Один край відрізку фіксується, а інший змінюється. Зауважимо, що формули (4) та (5) тотожні. Узагальнити їх можна так. Якщо виконується співвідношення (6):
, (6)
фіксується точка а: . В іншому випадку фіксується точка b: . При цьому ітераційна формула методу хорд має вигляд:
, (7)
де початкове значення - край відрізка , протилежний до обраного
Обчислення виконуються доти, доки різниця між черговими i не стане меншою за задану граничну абсолютну похибку Е:
Алгоритм методу хорд
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b].
Варіант
Рівняння
Відрізок
16
x3 + 3x2 – 3 = 0
[–3;–2.2]
Таблиця ідентифікаторів констант, змінних, функцій, використаних у програмі, та їх пояснення:
Main()
Головна функція
F()
Функція, що передає задане рівняння
Функція очищення екрану
WriteLine()
Функція виведення даних
ReadLine()
Функція введення даних
Abs()
Функція для знаходження абсолютного значення типу double
xn
Змінна, початкове значення відрізку
xF
Змінна, кінцеве значення відрізку
E
Змінна, гранична абсолютна похибка
xn1
Змінна розвязок рівняння
Текст програми мовою С#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace laba1
{
class Program
{
static double F(double x)
{
return (Math.Pow(x, 3) + 3 * Math.Pow(x, 2) - 3);
}
static void Main(string[] args)
{
double a, b, E,xF,xn,xn1;
a = -3;
b = -2.2;
E = 1e-4;
if (F(a) * (6 * a + 3) > 0)
{
xF = a;
xn = b;
}
else
{
xF = b;
xn = a;
}
xn1 = xn;
do
{
xn = xn1;
xn1 = xn - ((xn - xF) * F(xn)) / (F(xn) - F(xF));
}
while (Math.Abs(xn1 - xn) > E);
Console.WriteLine("x="+Math.Round(xn1,4));
Console.ReadLine();
}
}
}
Результати роботи програми:
x= -2.5321
Висновок:
На цій лабораторній роботі я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим.