3432

Методы решения нелинейного уравнения

Лабораторная работа

Математика и математический анализ

Данное руководство предназначено для студентов, изучающих предмет «Численные методы» и выполняющих лабораторные работы по курсу «Информатика». В методических указаниях рассмотрены ряд методов нахождения корней нелинейного ура...

Русский

2012-10-31

43.57 KB

7 чел.

Данное руководство предназначено для студентов,  изучающих предмет «Численные методы»  и выполняющих лабораторные работы по курсу   «Информатика». В методических указаниях рассмотрены ряд методов нахождения корней нелинейного уравнения и приведены примеры решения задач на языке программирования и в среде Mathcad.


ПОСТАНОВКА ЗАДАЧИ. ОТДЕЛЕНИЕ КОРНЕЙ.

Множество значений переменной х, при которых уравнение F(x)=0 является тождеством, называется решением уравнения. При этом каждое значение х из этого множества называется корнем этого уравнения. Нахождение точных значений корней возможно, как правило, только в исключительных случаях. Поэтому большое значение имеют методы приближенного решение уравнения с заданной точностью. При этом решение задачи можно разбить на два этапа:

!) отделение корней т.е выделение промежутков внутри которых содержится только один корень уравнения;

2) вычисление корня, принадлежащего выделенному промежутку с заданной точностью.

Решение задачи отделения корней для непрерывной функции основано на том, что, если функция на концах отрезка [a,b] имеет значения разных знаков, то внутри этого отрезка функция проходит через нуль, т. е  содержится корень уравнения. Таким образом, чтобы произвести отделение корней необходимо разбить область предполагаемого нахождения корней на равные отрезки длиной h и вычислить значение функции на концах отрезка. Если будет выполнятся условие F(x)*F(x+h)<=0, то корень внутри отрезка [x,x+h]. Величина шага разбиения подбирается интуитивно; при большом шаге разбиения возможно пропустить корень; при маленьком – увеличивается время вычислений.

Ниже приведена программа на языке Паскаль, решающая задачу отделения корней для произвольной функции. ( В программе рассматривается уравнение: x3 +2*x2 – 6*x+1=0 ).

uses crt;

const m=100; {отрезок [-m,m]}

     h=0.1;  {шаг разбиения }

var x:real;

function f(x:real):real;

{функция, задающая решаемое уравнение }

begin

 f:=x*x*x+2*x*x-6*x+1;

end;

{-------------------------------------------------------------------}

begin { main }

 clrscr;

 x:=-m;

 while x<m do

   begin

     if f(x)*f(x+h)<=0 then

        begin

          { здесь следует разместить вызов функции уточняющий корень

             на отрезке [x,x+h]  }

           writeln('корень находится внутри отрезка [',x:5:1,x+h:5:1,']');

        end;

      x:=x+h;

   end;

  repeat until keypressed;

 end.

3


МЕТОД ПОЛОВИННОГО ДЕЛЕНИЯ.

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

Метод половинного деления состоит в том, что мы уменьшаем длину отрезка так, что корень остается внутри отрезка; процесс продолжается до тех пор, пока длина отрезка не станет меньше заданной точности. Уменьшение длины отрезка производится самым естественным образом: делением отрезка пополам и выбором той половины, внутри которой находится корень( т.е на концах которой функция имеет разный знак.)

Алгоритм:

   WHILE | a-b| > epsi

         Вычисляем середину отрезка x=(a+b)/2;

         Выбираем половину, где корень:

                 Если F(a)*F(x)<=0  то корень в [а,х], поэтому b переносим в x b=x   

                 Если F(b)*F(x)<=0  то корень в [b,х], поэтому a переносим в x a=x

    END

МЕТОД НЬЮТОНА (КАСАТЕЛЬНЫХ).

Суть метода:

 За начальное приближение принимается какая-либо точка заданного отрезка, для которой     ;

 Из этой точки проводится касательная к графику функции F(x). Уравнение касательной  

Точка пересечения касательной с осью 0X (y=0) задает следующее приближение  

 Процесс продолжается до тех пор пока расстояние между двумя последовательными приближениями не станет меньше заданной точности
|xi-1-xi|<epsi

Условия применимости метода:

  В интервале есть корень

  В интервале существуют  

  За начальное приближение принимается точка, в которой

Алгоритм

 X0 – начальное приближение

 X1 – последующее приближение

 F(x) – функция, задающая уравнение

 Fp(x) – производная

 X1=a x2=0 { необходимо для первоначальной проверки условия цикла}

 WHILE |X1-X0|>epsi

     X0=X1

     X1=X0-F(X0)/Fp(X0)

 END.

4


РЕШЕНИЕ ЗАДАЧИ В MATHCAD.

Для решения уравнения необходимо прежде всего построить график функции, задающий уравнение и по графику визуально определить начальное приближение корня.

Уточнение корня производится стандартной функцией

 root(F(x),x),

 где F(x) – функция, задающий уравнение.

        x –  имя переменной, варьируя которую ищется корень; перед использованием переменной обязательно должно быть присвоено начальное значение; для уравнения с несколькими корнями, ищется  корень, наиболее близкий к начальному значению.

Пример решения уравнения x3 +2*x2 – 6*x+1=0

Решение кубического уравнения

   

График

Уточнение графика на интервале 0 ..2

C помощью функции root ( требуется начальное приближение)

   

      

      

5


Примеры написание программ

Метод половинного деления

Метод Ньютона


ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ.

Требуется решить уравнение в Mathcadе, написать и отладить программу нахождения всех корней уравнения, предложенным преподавателем методом.

1. 2*x3+12*x2+13*x+15=0

2. 2*x3-3*x2+4*x+9=0

3.  x3-4*x2-4*x-5=0

4. 2*x4+3*x3+8*x2+6*x+5=0  

5. 2*x4-3*x3+2*x2-15*x+14=0

6. 15*x4-4*x3-6*x2-4*x-1=0

7. 2*x4-x3+3*x2-x+1=0

8. x4+3*x3-44*x2+15*x+25=0

9. 6*x4+25*x3+12*x2-25*x+6=0

10. x4-2*x3-11*x2+12*x+36=0

11. 100*x3+45*x2-12*x+2.5=0

12. 10*x3+20*x2-0.1*x-0.2=0

13.  x3+4.05*x2-0.03*x+0.02=0

14.  x3+79.9*x2-1988*x-200=0

15.  x3-4.6*x2-52*x-20=0

16.  x3-0.5*x2-0.5*x=0

17. 200*x3+78*x2-41.2*x+0.42=0

18. 2*x3-0.6*x2+0.06*x-0.002=0

19. 0.5*x3-2.3*x2-26*x-10=0

20. -0.1*x3+0.405*x2+0.003*x-0.002=0

ЛИТЕРАТУРА.

1. Mathcad 6.0 plus. Руководство пользователя. М., Филинъ.1998.

2. Ракитин В. И. , Первушин В.Е. Практическое руководство по методам вычислений. М., Высшая школа 1998.

3. Попов В. Б.  Turbo Pascal 7.0 для школьников

М.; Финансы и статистика, 1996. -464


 

А также другие работы, которые могут Вас заинтересовать

75189. Сравнительно-исторический метод. Техника сравнения языков 40 KB
  Техника сравнения языков. На основе метода была создана и продолжает создаваться генеалогическая классификация языков устанавливающая родственные языки. Сравнивают ряд языков у которых схожие окончания глаголов настоящего времени изъявительного наклонения. Закон Гримма показал почему слова родственных языков отличны друг от друга.
75190. Германская группа 19.15 KB
  Северногерманская скандинавская подгруппа 1 Датский; письменность на основе латинского алфавита; служил литературным языком и для Норвегии до конца XIX в. 2 Шведский; письменность на основе латинского алфавита. 3 Норвежский; письменность на основе латинского алфавита первоначально датская так как литературным языком норвежцев до конца XIX в. 4 Исландский; письменность на основе латинского алфавита; письменные памятники с XIII в.
75191. Техника сравнения языков. Сравнительно-исторический метод 43.5 KB
  Техника сравнения языков Этот метод очень важен. На его основе бала создана генеалогическая классификация языков. Объединение языков в семьи группы подгруппы основывается на нем. устанавливает родственные связи языков.
75192. Системы грамматических категорий, форм 21.64 KB
  Во многих языках существует 3 рода и они никак не связаны с животным миром. В тюркских языках тоже нет деления на роды. Основным падежом особенно в индоевропейских языках является именительный или абсолютный. В индоевроп языках процесс исчезновения падежной системы происходил с древнейших времен – процесс синкретизма – объединение нескольких значений в одно.