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

Загрузить архив:
Файл: vdv-1431.zip (29kb [zip], Скачиваний: 82) скачать

Пензенский приборостроительный колледж


на тему:

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

Выполнил:      Ст-т 22п группыЛЯПИНР.Н.

Проверила:      ______________

Ковылкино – 1999 г.


ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ

студент Ляпин Р.Н. группа 22п

1. Тема: "Метод касательных решения нелинейных уравнений".

2. Изучить теоретический материал по заданнойтеме.

3. Составить блок схему алгоритма решения задачи .

4. Написать программу на языке Турбо-Паскаль для решения задачи в общем виде.

5. Выполнить программу с конкретными значениями исходных данных.

6.Определить корни уравнения х3 + 0,1 * х2 + 0,4 * х – 1,2 = 0 аналитически и уточнить один из них с точностью до 0,000001 методом касательных

7. Срок представления работы к защите: 10 мая 1999 г.

8. Исходные данные для исследования: научная и техническая литература.

Руководитель курсовой работы: Кривозубова С.А.

Задание принял к исполнению:Ляпин Р.Н.


РЕФЕРАТ

Курсовая работа содержит:страниц, 1 график, 5 источников.

Перечень ключевых понятий: производная, метод касательных, программирование, нелинейное уравнение.

Объект исследования: Корни нелинейного уравнения.

Цель работы: Определение корней нелинейного уравнения.

Методы исследования: изучение работ отечественных и зарубежных авторов по данной теме.

Полученные результаты: изучен метод касательных решения нелинейных уравнений; рассмотрена возможность составления программы на языке программирования Турбо-Паскаль 7.0

Область применения: в работе инженера.


СОДЕРЖАНИЕ

стр.

ВВЕДЕНИЕ........................................5

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

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

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

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

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

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

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


ВВЕДЕНИЕ

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

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)

Решая его методом итераций можем записать :

              xn+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))

Нашли абсциссу x1 точки c1 пересечения касательной с осью ox :

x1 = b – (f (b) – f ’ (b))

Проведем  касательную к графику функции в точке b1 (x1; f (x1)).Найдем абсциссу x2 точки с2 пересечения касательной с осью Ox :

x2 = x1 – (f (x1)/( f ’(x1))

Вообще :

xk+1=x k – (f(x k)/f ’(x k))                                                (3)

Таким образом, формула (3) дает последовательные приближения (xk) корня, получаемые из уравнения касательной , проведенной к графику функции в точке         b k(x k;f(x k0) метод уточнения корняc  [a;b] уравнения f(x) = 0 с помощью формулы (3) называется методом касательной или методом Ньютона.

Геометрический смысл метода касательных состоит в замене дуги y = f (x) касательной, одной к однойиз крайних точек . Начальное приближение x 0 = a или    x0 = b брать таким, чтобы вся последовательность приближения х k принадлежала интервалу]a;b[ . В случае существования производных f ’, f ”, сохраняющих свои знаки в интервале, за х0 берется тот конец отрезка [a;b], для которого выполняется условиеf ’(х0) * f (х0) > 0. Для оценки приближения используется общая формула :

|c-x k-1 | £ | f (x k+1)/m| , где m = minf’(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

х2n

х3n

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. Блок схема программы

Начало

a:=0;

b:=1;

c:=0.00000001;

y0:= f(b);

х n:= b;

нет

да

Конец

y0>c

х n:= х n+1;

х n+1:= j (х n);

y0:= f(х n+1);

Печать на дисплей промежуточных

х n+1, f(х n+1)

Печать на дисплей конечных значений

х n+1, f(х n+1)


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);

whileABS(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 с.