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


 

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

77285. Web based computational steering system 52.5 KB
  Secondly person cn shorten the debugging time of prllel progrm becuse person is ble to drive the computtion process djusting the lgorithm prmeters or progrm execution pth ccording to his needs. t the moment we hve developed smll nd cler PI nd dt server for prllel progrm developers tht llows progrm to be visulized online. Computtion nodes re prllel progrm processes with some embedded PI clls which connects them to the steering system. Visuliztion frontends re set of worksttion progrms which visulize the tsk stte nd give the bility to...
77287. О СОЗДАНИИ СРЕДЫ РАЗРАБОТКИ СИСТЕМ НАУЧНОЙ ВИЗУАЛИЗАЦИИ 33 KB
  При визуализации той или иной сущности специфическими являются выбор конкретного двух или трехмерного геометрического представления абстрактного объекта и разработка алгоритма построения этого представления на основе данных производимых вычислительной программой. Можно выделить три класса систем визуализации. Наконец к третьему классу относятся специализированные системы визуализации созданные специально для данного исследовательского проекта или даже конкретного пользователя.
77289. ON DEVELOPING ENVIRONMENT FOR CONTRUCTING SYSTEMS OF SCIENTIFIC VISUALIZATION 29 KB
  One cn distinguish three clsses of visuliztion systems. The first one consists of universl systems which include set of lgorithms for constructing wide rnge of typl representtions. For exmple wellknown systems PrView nd VS belong re of this kind.
77290. ENVIRONMENT FOR CONSTRUCTING SYSTEMS OF SCIENTIFIC VISUALIZATION 32 KB
  Ekterinburg The tlk dels with scientific visulistion system which is elborted by the uthors. One of the problems of trditionl visuliztion systems is tht some set of trnsformtion lgorithms is strictly prescribed nd cnnot be chnged. yer go the uthors presented this system lredy.
77291. Развитие программных средств научной визуализации 72.5 KB
  В связи с этим в арсенале визуализации создано множество программных средств. Но что делать если исследуемое явление настолько новое что нет готовых программ визуализирующих его Можно все же попытаться выразить визуальные сущности в терминах готовых систем визуализации. Можно создать программу для визуализации с нуля.
77292. Human-aware content elements as a base for website backend interfaces 24.5 KB
  This is especilly importnt for hosted CMS services becuse there is no personl trining provided for the user. For exmple to dd vcncy on site user often should perform the following steps: crete pge crete nd formt vcncy description dd links to tht pge from min menu nd dd nnounce to compnys news. So user wstes his time nd even my leve the service. t the beginning of site cretion process user is sked for his compny type: rel estte cr rentl DVD store etc.
77293. ВИЗУАЛИЗАЦИЯ ТРАССЫ ВЫПОЛНЕНИЯ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ 32.5 KB
  В литературе можно найти самые разные подходы к визуализации трасс выполнения параллельных программ. В докладе мы приведем как обзор существующих решений так и предложения по новым подходам к разработке средств визуализации трасс. Поэтому приемы хорошо помогавшие при визуализации данных лет двадцать назад например использование Visul Informtion Seeking Mntr ldquo;Overview first zoom nd filter then detilsondemndrdquo; не срабатывают. Активно используются методы визуализации трассы выполнения на базе разнообразных метафор...