МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
Звіт про виконання
лабораторної роботи №1
з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем»
на тему: «Методи уточнення коренів
нелінійних рівнянь»
Варіант № 21
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Короткі теоретичні відомості
Комбінований метод хорд та дотичних
Метод хорд та дотичних дає наближення кореня з різних сторін (менше і більше від істинного значення). Тому доцільно використати обидва способи одночасно, завдяки чому уточнене значення кореня одержується швидше.
Нехай – початкове наближення кореня за методом хорд, а – за методом дотичних (див.рис.1).
Тоді провівши хорду та дотичну, одержимо відповідні наближення за методом хорд
і за методом дотичних
.
Або в загальному випадку
(11)
(12)
Рис. 1
Якщо припустима абсолютна похибка E заздалегідь задана, то процес наближення припиняється, доки не буде виявлено, що
Після закінчення процесу за значення кореня х* краще взяти середнє арифметичне одержаних останніх значень
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b] методом Ньютона.
21
x3 + 6x2 + 9x + 1 = 0
[–1;0]
3.Блок-схема алгоритму програми
4. Список ідентифікаторів констант, змінних, функцій,
використаних у блок-схемі алгоритму і програмі,
та їх пояснення
class Program – клас, в якому виконуються всі дії;
a, b - змінні, які відповідають за межі;
E- змінна, яка відповідає за похибку;
xn,xnr, xn1,xnr1- змінні, які відповідають за біжучі точки;
Console.WriteLine() – метод виведення на екран;
5. Текст програми
using System;
namespace Sabodaschko
{
class Program
{
static void Main()
{
double a, b, E, xn, xn1, xnr, xnr1, f;
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());
xn = a;
xnr = b;
do
{
xnr1=xnr-((Math.Pow(xnr,3)+6*Math.Pow(xnr,2)+
9*xnr+1)/(3*Math.Pow(xnr,2)+6*xnr+9));
xn1=xn-((Math.Pow(xn,3)+6*Math.Pow(xn,2)
+9*xn+1)*(xnr1-xn))/((Math.Pow(xnr1,3)
+6*Math.Pow(xnr1,2)+9*xnr1+1)-(Math.Pow(xn,3)
+6*Math.Pow(xn,2)+9*xn+1));
xn=xn1;
xnr=xnr1;
}
while (Math.Abs(xn1-xnr1) > E);
f= 0.5 * (xn + xnr);
Console.WriteLine("x=" + f);
}
}
}
6. Результати роботи програми
/
7. Висновки
На даній лабораторній роботі я навчився знаходити наближені корені нелінійних рівнянь комбінованим методом хорд та дотичних . А також зрозумів,
що ці корені доцільно шукати за допомогою комп’ютерних програм тому , що
на їх пошуки вручну потрібно виконати багато дій та затратити багато часу .