Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_2 / Раздел1.Решение нелинейных уравнений

.docx
Скачиваний:
66
Добавлен:
29.03.2015
Размер:
860.79 Кб
Скачать
  1. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

  1. Численные методы решения нелинейных уравнений

  2. 1-ый этап решения – локализация корней

  3. Реализация 1-го этапа в MS Exсel

  4. 2-ой этап - уточнение корня

  5. Метод касательных. Реализация метода

  6. Метод хорд. Реализация метода

  7. Метод половинного деления. Реализация метода

  8. Решение нелинейного уравнения с помощью надстройки «Поиск решения»

    1. Численные методы решения нелинейных уранений

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

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

В общем виде нелинейное уравнение с одним неизвестным можно представить в виде

f (x) = 0, (1.1)

где функция f(x) определена и непрерывна в некотором конечном или бесконечном интервале a < x < b .

Всякое значение x*, обращающее уравнение y=f(x) в тождество, называется корнем этого уравнения, т.е. f(x*)º 0.

С геометрической точки зрения задача нахождения корней уравнения эквивалентна задаче нахождения нулей функции у=f(x) или абсцисс точек пересечения графика функции c осью Х, т.е. значений xi , для которых выполняется условие

f (xi) = 0 (для i=1, 2,……).

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

Убедится в том, что на данном отрезке xÎ [a, b] (например, грубо определенном графическим способом) действительно имеется единственный корень уравнения f(x)= 0 , можно аналитическим способом, в основе которого лежит известная теорема1 математического анализа.

Теорема1

Если функция у=f(x) удовлетворяет на отрезке [a, b] следующим условиям:

  1. непрерывна,

  2. f(a) f(b)<0, т.е. функция принимает разные знаки на концах отрезка,

  3. монотонна для xÎ[a, b] , т.е. производная f(x) сохраняет знак,

то уравнение f (x) = 0 имеет единственный корень x* на интервале [а, b].

Методы решения нелинейных уравнений делятся на 2 группы:

  • точные (прямые) и

  • итерационные (приближенные).

Точные методы позволяют записать корни уравнения в аналитическом виде, т.е. в виде некоторой формулы. Однако, многие уравнения не имеют аналитического решения.

Итерационные (приближенные) методы - это методы последовательных приближений, алгоритм которых состоит из двух этапов.

1-ый этап - отделение или локализация корней.

2-ой этап - уточнение приближенного значения корня до заданной точности e.

1.2. 1-ый этап решения – локализация корней

На этом этапе необходимо решить следующие задачи:

  1. исследовать количество и расположение корней;

  2. найти начальное значение корня (нулевая итерация –х0) или выделить из области допустимых значений (ОДЗ) функции f(x) отрезок, на котором существует единственный корень.

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

1. Строится таблица значений функции у=f(x) на некотором отрезке xÎ [А, В] (табулирование функции). Отыскивается отрезок, на концах которого функция имеет разные знаки, тогда на этом отрезке находится хотя бы один корень уравнения.

2. Графический метод. Принимая во внимание, что действительные корни уравнения f(x)=0 — это абсциссы точек пересечения графика функции y=f(x) с осью Х, достаточно построить график этой функции и отметить точки её пересечения с осью Ох.

3. Убедится в том, что на данном отрезке xÎ [a, b], определенным 1 или 2-ым способом действительно имеется единственный корень уравнения f(x)= 0 , можно аналитическим способом, в основе которого лежит известная теорема1 математического анализа.

1.3. Реализация 1-го этапа в MS Exсel

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

Задание 2.1. На 1-ом этапе необходимо

  • определить количество действительных корней и

  • локализовать их, т.е. выделить отрезок, на котором уравнение (1.2) имеет единственный корень. Иначе говоря, выделить отрезок, на котором функция непрерывна, принимает разные знаки на концах отрезка, т.е. f(a) f(b)<0 и монотонна для [a, b] , т.е. производная f’(x) сохраняет знак.

Для этого протабулируем функцию для xÎ ОДЗ и построим ее график.

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

Введите в ячейки:

  1. А5 текст начало отрезка,

А6 текст конец отрезка,

А7 текст число отрезков,

А8 текст шаг табулирования

  1. С5: a=, D5 = 0.5,

С6: b=, D6 = 3,

С7: n=, D7 = 10,

С8: h=, D8 = (D6-D5)/D7

  1. Подготовьте таблицу из 3-х столбцов (n,Х и f(x)),

Числовые значения для Х заполняем следующим образом:

  • в ячейку B11 =D5,

  • в ячейку B12 =B11+$D$8,

  • выделите ячейку B12, установите курсор в правый нижний угол (появится черный крестик) и тяните её до конца таблицы (пока Х не станет равным 3)

Числовые значения для f(x):

  • в ячейку C11 =B11*ln(B11)-1,

  • выделите ячейку C11 и тяните ее до конца таблицы

  1. График функции постройте с помощью Мастера диаграмм

Поскольку производная нашей функции существует и не изменяет знак для xÎ [0.5, 3], т.е. выполняются условия Теоремы1, то анализ таблицы и графика функции показывает, что на отрезке [0.5, 3] уравнение имеет единственный корень.

1.4. 2-ой этап - уточнение корня до заданной точности

Этап уточнения корня заключается в построении последовательности приближенных значений корня уравнения (1.1), исходя из начального приближения - x0 :

x0 , x1, x2,……xn…. (1.3)

где x0 - нулевая (начальная) итерация

xi - i = 1, 2,…- i-ое приближенное значения корня ( i- ая итерация)

Если эта последовательность (итерационная последовательность) имеет предел, то итерационный процесс (1.3) сходится и сходится к точному решению x* уравнения (1.1)

,

Таким образом, точное решение можно получить только в результате бесконечного процесса.

На практике итерационный процесс должен быть ограничен конечным числом шагов (итераций) n. Количество итераций зависит от требуемой точности нахождения корня.

Для прекращения итерационного процесса применяются различные критерии, зависящие от вида функции y=f(x) в окрестности корня.

  1. Если функция достаточно «пологая» в окрестности корня, то итерационный процесс продолжается до тех пор, пока две соседние итерации не станут достаточно близкими, т.е. пока не выполнится условие

|xn-1 - xn|< e (1.4)

  1. Если функция у=f(x) «круто» меняет свои значения в окрестности корня, то целесообразно использовать условие

|f(xn)|<e (1.5)

Если хоты бы одно из условие (1.4) или ( 1.5) выполняется, то в качестве приближенного решения уравнения (1.1) с точностью e принимается n-я итерация, т.е. .

Если ни одно из этих условий не выполняется, то итерационный процесс (1.3) необходимо продолжить.

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

Использование приближенных методов для решения уравнения f (x) = 0 возможно лишь в том случае, когда функция f(x) удовлетворяет следующим условиям Теоремы1:

  1. функция f(x) непрерывна на отрезке [a, b];

  2. значения функции f(x) на концах отрезка имеют разные знаки (f(a) f(b) < 0);

  3. монотонна для xÎ[a, b] , т.е. производная f’(x) сохраняет знак,

т.е отрезок [a, b] содержит только один корень уравнения.

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

  1. метод касательных (метод Ньютона);

  2. метод хорд;

  3. метод половинного деления (метод дихотомии) и др.

1.5. Метод касательных. Реализация метода

Пусть уравнение f ( x ) = 0, на отрезке [a,b] удовлетворяет условиям теоремы 1, т.е. имеет единственный корень, и 2-ая производная f’’(x) имеет постоянный знак.

Геометрически метод Ньютона заключается в замене небольшого участка дуги кривой y=f(x) касательной, проведенной в некоторой точке к этой кривой.

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

Пусть функция y = f(x) на отрезке [a,b] удовлетворяет условиям теоремы 1, т.е. уравнение (1.1) имеет на этом отрезке единственный корень.

Если функция y=f(x) имеет 2-ую производную, сохраняющую знак на этом отрезке, то исходя из начального приближения х0 , удовлетворяющего условию:

f(x0) f ’’ (x0 )>0, (1.6)

корень уравнения (1) можно вычислить с точностью e по формуле

(1.7)

Рассмотрим случай, когда f ’’(x)>0 для xÎ [a, b], f(a)<0 и f(b)>0.

Напомним, что знак второй производной функции легко определить из графика самой функции.

Если график функции выпуклый внизу, то вторая производная функции больше нуля (f ’’ (x)>0).

Если график функции выпуклый кверху , то вторая производная меньше нуля (f ’’ (x)<0).

Алгоритм метода касательных

  1. Выберем начальное приближение.

Начальное приближение x0 выбирается, исходя из условия

f(x0) f ’’(x0) >0. Для функции (изображенной на рисунке) 2-ая производная больше 0 (f ’’(x0) > 0, функция выпукла книзу), f(a)<0, f(b)>0, следовательно, x0 = b (в т. x0 = а данное условие не выполняется).

  1. Проведем касательную к кривой y = f(x) в точке A0[x0, f(x0)].

  2. В качестве 1-го приближения корня х1 возьмем абсциссу точки пересечения этой касательной с осью ОХ.

  3. Через точку А1[x1, f(x1)]. снова проведем касательную, абсцисса точки пересечения которой с осью ОХ даст нам второе приближение корня х2 и т.д.

  4. Продолжим процесс, в результате получим итерационную последовательность x0 , x1, x2,……xn,

  5. Формула для вычисления n-ого приближения

  1. Итерационный процесс продолжается до тех пор, пока две соседние итерации не станут достаточно близкими, т.е. пока не выполнится одно из условий

Или

Если хоты бы одно из условие (1.4) или ( 1.5) выполняется, то в качестве приближенного решения уравнения (1.1) с точностью e принимается n-я итерация, т.е. .

Если ни одно из условий не выполняется, то итерационный процесс необходимо продолжить.

Аналогичным образом находиться корень и в случае, когда f ’’(x)<0 для xÎ [a b] (см. Теорема1)

2 этап. Уточнение корня уравнения. Реализация метода касательных (Ньютона)

Задание 2.2. Уточнение корня уравнения

(1.2)

методом касательных проводим на основании теоремы 2.

    1. Найдем начальное приближение x0, исходя из условия f(x0) f ’’ (x0)>0.

Для функции вторая призводная f ’’ (x)=1/х положительна на всем отрезке [0.5, 3] (функция – выпуклая книзу), f(0.5)<0, f(3.0)>0, следовательно x0=b=3.

    1. Корень уравнения x* с заданной точностью ε вычисляется по формуле

(1.7)

Последовательность действий.

Подготовьте таблицу, как показано на рисунке

  1. Введите в ячейки

A4 текст Начало отрезка a=, D4 = 0.5,

A5 текст Конец отрезка b=, D5 = 3.0,

A6 текст Начальное приближение x0=, D6 = D5,

A7 текст Точность вычисления e=, D7 =0,01

  1. Используя автозаполнение введите номер итерации n в столбце А.

  2. Введите в ячейки

В13 =D6 (значение x0)

C13 =B13*ln(B13)-1 (формулу для вычисления значения функции),

D13 =ln(B13)+1 (формулу для вычисления значения ее производной),

E13 =abs(C13) (формулу для вычисления абсолютного значения функции |f(xn)|).

  1. B14 =B13-C13/D13 (формулу для вычисления 1-го приближения)

  2. Выделите ячейки C13, D13, E13 и скопируйте на строку ниже, т.е. соответственно в C14, D14, E14 и вы получите значения функции, ее производной и значение абсолютной величины функции в точке первого приближения х1 .

  3. Выделите блок ячеек В14-Е14 и скопируйте их вниз до конца таблицы.

  4. Итерационный процесс следует продолжить до тех пор, пока не выполнится условие |f(xn)|< e

Ячейки E15-E17 тонированы серым цветом с использованием Условного форматирования (см. далее)

За приближенное значение корня уравнения с точностью e=0.01 принимается 2-я итерация, т.е. x*»1,76656.

Задание 2.3. Условное форматирование.

Чтобы сделать наглядным окончание итерационного процесса воспользуйтесь Условным форматированием.

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

Для этого выполните следующие действия:

  • выделите ячейки последнего столбца расчетной схемы, где будет задаваться критерий окончания итерационного процесса

  • на вкладке Главная\Стили\ Условное форматирование;

  • выберите Правила выделения ячеек\ Меньше;

  • в левой части диалогового окна Меньше задайте значение, которое будет использовано в качестве критерия (в нашем примере это адрес ячейки D7, где находится значение ε).

  • в правой части окна выберите цвет, которым будут окрашены ячейки, отвечающие заданному условию; и нажмите кнопку ОК.

В результате такого форматирования ячейки столбца Е, значения которых меньше 0.01, тонированы.

Таким образом, за приближенное значение корня уравнения (1.2) с точностью e=0.01 принимается 2-я итерация, т.е. x*»1,76656.

Измените значение e, т.е. содержимое ячейки D7, и вы увидите, как изменится значение корня нашего уравнения. Проанализируйте результаты.

1.6. Метод хорд. Реализация метода

Пусть уравнение f( x) = 0, на отрезке [a,b] удовлетворяет условиям теоремы 1, т.е. имеет единственный корень, и производные f’(x) и f’’(x) непрерывны и имеют постоянные знаки.

С геометрической точки зрения метод хорд эквивалентен замене кривой y = f(x) хордой, проходящей через точки A[a, f(a)] и B[b, f(b)].

Для решения нелинейного уравнения по методу хорд справедлива Теорема 3.

Пусть функция y = f(x) на отрезке [a,b] удовлетворяет условиям теоремы 1, т.е. уравнение (2.1) имеет на этом отрезке единственный корень.

Исходя из начального приближения x0, удовлетворяющего условию

f(x0) f ’’ (x0)<0, (1.8)

корень x* уравнения (2.1) с заданной точностью ε вычисляется по формуле

(1.9)

или

(1.10)

Напомним, что знак второй производной функции легко определить из графика самой функции.

Возможны несколько вариантов расположения графика функции на отрезке [a,b].

Если график функции выпуклый внизу, то вторая производная функции больше нуля f ’’ (x0 )>0

Если график функции выпуклый кверху , то вторая производная меньше нуля f ’’ (x0 )<0

Рассмотрим 1-ый случай, когда f ’’ (x)>0 для xÎ [a,b], f(а)<0, f(b)>0 (см. рисунок ниже)

Алгоритм метода хорд

  1. Выберем начальное приближение.

Начальное приближение x0 выбирается, исходя из условия

f(x0) f ’’(x0) <0. Данное условие выполняется в т. x0 = a.

  1. Проведем хорду к кривой y = f(x) через точки A[a, f(a)] и B[b, f(b)].

  2. В качестве 1-го приближения корня х1 возьмем абсциссу точки пересечения этой хорды с осью ОХ.

  3. Через точки C[x1, f(x1)] и B[b, f(b)] снова проведем хорду, абсцисса точки пересечения которой с осью ОХ даст нам второе приближение корня х2 и т.д.

  4. Продолжим процесс, в результате получим итерационную последовательность x0, x1, x2,……xn;

  5. Формула для вычисления n-ого приближения

  1. Итерационный процесс продолжается (или построение хорд продолжается) до тех пор, пока две соседние итерации не станут достаточно близкими, т.е. пока не выполнится условие

Или

Если хоты бы одно из условие (1.4) или ( 1.5) выполняется, то в качестве приближенного решения уравнения (1.1) с точностью e принимается n-я итерация, т.е. .

Если ни одно из условий не выполняется, то итерационный процесс необходимо продолжить.

2 этап. Уточнение корня уравнения. Реализация метода хорд

Задание 2.3. Уточнение корня уравнения (2.2) методом хорд проводим на основании теоремы 3.

      1. Найдем начальное приближение x0, исходя из условия f(x0) f ’’ (x0)<0.

Для функции вторая призводная f ’’ (x)=1/х положительна на всем отрезке [0.5, 3] (знак второй производной функции можно определить и по графику функции), f(0.5)<0, f(3.0)>0, следовательно x0=a=0.5 (Из рассмотренных выше случаях у нас 1 вариант)

2. Корень уравнения x* с заданной точностью ε вычисляется по формуле (1.9)

Последовательность действий.

  1. Подготовьте таблицу, как показано на рисунке

  2. Введите в ячейки:

A5 текст Начало отрезка a=, E5 = 0.5,

A6 текст Конец отрезка b=, E6 = 3.0,

A7 текст Начальное приближение x0=, E7 = E5,

A8 текст Точность вычисления e=, E8 = 0.01

  1. Используя автозаполнение введите номер итерации n в столбце А.

  2. Введите в ячейки:

В13 =Е7 (т.е. значение x0)

C13 =B13*ln(B13)-1 (формулу для вычисления значения функции),

D13 =$E$6-B13 (т.е. b-x),

E13 =$D$10-C13, ( т.е. f(b)-f(x) ),

F13 =ABS(C13), (т.е |f(x)| )

  1. B14 =B13-C13/E13*D13 (формулу для вычисления 1-го приближения).

  2. Выделите ячейки C13, D13, E13, F13 и скопируйте на строку ниже, т.е. соответственно в C14, D14, E14, F14 и вы получите f(x), b-x, f(b)-f(x), |f(x)| в точке первого приближения х1 .

  3. Выделите блок ячеек В14-F14 и скопируйте их вниз до конца таблицы.

  4. Итерационный процесс следует продолжить до тех пор, пока не выполнится условие |f(xn)|< e

Ячейки F17-E18 тонированы серым цветом с использованием Условного форматирования (см. выше – в методе касательных)

За приближенное решение уравнения по методу хорд с заданной точностью e=0.01 принимается 4-я итерация, т.е. x* »1,761764.

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

1.7. Метод половинного деления. Реализация метода

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

Алгоритм метода половинного деления

  1. За начальное приближение берем , т.е. делим отрезок [a, b] пополам.

  2. Если значение функции в этой точке равно 0, т.е , то x0 является корнем уравнения

  3. Если , то из двух отрезков [a, x] и [x, b] выбираем тот, на концах которого функция f(x) имеет разные знаки (из рисунка видно, что f(x) > 0, f(a)< 0, f(b) > 0, значит выбираем отрезок [a, x]. Точку b переносим в x0.

  4. Далее итерационный процесс продолжается путем деления нового отрезка пополам, т.е. новый «суженный» отрезок [a1, b1] снова делим пополам и проводим тот же анализ . т.е. повторяем п. 2.

  5. Процесс деления отрезка пополам прекращается, когда

Если условие выполняется, то полученная в результате вычислений последняя точка хn является приближённым значением корня уравнения, найденным с погрешностью e.

Если условие не выполняется, то итерационный процесс необходимо продолжить.

2 этап. Уточнение корня уравнения. Реализация метода половинного деления (дитохомии)

Задание 2.4. Уточнение корня уравнения (1.2) методом половинного деления.

Последовательность действий.

  1. Подготовьте таблицу, как показано на рисунке

  2. Введите в ячейки:

A5 текст Начало отрезка a=, E5 = 0.5,

A6 текст Конец отрезка b=, E6 = 3.0,

A7 текст Начальное приближение x0=, E7 = (E5+E6)/2,

A8 текст Точность вычисления e=, E8 = 0.01

  1. Используя автозаполнение введите номер итерации n в столбце А.

  2. Заполните 1-строку таблицы:

Введите в ячейки:

В13 = Е5 (значение a)

C13 = Е6 (значение b)

D13 = B13*ln(B13)-1 (формулу для f(а))

E13 = C13*ln(C13)-1 (формулу для f(b))

F13 = (B13+C13)/2 (формулу для вычисления середины отрезка),

G13 = F13*ln(F13)-1 (формулу для f(x))

H13 = ABS(G13) (модуль значения функции)

  1. B14 = ЕСЛИ(D13*G13<0; B13; F13); (формулу для формирования левого конца отрезка, используя функцию ЕСЛИ),

C14 = ЕСЛИ(D13*G13<0; F13; C13), (формулу для формирования правого конца отрезка, используя функцию ЕСЛИ) .

  1. Выделите ячейки D13-H13 и скопируйте на строку ниже, т.е. соответственно в D14-H14 и вы получите f(a), f(b), x, f(x) и |f(x)| в точке первого приближения х1.

  2. Выделите блок ячеек В14-H14 и скопируйте их вниз до конца таблицы.

  3. Итерационный процесс следует продолжить до тех пор, пока не выполнится условие |f(xn)|< e

Ячейки H19-H21 тонированы серым цветом с использованием Условного форматирования (см. выше – в методе касательных)

За приближенное решение уравнения по методу половинного деления с заданной точностью e=0.01 принимается 6-я итерация, т.е. x* »1,7500.

3. Чтобы сделать наглядным окончание итерационного процесса воспользуйтесь Условным форматированием (установки см. в методе касательных)

1.8. Решение нелинейного уравнения с помощью надстройки «Поиск решения»

Корни нелинейного уравнения можно найти, используя надстройку Excel Поиск решения. Продемонстрируем это для нашего уравнения.

За нулевое приближение решения уравнения, как это видно из рисунке, можно принять х0 =2 или х0 =1,5.

Последовательность действий.

  1. Оформите табличку, как показано на рисунке.

  2. Введите в ячейки

А2 значение нулевого приближения корня, т.е х0 =2.

B2 тоже введите значение нулевого приближения корня, т.е х =2. Значение ячейки В2 будет изменяться в процессе решения (Поиск решения).

С2 введите формулу левой части уравнения, т.е. =В2*Ln(В2)-1 (смотри строку формул).

  1. Выберите Вкладку Данные/Поиск решения.

  1. В окне сделайте следующие установки:

  • в поле Установить целевую ячейку укажите адрес ячейки С2, т.е. формулу левой части уравнения ;

  • в поле Равной значению задайте правую часть уравнения, т.е. 0 (ноль);

  • в поле Изменяя ячейки укажите ячейку В2, в которой первоначально было занесено нулевое приближение корня х0 и нажмите кнопку Выполнить.

Если все было сделано правильно, то в ячейке В2 будет получено приближенное значение корня нашего уравнения, т.е. 1.76322