| |||||
МЕНЮ
| Решение нелинейного уравнения методом касательныхРешение нелинейного уравнения методом касательныхПензенский приборостроительный колледж на тему: Метод касательных решения нелинейных уравнений Выполнил: Ст-т 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 = 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) | 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 с. ----------------------- [pic] Печать на дисплей промежуточных х n+1, f(х n+1) Печать на дисплей конечных значений х n+1, f(х n+1) х n:= х n+1; х n+1:= ? (х n); y0:= f(х n+1); y0>c Конец да нет y0:= f(b); х n:= b; a:=0; b:=1; c:=0.00000001; Начало |
ИНТЕРЕСНОЕ | |||
|