Математика

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


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



                                  на тему:

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



                              Выполнил:       Ст-т 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) | <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          |х2n           |х3n          |? (х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

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



    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;


                                   Начало




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