Метод касательных. Решения нелинейных уравнений

МЕТОД КАСАТЕЛЬНЫХ. РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ. ПАСКАЛЬ 7.0

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. Краткое описание сущности метода касательных

( метода секущих Ньютона)

2. Решение нелинейного уравнения аналитически

3. Блок схема программы

4. Программа на языке PASCAL 7.0

5. Результаты выполнения программы

СПИСОК ИСПОЛЬЗОВАННИХ ИСТОЧНИКОВ

ВВЕДЕНИЕ

Процедура подготовки и решения задачи на ЭВМ достаточно сложный и трудоемкий процесс, состоящий из следующих этапов:

  1. Постановка задачи (задача, которую предстоит решать на ЭВМ, формулируется пользователем или получается им в виде задания).
  2. Математическая формулировка задачи.
  3. Разработка алгоритма решения задачи.
  4. Написание программы на языке программирования.
  5. Подготовка исходных данных .
  6. Ввод программы и исходных данных в ЭВМ.
  7. Отладка программы.
  8. Тестирование программы.
  9. Решение задачи на ЭВМ и обработка результатов.

В настоящей курсовой работе условие задачи дано в математической формулировке, поэтому необходимость в выполнении этапов 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 {Тело цикла}

xn:=xn1;

xn1:=f1(xn);

y0:= f2(xn1);

{Печать промежуточного результата}

Writeln ('xn=',xn,' xn+1=',xn1,' f(xn+1)=',y0);

Readln ; { Ожидание нажатия клавиши Enter}

end ; {Конец тела цикла}

Writeln ('Конечные значения'); {Печать полученного результата}

Writeln (' xn+1=',xn1,' f(xn+1)=',y0);

Readln ; { Ожидание нажатия клавиши Enter}

end . {Конец основного тела программы}

5. Результаты выполнения программы

От A= 0.0000000000E+00 до B= 1.0000000000E+00

Погрешность с= 1.0000000000E-08

От A= 0.0000000000E+00 до B= 1.0000000000E+00

Погрешность с= 1.0000000000E-08

xn= 8.5000000000E-01 xn+1= 9.3681250000E-01 f(xn+1)= 8.4649960270E-02

xn= 9.3681250000E-01 xn+1= 8.9448751986E-01 f(xn+1)=-4.6507647892E-02

xn= 8.9448751986E-01 xn+1= 9.1774134381E-01 f(xn+1)= 2.4288343840E-02

xn= 9.1774134381E-01 xn+1= 9.0559717189E-01 f(xn+1)=-1.3064617920E-02

xn= 9.0559717189E-01 xn+1= 9.1212948085E-01 f(xn+1)= 6.9234699658E-03

xn= 9.1212948085E-01 xn+1= 9.0866774587E-01 f(xn+1)=-3.6990702320E-03

xn= 9.0866774587E-01 xn+1= 9.1051728099E-01 f(xn+1)= 1.9678960780E-03

xn= 9.1051728099E-01 xn+1= 9.0953333295E-01 f(xn+1)=-1.0493249720E-03

xn= 9.0953333295E-01 xn+1= 9.1005799543E-01 f(xn+1)= 5.5884091853E-04

xn= 9.1005799543E-01 xn+1= 9.0977857497E-01 f(xn+1)=-2.9781681224E-04

xn= 9.0977857497E-01 xn+1= 9.0992748338E-01 f(xn+1)= 1.5865717614E-04

xn= 9.0992748338E-01 xn+1= 9.0984815480E-01 f(xn+1)=-8.4537703515E-05

xn= 9.0984815480E-01 xn+1= 9.0989042365E-01 f(xn+1)= 4.5040009354E-05

xn= 9.0989042365E-01 xn+1= 9.0986790364E-01 f(xn+1)=-2.3997676180E-05

xn= 9.0986790364E-01 xn+1= 9.0987990248E-01 f(xn+1)= 1.2785800209E-05

xn= 9.0987990248E-01 xn+1= 9.0987350958E-01 f(xn+1)=-6.8122881203E-06

xn= 9.0987350958E-01 xn+1= 9.0987691573E-01 f(xn+1)= 3.6295678001E-06

xn= 9.0987691573E-01 xn+1= 9.0987510095E-01 f(xn+1)=-1.9338276616E-06

xn= 9.0987510095E-01 xn+1= 9.0987606786E-01 f(xn+1)= 1.0303429008E-06

xn= 9.0987606786E-01 xn+1= 9.0987555269E-01 f(xn+1)=-5.4896190704E-07

xn= 9.0987555269E-01 xn+1= 9.0987582717E-01 f(xn+1)= 2.9248803912E-07

xn= 9.0987582717E-01 xn+1= 9.0987568093E-01 f(xn+1)=-1.5583464119E-07

xn= 9.0987568093E-01 xn+1= 9.0987575885E-01 f(xn+1)= 8.3031409304E-08

xn= 9.0987575885E-01 xn+1= 9.0987571733E-01 f(xn+1)=-4.4236003305E-08

xn= 9.0987571733E-01 xn+1= 9.0987573945E-01 f(xn+1)= 2.3572283681E-08

xn= 9.0987573945E-01 xn+1= 9.0987572766E-01 f(xn+1)=-1.2558302842E-08

xn= 9.0987572766E-01 xn+1= 9.0987573394E-01 f(xn+1)= 6.6920620156E-09

Конечные значения

xn+1= 9.0987573394E-01 f(xn+1)= 6.6920620156E-09

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Алексеев В. Е., Ваулин А.С., Петрова Г. Б. тАУ Вычислительная техника и программирование. Практикум по программированию :Практ .пособие/ тАУМ.: Высш. шк. , 1991. тАУ 400 с.
  2. Абрамов С.А., Зима Е.В. тАУ Начала программирования на языке Паскаль. тАУ М.: Наука, 1987. тАУ112 с.
  3. Вычислительная техника и программирование: Учеб. для техн. вузов/ А.В. Петров, В.Е. Алексеев, А.С. Ваулин и др. тАУ М.: Высш. шк., 1990 тАУ 479 с.
  4. Гусев В.А., Мордкович А.Г. тАУ Математика: Справ. материалы: Кн. для учащихся. тАУ 2-е изд. тАУ М.: Просвещение, 1990. тАУ 416 с.
  5. Марченко А.И., Марченко Л.А. тАУ Программирование в среде Turbo Pascal 7.0 тАУ К.: ВЕК+, М.: Бином Универсал, 1998. тАУ 496 с.

Вместе с этим смотрят:

Метод математической индукции
Метод прогонки
Метод прогонки решения систем с трехдиагональными матрицами коэффициентов
Метода последовательных уступок