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


 

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

37762. Измерение вязкости жидкости по методу падающего шарика 45.5 KB
  Измерение температуры жидкости t= 0C Расчет искомой величины. Расчет плотности материала шариков 2. Расчет вязкости жидкости Расчет границы погрешностей. Расчет границы абсолютной погрешности результата измерения плотности материала шариков Расчет границы относительной погрешности результата измерения вязкости жидкости Расчет границы абсолютной погрешности результата измерений плотности Окончательный результат: вязкость жидкости при температуре t= 0C.
37763. Методы противодействия радиоэлектронным закладным устройствам, предназначенным для снятия конфиденциальной информации 48.88 KB
  Цели и учебные вопросы Цели лабораторной работы: ознакомление с возможностями комплекса Крона НМ и программного обеспечения Филин Ультра; получение практических навыков: по проведению радиомониторинга в контролируемой зоне по обнаружению поиску и блокированию радиозакладных устройств Учебные вопросы: классификация поисковых устройств для проведения радиомониторинга см. Место: лаборатория Технические средства обеспечения безопасности Используемые технические средства: автоматизированный комплекс обнаружения электронных...
37764. Безпека SMTP і спам 760.04 KB
  У результаті цього спам став практично нерозв'язною проблемою так як було неможливо визначити хто насправді є відправником повідомлення фактично можна відправити лист від імені будьякої людини. DT CRLF Вказує на початок повідомлення. Для завершення повідомлення вказується CRLF . Повідомлення доставляються клієнтові за протоколом POP а надсилаються як і раніше за допомогою SMTP.
37765. Робота з діалоговими компонентами 2.09 MB
  Виконавши лабораторну роботу, я освоїв роботу програм з такими діалоговими компонентами як OpenDialog та SaveDialog для зв’язку з файлами (їх створення, збереження або відкриття вже існуючих), PrinterSetupDialog для налагодження підключених принтерів для друку, FindDialog та ReplaceDialog для пошуку та заміни тексту. Також закріпив навички роботи з компонентами середовища Delphi TMemo та TMainMenu, зрозумів основні принципи створення текстового редактора.
37766. Безопасность жизнедеятельности. Чрезвычайные ситуации мирного и военного времени, организация защиты населения 262.51 KB
  Безопасность жизнедеятельности — это область научных знаний, изучающая общие опасности, угрожающие каждому человеку, и разрабатывающая соответствующие способы защиты от них в любых условиях обитания человека.
37767. Протокол для передачі файлів FTP 189.19 KB
  Для переходу в інший каталог використовую команду CWD: CWD incoming. Для того щоб створити в цій директорії вводжу команду STOR: STOR myfile. Переходжу в інший каталог за допомогою команди CWD: cwd incoming та вводжу команду PWD яка відображає вмістиме каталогу з яким встановлений звязок:. Вводжу команду LS що відображає файли і підкаталоги в даному каталозі.
37768. Розробка складних додатків з використанням графіки 1.16 MB
  ps unit Unit1; {mode objfpc}{H} interfce uses Clsses SysUtils FileUtil LResources Forms Controls Grphics Dilogs Menus StdCtrls ExtCtrls Spin; type { TForm1 } TForm1 = clssTForm Button1: TButton; Button2: TButton; Button3: TButton; ColorDilog1: TColorDilog; MinMenu1: TMinMenu; MenuItem1: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem; MenuItem4: TMenuItem; MenuItem5: TMenuItem; MenuItem6: TMenuItem; MenuItem7: TMenuItem; MenuItem8: TMenuItem; MenuItem9:...
37770. Розробка DLL-бібліотек 4.3 MB
  Тема: Розробка DLL-бібліотек. Мета: навчитись створювати DLL-бібліотеки та використовувати їх в додатках, засвоїти навички експорту функцій.