Научная Петербургская Академия

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

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

Дата добавления: март 2006г.

    Пензенский приборостроительный колледж
    на тему:
    Метод касательных решения нелинейных уравнений
    Выполнил: Ст-т 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 < 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) |
    Вычисления расположим в таблице.
    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. Блок схема программы
    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 с.



(C) 2009