По заданому нелінійному рівнянню F (x)=0, де F (x) - деякий нелінійне аналітичний вираз, визначене на інтервалі [a, b], обчислити корінь цього рівняння з необхідною точністю E одним з трьох методів:
. ітерацій;
2. половинного ділення;
. Ньютона.
Перевіряється, чи має місце зміна її знака (перехід через нуль) на інтервалі [a, b].
Вихідні дані:
F (x) abМетодТочность 1.2630.000001
Метод Ньютона (дотичних) заснований також на послідовному завданні значень x і обчисленні функції < i align="justify"> F (x), причому чергове значення x визначається формулою:
x (n +1)=x (n) - F (x (n)) / F (x (n)) ,
де F (x (n)) - похідна від функції F (x) в точці x (n).
Геометрично похідна від F (x), як відомо, за величиною дорівнює тангенсу кута нахилу ка?? Ательной до кривої F (x) в точці x . Тоді точка x (n +1) є точка перетину з віссю абсцис дотичної до кривої F (x), проведеної в точці < i align="justify"> x=x (n). Див рис.5.
Рис. 5. Геометричне уявлення методу Ньютона
Як і в методі ітерацій, початкове значення x задається як найближче табличне до місця переходу функції F (x) через нуль.
Вираз для похідної F (x) отримують аналітично в результаті диференціювання функції F (x). Значення похідної може бути отримано наближено і чисельним методом:
F (x)=(F (x + E) - F (x)) / E.
Ітераційний процес наближення до кореня (послідовне обчислення x (n +1)) продовжується до тих пір, поки буде виконуватися умова
| x (n +1) - x (n) |>=E .
Структура програми:
1. Підключення бібліотек
2. Опис даної функції
3. Опис функції R і calculate для обчислення кореня рівняння
. Створення віджетів
4.1. Створення вікна
4.2. Створення кнопок і полів для введення користувачем значень
.3. Вставка малюнка
.4. Створення графіка вихідної функції
.5. Відображення головного вікна
Код програми:
# * - coding: utf - 8 - * -
# імпорт математичної бібліотекіmath import *
# підключення бібліотеки Tkinter
from Tkinter import *
# опис функційF (x):
return x ** 3-5 * x ** 2 +3 * x - 2
def F1 (x):
return 3 * x ** 2-10 * x +3
def R (a, b, e, n):
h=(b-a) / float (n)