.

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

Язык: русский
Формат: реферат
Тип документа: Word Doc
0 423
Скачать документ

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

на тему:

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

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

Проверила: ______________

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

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

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

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

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

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

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

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

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

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

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

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

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

РЕФЕРАТ

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

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

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

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

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

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

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

СОДЕРЖАНИЕ

стр.

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

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

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

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

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

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

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

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

ВВЕДЕНИЕ

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

Постановка задачи (задача, которую предстоит решать на ЭВМ,
формулируется пользователем или получается им в виде задания).

Математическая формулировка задачи.

Разработка алгоритма решения задачи.

Написание программы на языке программирования.

Подготовка исходных данных .

Ввод программы и исходных данных в ЭВМ.

Отладка программы.

Тестирование программы.

Решение задачи на ЭВМ и обработка результатов.

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

x – ? -1 0 +1 + ?

sign f (x) – – – + +

Следовательно, уравнение имеет действительный корень, лежащий в
промежутке [ 0; +1 ].

Приведем уравнение к виду x = ? (x) , так , чтобы | ? ‘ (x) | 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

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

Алексеев В. Е., Ваулин А.С., Петрова Г. Б. – Вычислительная техника и
программирование. Практикум по программированию :Практ .пособие/ –М.:
Высш. шк. , 1991. – 400 с.

Абрамов С.А., Зима Е.В. – Начала программирования на языке Паскаль. –
М.: Наука, 1987. –112 с.

Вычислительная техника и программирование: Учеб. для техн. вузов/ А.В.
Петров, В.Е. Алексеев, А.С. Ваулин и др. – М.: Высш. шк., 1990 – 479 с.

Гусев В.А., Мордкович А.Г. – Математика: Справ. материалы: Кн. для
учащихся. – 2-е изд. – М.: Просвещение, 1990. – 416 с.

Марченко А.И., Марченко Л.А. – Программирование в среде Turbo Pascal 7.0
– К.: ВЕК+, М.: Бином Универсал, 1998. – 496 с.

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

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

Начало

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020