Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Документ'
1.1. Цей Порядок розроблено відповідно до частини десятої статті 20 Закону України "Про недержавне пенсійне забезпечення" (далі - Закон) та...полностью>>
'Документ'
Здійснення правосуддя можливе лише за умови розкриття злочину та *встановлення об'єктивної істини у кожній кримінальній справі. Це досить |складне за...полностью>>
'Документ'
Актуальність психологічного супроводу навчально-виховного процесу зумовлена новими соціальними вимогами, відповідними стратегічними змінами розвитку ...полностью>>
'Рабочая программа'
Курс "Система коммуникаций в офисе" дает возможность студентам познакомится с основами построения социальных отношений в трудовом коллектив...полностью>>

Решение нелинейных уравнений

Главная > Решение
Сохрани ссылку в одной из сетей:

Решение нелинейных уравнений

Задача нахождения корней нелинейных уравнений вида

F(x)=0        (1)

встречается в различных областях научных исследований. (здесь F(x) – некоторая непрерывная функция).

 

Нелинейные уравнения делятся на два класса – алгебраические и трансцендентные. Алгебраическими уравнениями называются уравнения, содержащие только алгебраические функции (целые, рациональные, иррациональные). В частности, многочлен является целой алгебраической функцией. Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и др.) называются трансцендентными.

 

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

 

Однако встречающиеся на практике уравнения не удается решить такими простыми методами. Для их решения используются итерационные методы.

 

Итерационные методы, как и все численные методы, являются приближенными методами.

 

Пусть имеется точный корень уравнения (1) x’, превращающий уравнение в тождество F(x’)=0.

Решая уравнение численным методом, мы находим приближенное значение корня x*, которое отличается от точного на некоторую величину r, r  = |x’-x*| называемую абсолютной погрешностью.

 

Сущность итерационного метода заключается в следующем:

Задается начальное, возможно очень грубое, приближение к корню уравнения, называемое нулевым приближением - x0.

 

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

 

Если эта погрешность нас устраивает, т.е. r1<e, где e - заранее заданное малое число, называемое точностью, то говорят, что мы решили уравнение с точностьe, или что x1 является корнем нашего уравнения  с точностьюe, если нет, то, повторяя вычисления по итерационной формуле (или выполняя n количество итераций) находим последовательность приближенных значений корня x1, x2, x3… xn.

Имеющих погрешности r1, r2, r3… rn.

Если эти значения с ростом n приближаются к точному значению корня x’ (погрешности уменьшаются r1> r2> r3>… >rn.), то говорят, что итерационный процесс сходится.

Итак, численные методы решения нелинейного уравнения состоят из трех этапов:

·        отделение корня,

·        уточнения корня,

·        оценка погрешности.

Цель первого этапа – найти отрезок [a,b], на котором функция F(x) меняет знак. Если F(x) непрерывна на[a,b], то уравнение (1) имеет хотя бы один корень на этом отрезке, если, к тому же F(x)строго монотонна на[a,b], то корень единственный.

 

Отделение корней можно провести графически, построив график функции F(x), а можно протабулировать функцию F(x)  на достаточно большом участке числовой прямой с достаточно большим шагом h, т. е. Вычислить значения F(x) начиная с некоторой точки x0, двигаясь вправо с шагом h.

 

Как только обнаружится пара соседних значений F(xi-1), F(xi), имеющие разные знаки,

F(xi-1) * F(xi) < 0.

Говорят, что удалось отделить отрезок [a,b] =[xi-1,xi], содержащий корень. Уточнение корня проводится подходящим численным методом.

Отделение корней

Отделение корней алгебраических
и трансцендентных уравнений

Пусть имеется уравнение вида

F(x) = 0,  (2.1)

где F(x) — алгебраическая или трансцендентная функция.

 

Решить такое уравнение - значит установить, имеет ли оно корни, сколько корней, и найти значения корней (либо точно, либо, если это невозможно, то с нужной точностью). Мы ограничимся обсуждением методов поиска лишь действительных корней,  не затрагивая проблему корней комплексных.

 

Решение указанной задачи в достаточно общем случае начинается с отделения корней, т. е. с установления:

  • количества корней;

  • наиболее «тесных» промежутков, каждый из которых содержит только один корень.

Следует отметить, что универсальных приемов решения этой задачи, пригодных для любых уравнений, не существует.

 

Если бы мы располагали графиком функции F(x), то примерное положение корней уравнения (2.1) было бы очевидным — точки пересечения графика с осью абсцисс. Однако построение графиков функций обычно и начинается с поиска ее нулей, т.е. возникает замкнутый круг.

 

Тем не менее отделение корней во многих случаях можно произвести графически. Задачу часто удается сильно упростить, заменив уравнение (2.1) равносильным ему уравнением

f1(x)=f2(x)           (2.2)

В этом случае строятся графики функций f1(x) и f2(x), а потом на оси х отмечаются отрезки, локализующие абсциссы точек пересечения этих графиков.

 

Пример 2.1

 

Для графического отделения корней уравнения sin 2x - In x = 0 преобразуем его к равносильному уравнению sin 2x = ln x и отдельно построим графики функций sin2x и lnx (рис. 2.1).

 

Из графика вполне очевидно, что уравнение имеет единственный корень E, и этот корень находится на отрезке [1; 1,5].

 

Рис. 2.1. Иллюстрация к отделению корней уравнения

 

При решении задачи об отделении корней бывают полезными следующие очевидные положения:

  1. Если непрерывная на отрезке [а; b] функция F(x) принимает на его концах значения разных знаков (т.е. F(a)*F(b) < 0), то уравнение (2.1) имеет на этом отрезке по меньшей мере один корень.

  2. Если функция F(x) к тому же еще и монотонна, то корень на отрезке [а; b] единственный.

Вычислим для проверки значения функции F(x) = sin 2x - ln x на концах отрезка [1; 1,5]: F(l) = 0,909298; F(l,5) = -0,264344. Как видно, корень на отрезке [1; 1,5] действительно имеется.

 

Рассмотренный прием позволяет при желании сузить отрезок, полученный графическим способом. Так, в нашем примере имеем F(1,3) = 0,253138 > 0, так что отрезком, на котором находится корень, можно считать [1,3; 1,5].

 

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

 

Пусть имеется уравнение F(x) = 0, причем известно, что все интересующие вычислителя корни находятся на отрезке [А; В], на котором функция F(x) определена, непрерывна и F(A)*F(B) < 0. Требуется отделить корни уравнения, т.е. указать все отрезки [а; b] принадлежащие [А; В], содержащие по одному корню.

 

Будем вычислять значения F(x), начиная с точки х-А, двигаясь вправо с некоторым шагом h (рис. 2.2).

 

Как только обнаружится пара соседних значений F(x), имеющих разные знаки, и функция F(x) монотонна на этом отрезке, так соответствующие значения аргумента х (предыдущее и следующее) можно считать концами отрезка, содержащего корень.

 

Рис. 2.2. Иллюстрация к процессу отделения корня

 

 

Пример 2.2

 

Построить графическую иллюстрацию и локализовать корни уравнения cos x = 0,1х на отрезке [-10; 10] с шагом 0,1.

 

Решим эту задачу с помощью Excel (рис. 2.3).

 

Рис. 2.3. Отделение корней функции с помощью ТП Excel

 

Кроме графика функции у = cos х - 0,1 х  на экран компьютера выводится таблица табулирования, из которой и выбирается окончательный результат — семь отрезков отделения корня с шагом 0,1: -9,7 < Х\ < -9,6;  -9,0 < х2 < -8,9;  -4,3 < х3 < -4,2;  -1,8 < х4 < -1,7;  1,4 < х5 < 1,5;  5,2 < x6 < 5,3;  7,0 < х7 < 7,1.

 

Рассмотрим решение этой же задачи отделения корней уравнения cosx = 0,1х на отрезке [-10; 10] с помощью программы для компьютера.

 

Общая схема соответствующего алгоритма изображена на рис. 2.4. Результатом решения поставленной задачи будут выводимые на экран (или на печать) в цикле значения параметров х1 и х2 (концов выделенных отрезков).

 

По схеме алгоритма отделения корней легко составить программу.

Ниже приведена программа отделения корней уравнения на языке Turbo Pascal.

 

 

 

 

Рис. 2.4. Блок-схема алгоритма отделения корней уравнения F(x) = О

 

Результаты выполнения программы:

 

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

 

Обратим внимание на то, что надежность рассмотренного алгоритма отделения корней уравнения зависит как от характера функции F(x), так и от выбранной величины шага h. Действительно, если при достаточно малом значении h на концах текущего отрезка [х; х + И\ функция F(x) принимает значения одного знака, естественно ожидать, что уравнение F{x) = 0 корней на этом отрезке не имеет. Это, однако, не всегда так: при несоблюдении условия монотонности функции F(x) на отрезке [х; х + h] могут оказаться корни уравнения (рис. 2.5, а). Не один, а несколько корней могут оказаться на отрезке [х; х + h] и при соблюдении условия F(A)*F(B) < 0 (рис. 2.5, б). Предвидя подобные случаи, следует выбирать при отделении корней достаточно малые значения h.

 

Рис. 2.5. Зависимость количества корней функции F(x) на отрезке [х, х+ h]
от характера функции и величины шага h:

 

а — функция не меняет знака на отрезке [х, х + h], но не монотонна,
поэтому на отрезке [х, х+ h]  имеются корни;

б — функция на отрезке [х, х + h] меняет знак, но немонотонна,
поэтому корней на отрезке не один, а несколько.

 

Контрольные вопросы

1.  Что означает «решить уравнение аналитически» и «решить уравнение численно»?

2.  В чем заключается задача отделения корней?

3.  В чем суть графического метода отделения корней? Какие свойства функции одной переменной используются для проверки правильности отделения корня и его единственности на отрезке?

 

Упражнения

Отделить действительные корни уравнений: a) lg x + 6 = х2; б) x sin x -1 = 0:

1)  графическим методом (схематически, на бумаге);

2)  с помощью ТП Excel;

3)  с помощью программы для компьютера.

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

УТОЧНЕНИЕ КОРНЯ УРАВНЕНИЯ МЕТОДОМ ПОЛОВИННОГО ДЕЛЕНИЯ

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

 

Описанный выше способ табулирования может рассматриваться и как способ уточнения корня (хотя и крайне неэффективный). При этом можно либо постепенно уменьшать шаг табулирования, приближая его к значению е, либо сделать это сразу, полагая h = е. В любом случае получим b - а < е. Тогда в качестве искомого значения корня можно выбрать середину этого отрезка, т.е. положить E = (а + b)/2.

 

Гораздо более эффективным, чем табулирование с постоянным шагом, является так называемый метод половинного деления.

 

Пусть уравнение F(x)=0 имеет на отрезке [а; b] единственный корень, причем функция F(x) на этом отрезке непрерывна. Разделим отрезок [а; b] пополам точкой с = (а + b)/2. Если F(c) <> 0 (что практически наиболее вероятно), то возможны два случая: F(x) Меняет знак либо на отрезке [а; с] (рис. 2.6, а), либо на отрезке [a; b] (рис. 2.6, б). Выбирая в каждом случае тот из отрезков, на котором функция меняет знак, и продолжая процесс половинного деления дальше, можно дойти до сколь угодно малого отрезка, содержащего корень уравнения.

 

 

Рис. 2.6. К решению уравнения F(x) методом половинного деления:

а — функция F(x) меняет знак на отрезке [а; с];

б — функция F(x) меняет знак на отрезке [c; b]

 

Метод половинного деления вполне можно использовать как метод решения уравнения с заданной точностью. Действительно, если на каком-то этапе процесса получен отрезок [а; b], содержащий корень, то, приняв приближенно х = (а + b)/2, получим ошибку, не превышающую значения

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

 

 

Рис. 2.7. Блок-схема алгоритма уточнения корня уравнения F(x)=0 на отрезке [а; b] с точностью е методом половинного деления

 

Пример 2.3.

 

Уравнение sin 2х - ln х = 0 имеет единственный корень на отрезке [1,3; 1,5] (см. пример 2.1). Решим это уравнение с точностью до 1*10-4 методом половинного деления с помощью программы для компьютера.

 

В соответствии с блок-схемой алгоритма, изображенной на рис. 2.7, программа на языке Turbo Pascal имеет вид:  

 

 

В приведенной программе заданная точность обозначена eps, a граница погрешности текущего значения корня определяется через разность b - а. Еще раз напомним, что эта разность отождествлена в алгоритме с погрешностью метода; вычислительная же погрешность значения х как результат ошибки вычисления по формуле х= (а + b)/2 в программе в явном виде не регистрируется И связана только с погрешностью машинного представления.

 

При этом мы исходим из того, что точность машинного представления значительно выше запрашиваемой точности eps (т.е. полная погрешность значения корня отождествляется с погрешностью метода), поэтому выдаваемый программой числовой результат округляется с помощью модуля okrugl до цифр, верных в широком смысле, по запрашиваемой точности eps.

 

 

Прим. Оформление конструкции okrugl в виде модуля связано с тем, что обращение к ней будет происходить неоднократно.

 

Результат работы программы:

Введите a, b, eps

1.3 1.5 0.0001

х= 1.3995  n=4

Округление значения корня проведено до четырех знаков после запятой. Если ввести значение е = 0,000001, результат будет другой:

 

Введите a, b, eps

1.3 1.5 0.000001

х= 1.399429  n=6

При алгоритмизации метода половинного деления остановить процедуру уточнения корня можно и другим способом. Зная допустимое значение погрешности е:

легко вычислить количество шагов N(e) получения последовательных приближений:

Учитывая, что N - число целое, окончательно получим

где, как это принято, квадратные скобки означают целую часть числа.

 

Так, для уравнения, рассмотренного в примере 2.1, положив а = 1,3; b= 1,5 и е = 1*10-4, получаем

Если же положить е = 1*10-6, то получим N=18. Зная N, можно в алгоритме заменить цикл с постусловием на цикл с параметром, ограничив количество делений отрезка числом N.

 

Контрольные вопросы

  1. В чем состоит основная идея метода половинного деления?

  2. Может ли метод половинного деления дать точное значение корня уравнения?

Упражнения

  1. Уточнить методом половинного деления наименьший по модулю и отличный от нуля корень уравнения x sin x - 1 = 0 с точностью
    до 1*10-4, используя: а) калькулятор; б) программы, приведенные выше.

  2. Разработать алгоритм решения уравнения методом половинного деления, использующий цикл с параметром и формулу для вычисления количества последовательных приближений N(s) по заданной величине е.

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

 

Решить уравнение F(x)=0 c точностью e методом половинного деления,

e=10-3

  1. x2 + ex = 2
     

  2. 3 sin(x + 0,7) - 0,5x = 0
     

  3. cos x – (x - 1)2 = 0
     

  4. 5 sin x = x + ln(x)
     

  5. x2 + cos(2 + x) = 1
     

  6. x ln(x + 1) = 1
     

  7. ln (x + 1) - (x - 2)2 = 0
     

  8. 2 ln x – 0,5 x + 1 = 0
     

  9. (x - 2) ln(x) = 1
     

  10. sin(x - 0,5) - 2x + 0,5 = 0
     

  11. cos (x + 0,3) = x2
     

  12. x2 - 3 sin x = 0
     

  13. x ln(x + 2) = 2
     

  14. x3 - 0,5 - sin x = 0
     

  15. sin (x + 1) = 0,2x
     

  16. 0,3 e0,6 x - x = 0



Скачать документ

Похожие документы:

  1. Решение алгебраических уравнений высоких степеней. Решение нелинейных уравнений методом Ньютона и методом простых итераций. Сходимость, оценка погрешности

    Решение
    Теория рядов. Числовые ряды. Сходимость и сумма ряда. Необходимое условие сходимости. Действия с рядами. Ряды с неотрицательными членами. Признаки сходимости.
  2. Курс 3 семестр Решения нелинейных уравнений методом половинного деления. Блок-схема метода половинного деления и fortran-программа

    Программа
    для специальностей 140504 – «Холодильная, криогенная техника и кондиционирование», 190603 – «Сервис транспортных и технологических машин и оборудования (в хладоснабжении)» и направлений 140500 – «Энергомашиностроение»,
  3. 1. Решение нелинейного уравнения методом Ньютона-Рафсона

    Решение
    где ∆x некоторое малое приращение, примем его равным 0,01. Следующее приближение к корню найдем в точке x1, где касательная к функции f (x), проведенная из точки (x0, f0) пересекает ось абсцисс.
  4. Лабораторная работа №1 «Численное решение нелинейных уравнений»

    Лабораторная работа
    Для решения задачи локализации корней нет каких-либо рекомендаций, кроме утверждения о том, что если на концах некоторого отрезка  функция имеет разные знаки, т.
  5. Рабочая программа дисциплины «нелинейные уравнения математической физики» Рекомендовано

    Рабочая программа
    Цель: данный курс направлен на подготовку специалиста, владеющего современными представлениями о закономерностях, присущих нелинейным физическим явлениям, методами построения и исследования нелинейных уравнений, описывающих основные

Другие похожие документы..