Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра ЗІ
/
ЗВІТ
До лабораторної роботи №1
МЕТОДИ УТОЧНЕННЯ КОРЕНІВ НЕЛІНІЙНИХ РІВНЯНЬ
Варіант №13
Львів – 2013
1. Мета роботи
Ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
2. Завдання
Варіант
Рівняння
Відрізок
13
x3 + x + 3 = 0
[–2;–1]
Комбінований метод хорд та дотичних
Метод хорд та дотичних дають наближення кореня з різних сторін (менше і більше від істинного значення). Тому доцільно використовувати обидва способи одночасно, завдяки чому уточнене значення кореня одержується швидше.
Нехай – початкове наближення кореня за методом хорд, а – за методом дотичних (див.рис.4).
Тоді провівши хорду та дотичну, одержимо відповідні наближення за методом хорд
і за методом дотичних
.
Або в загальному випадку
(11)
(12)
Рис. 4
Якщо припустима абсолютна похибка ε заздалегідь задана, то процес наближення припиняється, доки не буде виявлено, що
Після закінчення процесу за значення кореня х* краще взяти середнє арифметичне одержаних останніх значень
Кращий результат дає наступний порядок обчислень:
Знаходиться наближене значення кореня за методом Ньютона;
Знаходиться наближене значення кореня за методом хорд, використовуючи замість значення , знайдене за методом Ньютона, і процес повторюється до одержання бажаної похибки обчислень.
; .
Рис.5.
Алгоритм комбінованого методу метод хорд та дотичних
Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Laba1
{
class Programa
{
static void Main(string[] args)
{
One t = new One();
t.Vvid();
t.umova();
Console.Write("\nНатиснiть клавiшу Enter для того, щоб завершити програму...");
Console.ReadLine();
}
}
class One
{
public Double a, b, e, x1, x2;
public void Vvid()
{
Console.Write("\tВведiть межi вiдрiзку\n\nВведiть першу межу: ");
a = Convert.ToDouble(Console.ReadLine());
Console.Write("Введiть другу межу: ");
b = Convert.ToDouble(Console.ReadLine());
Console.Write("Введiть похибку: ");
e = Convert.ToDouble(Console.ReadLine());
}
public void umova()
{
A:
x2 = b - (b * b * b + b + 3) /
(3 * b * b + 1);
x1 = a - (((a * a * a + a + 3) * (x2 - a)) /
((x2 * x2 * x2 + x2 + 3) - (a * a * a + a + 3)));
if (Math.Abs(x2 - x1) > e)
{
a = x1;
b = x2;
goto A;
}
else
{
double res, fun;
res = (a + b) / 2;
fun = res * res * res + res + 3;
Console.WriteLine("Значення функцiї: " + fun);
Console.WriteLine("\nВiдповiдь: \n\t" + res);
}
}
}
}
Результати виконання програми
/
Висновок:
Я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!