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

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

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





на тему:


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


Выполнил: Ст-т 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 k
0
) метод уточнения корня c [a;b] уравнения f (x) = 0 с помощью формулы (3) называется методом касательной или методом Ньютона.


Геометрический смысл метода касательных состоит в замене дуги y = f (x) касательной, одной к одной из крайних точек . Начальное приближение x0
= 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 = min
f ’(x) на отрезке [a;b] .


На практике проще пользоваться другим правилом :


Если на отрезке [a;b] выполняется условие 0 < m < | f (x)| и заданная точность решения, то неравенство | x k+
1
-x k
|  влечет выполнение неравенства |c-x k
-1
| 


В этом случае процесс последовательного приближения продолжают до тех пор, пока не выполнится неравенство :


|c-x k
-1
| 


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 =  (x) , так , чтобы | ‘ (x) | <1 при 0 x  +1.


Так как max | f ’(x) | = f ’(+1) = 3 + 0,1 + 0,4 = 3,5 то можно взять R = 2.


Тогда  (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
= (х n
).


Вычисления расположим в таблице.





















































































































































n хn
х2
n
х3
n
 (х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
. {Конец основного тела программы}


От 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 с.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:2031
Символов:20087
Размер:39.23 Кб.