МЕТОД КАСАТЕЛЬНЫХ. РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ. ПАСКАЛЬ 7.0
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. Краткое описание сущности метода касательных
( метода секущих Ньютона)
2. Решение нелинейного уравнения аналитически
3. Блок схема программы
4. Программа на языке PASCAL 7.0
5. Результаты выполнения программы
СПИСОК ИСПОЛЬЗОВАННИХ ИСТОЧНИКОВ
ВВЕДЕНИЕ
Процедура подготовки и решения задачи на ЭВМ достаточно сложный и трудоемкий процесс, состоящий из следующих этапов:
Постановка задачи (задача, которую предстоит решать на ЭВМ, формулируется пользователем или получается им в виде задания).
Математическая формулировка задачи.
Разработка алгоритма решения задачи.
Написание программы на языке программирования.
Подготовка исходных данных .
Ввод программы и исходных данных в ЭВМ.
Отладка программы.
Тестирование программы.
Решение задачи на ЭВМ и обработка результатов.
В настоящей курсовой работе условие задачи дано в математической формулировке, поэтому необходимость в выполнении этапов 1 и 2 отпадает и сразу можно приступить к разработке алгоритма решения задачи на ЭВМ. Под алгоритмом понимается последовательность арифметических и логических действий над числовыми значениями переменных, приводящих к вычислению результата решения задачи при изменении исходных данных в достаточно широких пределах. Таким образом, при разработке алгоритма решения задачи математическая формулировка преобразуется в процедуру решения, представляющую собой последовательность арифметических действий и логических связей между ними. При этом алгоритм обладает следующими свойствами: детерминированностью, означающей, что применение алгоритма к одним и тем же исходным данным должно приводить к одному и том уже результату; массовость, позволяющей получать результат при различных исходных данных; результативностью, обеспечивающей получение результата через конечное число шагов
Наиболее наглядным способом описания алгоритмов является описание его в виде схем. При этом алгоритм представляется последовательность блоков, выполняющих определенные функции, и связей между ними. Внутри блоков указывается информация, характеризующая выполняемые ими функции. Блоки схемы имеют сквозную нумерацию
Конфигурация и размеры блоков, а также порядок построения схем определяются ГОСТ 19.002-80 и ГОСТ 19.003-80
На этапе 4 составляется программа на языке Турбо-Паскаль. При описании программы необходимо использовать характерные приемы программирования и учитывать специфику языка. В качестве языка программирования выбран язык ПАСКАЛЬ ввиду его наглядности и облегченного понимания для начинающих программистов, а также возможности в дальнейшем использовать для решения более трудных задач
Этапы алгоритмизации и программирования являются наиболее трудоемкими, поэтому им уделяется большое внимание
В процессе выполнения курсовой работы студент готовит исходные данные, вводит программу и исходные данные. При работе ввод программы и исходных данных осуществляется с клавиатуры дисплея
Отладка программы состоит в обнаружении и исправлении ошибок, допущенных на всех этапах подготовки задач к решению на ПЭВМ. Синтаксис ошибки обнаруживается компилятором, который выдает сообщение, указывающее место и тип ошибки. Обнаружение семантических ошибок осуществляется на этапе тестирования программы, в котором проверяется правильность выполнения программы на упрощенном варианте исходных данных или с помощью контрольных точек или в режиме пошагового исполнения
Задание при обработке на ЭВМ проходит ряд шагов: компиляцию, редактирование (компоновку) и выполнение
Обработка результатов решения задачи осуществляется с помощью ЭВМ. Выводимые результаты оформлены в виде, удобном для восприятия
1. Краткое описание сущности метода касательных
( метода секущих Ньютона)
Пусть на отрезке [a; b] отделен корень с уравнения f (x) = 0 и f -функция непрерывна на отрезке [a; b], а на интервале ]a; b[ существуют отличные от нуля производные f ’ и f ”
Так как f ’(x) № 0 , то запишем уравнение f (x) = 0 в виде :
x = x – ( f (x) / f ’(x)) (1)
Решая его методом итераций можем записать :
x n+1 = x n – ( f (x n ) / f ’(x n )) (2)
Если на отрезке [a;b] f ’(x) * f “(x) > 0, то нул – евое приближение выбираем x0=a. Рассмотрим геометрический смысл метода . Рассмотрим график функции y=f(x). Пусть для определенности f ‘(x) > 0 и f “(x) > 0 (рис. 1). Проведем касательную к графику функции в точке B (b, f (b)). Ее уравнение будет иметь вид :
y = f (b) + f ’(b) * (x – b)
Полагая в уравнении y = 0 и учитывая что f ’(x) № 0, решаем его относительно x. Получим :
x = b – (f (b) /f ‘(b))
Нашли абсциссу x 1 точки c 1 пересечения касательной с осью ox :
x 1 = b – (f (b) – f ’ (b))

Проведем касательную к графику функции в точке b 1 (x 1 ; f (x 1 )).Найдем абсциссу x 2 точки с 2 пересечения касательной с осью Ox :
x 2 = x 1 – (f (x 1 ) / ( f ’(x 1 ))
Вообще :
x k+1 = x k – ( f (x k ) / f ’(x k )) (3)
Таким образом, формула (3) дает последовательные приближения (x k ) корня, получаемые из уравнения касательной , проведенной к графику функции в точке b k (x k ; f (x k0 ) метод уточнения корня c [a;b] уравнения f (x) = 0 с помощью формулы (3) называется методом касательной или методом Ньютона
Геометрический смысл метода касательных состоит в замене дуги y = f (x) касательной, одной к одной из крайних точек . Начальное приближение x 0 = a или x 0 = b брать таким, чтобы вся последовательность приближения х k принадлежала интервалу ]a;b[ . В случае существования производных f ’, f ”, сохраняющих свои знаки в интервале, за х 0 берется тот конец отрезка [a;b], для которого выполняется условие f ’(х 0 ) * f (х 0 ) > 0. Для оценки приближения используется общая формула :
|c-x k-1 | Ј | f (x k+1 )/m| , где m = min f ’(x) на отрезке [a;b] .
На практике проще пользоваться другим правилом :
Если на отрезке [a;b] выполняется условие 0 < m < | f (x)| и e - заданная точность решения, то неравенство | x k+1 -x k | Ј e влечет выполнение неравенства |c-x k-1 | Ј e .
В этом случае процесс последовательного приближения продолжают до тех пор, пока не выполнится неравенство :
|c-x k-1 | Ј e .
 
   
2. Решение нелинейного уравнения аналитически
Определим корни уравнения х 3 + 0,1х 2 + 0,4х – 1,2 = 0 аналитически. Находим : f (x) = х 3 + 0,1х 2 + 0,4х – 1,2
f ‘ (x) = 3х 2 + 0,1х + 0,4
f (–1) = –2,5 < 0 f (0) = –1,2 < 0 f (+1) = 0,3 > 0
x
- Ґ
-1
0
+1
+ Ґ

sign f (x)
-
-
-
+
+

Следовательно, уравнение имеет действительный корень, лежащий в промежутке [ 0; +1 ]
Приведем уравнение к виду x = j (x) , так , чтобы | j ‘ (x) | <1 при 0 Ј x Ј +1.
Так как max | f ’(x) | = f ’(+1) = 3 + 0,1 + 0,4 = 3,5 то можно взять R = 2
Тогда j (x) = x – ( f (x) / R) = x – 0,5 х 3 – 0,05 х 2 – 0,2 х + 0,6 = – 0,5 х 3 – 0,05 х 2 + 0,8 х + 0,6.
Пусть х 0 = 0 , тогда х n+1 = j (х n ).
Вычисления расположим в таблице
n
х n
х 2 n
х 3 n
j ( х n ).
f (x)

1
1
1
1
0,85
-0,17363

2
0,85
0,7225
0,614125
0,9368125
0,08465

3
0,9368125
0,87761766
0,822163194
0,89448752
-0,04651

4
0,89448752
0,800107923
0,715686552
0,917741344
0,024288

5
0,917741344
0,842249174
0,772966889
0,905597172
-0,01306

6
0,905597172
0,820106238
0,74268589
0,912129481
0,006923

7
0,912129481
0,83198019
0,758873659
0,908667746
-0,0037

8
0,908667746
0,825677072
0,750266124
0,910517281
0,001968

9
0,910517281
0,829041719
0,754856812
0,909533333
-0,00105

10
0,909533333
0,827250884
0,752412253
0,910057995
0,000559

11
0,910057995
0,828205555
0,753715087
0,909778575
-0,0003

12
0,909778575
0,827697055
0,753021048
0,909927483
0,000159

13
0,909927483
0,827968025
0,753390861
0,909848155
-8,5E-05

14
0,909848155
0,827823665
0,753193834
0,909890424
4,5E-05

15
0,909890424
0,827900583
0,753298812
0,909867904
-2,4E-05

16
0,909867904
0,827859602
0,753242881
0,909879902
1,28E-05

17
0,909879902
0,827881437
0,753272681
0,90987351
-6,8E-06

18
0,90987351
0,827869803
0,753256804
0,909876916
3,63E-06

19
0,909876916
0,827876002
0,753265263
0,909875101
-1,9E-06

20
0,909875101
0,827872699
0,753260756
0,909876068
1,03E-06

График функции y = х 3 + 0,1х 2 + 0,4х – 1,2

3. Блок схема программы
4. Программа на языке PASCAL 7.0
program metod_kasatel;{Название программы}
uses Crt ; {Модуль дисплейных функций}
var {Блок описаний переменных}
xn,xn1,a,b,c,mx,y0,x0 : real ;
function f1(x1: Real ): Real ; {Основная функция}
begin
f1 := x1*x1*x1*(-0.5)-0.05*x1*x1+0.8*x1+0.6;
end ;
function f2(x4:Real): Real ; {Производная от основной функции}
begin
f2 := x4*x4*x4+0.5*x4*x4+0.1*x4*x4+0.4*x4–1.2;
end ;
begin {Начало основного тела программы}
Clrscr ; {Очистка экрана перед выполнением программы}
a:=0;b:=1;c:=0.00000001;
Writeln (' От A=',a,' до B=',b); {Вывод на экран}
Writeln (' Погрешность с=',c);
Readln ; { Ожидание нажатия клавиши Enter}
xn:=b;
xn1:= f1(xn);
y0:=f2(b);
while ABS (y0)>c do {Проверка по точности вычисления корня}
begin {Тел