Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Уравнения с одним неизвестным
Вводные замечания
Выражение для нелинейного уравнения имеет следующий вид: , (2.1) где - некоторая непрерывная функция. Нелинейные уравнения делятся на алгебраические и трансцендентные. Алгебраические уравнения содержат только алгебраические функции (целые, рациональные, иррациональные). Общий вид алгебраического уравнения n-ой степени относительно неизвестного х: . (2.2) Трансцендентные уравнения содержат тригонометрическую, показательную, логарифмическую и другие функции. Примером такого уравнения является выражение (1.9). Аналитически можно решить только простейшие нелинейные уравнения. Эти методы позволяют записать корни в виде некоторого конечного соотношения (формулы). Решение получается сразу путем однократного использования формул или после некоторых преобразований. Пример – решение квадратного уравнения по формулам (1.8). Сложные нелинейные уравнения решают численно. Для этого используют итерационные методы (методы последовательных приближений) [19]. Итерационные численные методы состоят из 2-х этапов: 1) отыскание приближенного (грубого) значения корня или содержащего его отрезка; 2) уточнение приближенного значения до некоторой заданной степени точности. Начальное приближение может быть найдено из физической постановки решаемой задачи. Если найти не удается, то построением графика функции , входящей в уравнение, определяют две близко расположенные точки и , в которых принимает значения разных знаков, т.е. . В этом случае между точками a и b есть, по крайней мере, одна точка, в которой . Здесь х* - корень уравнения. В начале выполнения итераций в качестве начального приближения можно принять середину отрезка , т.е. . Итерационный процесс состоит в последовательном уточнении начального приближения . Каждый шаг уточнения называют итерацией. В результате итераций находят последовательность приближенных значений корня . Если эти значения с ростом n приближаются к истинному значению корня х*, то говорят, что итерационный процесс сходится. Метод половинного деления Метод позволяет решать трансцендентные, а также алгебраические уравнения [8]. Это один из простейших численных методов. На первом этапе необходимо найти отрезок , на котором расположено искомый корень х = х*, т.е. . При этом используют условие, что . Если уравнение имеет несколько корней, то последовательно задается несколько отрезков и на каждом определяется свой корень. В качестве начального приближения корня принимают середину отрезка , т.е. . Далее определяют значение функции в точках a, и b, т.е. на концах отрезков и . Тот из них, на концах которого имеет разные знаки, содержит искомый корень. Поэтому его принимают в качестве нового отрезка. Вторую половину отрезка , на которой знак не меняется, отбрасывают. В качестве первой итерации корня принимаем середину нового отрезка и т.д. Таким образом, после каждой итерации отрезок, на котором расположен корень, уменьшается вдвое. Таким образом, после n итераций он сокращается в раз. Пусть для определенности < 0, > 0 (рис. 2.1). Находим начальное приближение корня . Так как < 0, то и рассматриваем только . На следующем приближении . Теперь отбрасываем отрезок , так как > 0 и > 0, т.е. x0 < x * < x1. Аналогично находим другие приближения: т.д. Рис. 2.1. Графическая иллюстрация метода половинного деления
Итерационный процесс продолжается до тех пор, пока значение функции после n -ой итерации не станет меньшим по модулю некоторого малого заданного числа e , т.е. .
2.1.3. Блок-схема метода половинного деления и числовой пример Сужение отрезка производится путем замены границ а или b на текущее значение корня х. При этом значение вычисляется лишь один раз, так как нам нужен только знак функции на левой границе, а он в процессе итераций не меняется. Метод половинного деления отрезка пополам довольно медленный, т.е. для вычисления корня с заданной точностью e может потребоваться большое количество итераций. Однако метод всегда сходится, т.е. при его использовании решение получается всегда. На рис. 2.2 представлена блок-схема метода половинного деления.
Рис. 2.2. Блок-схема метода половинного деления
Рассмотрим пример вычисления методом половинного деления одного корня уравнения с заданной точностью e = 0, 005. Для определения отрезка , на котором имеется хотя бы один корень, выполним табулирование функции . Результаты табулирования представлены в табл. 2.1. Можно принять что, а = 0, 9 и b = 1, 2, так как f (0, 9) × f (1, 2) < 0. Для
Таблица 2.1 Результаты табулирования функции f ( x )
уменьшения отрезка и, следовательно, числа итераций уточним значение а. Из табл. 2.1 видно, что корень х* лежит ближе к b, чем к а ( f (b) ближе к 0). Примем значение а = 1, 1; f (1, 1) = 0, 29. Окончательно принимаем: а = 1, 1; b = 1, 2; f (1, 1) × f (1, 2) < 0. Следовательно, искомый корень находится на заданном отрезке, т.е. . Последовательно имеем (n – номер итерации): 1) f (x) = f [(a+b)/2] = f (1, 15) = 0, 119; n = 1; 2) f [(1, 15+1, 2)/2] = f (1, 175) = 0, 030; n = 2; 3) f [(1, 175+1, 2)/2] = f (1, 1875) = -0, 016; n = 3; 4) f [(1, 175+1, 1875)/2] = f (1, 18125) = 0, 007; n = 4; 5) f [(1, 1875+1, 18125)/2] = f (1, 184375)=- 0, 004; n = 5; ½ f (x)½ < 0, 005; (e = 0, 005). Корень х = х* = 1, 184375.
Метод хорд Пусть найден отрезок , на котором функция f (x) меняет знак. Для определенности примем f (a) > 0, f (b) < 0 (рис. 2.3). В данном методе процесс итераций состоит в том, что в качестве приближений к корню уравнения f (x) =0 принимаются значения х0, х1, х2, … точек пересечения хорды с осью абсцисс [7]. Для вывода расчетных формул запишем уравнение хорды АВ (уравнение прямой линии, проходящей через две заданные точки): . Для точки пересечения АВ с осью абсцисс (х = х0; у = 0) получим: Рис. 2.3. Графическая иллюстрация к методу хорд
; ; . (2.3) На первом этапе вычисления определяем х0 по формуле (2.3). Затем определяем f (х0). Так как f (a) × f (x0) < 0, то искомый корень находится на (см. рис. 2.3). Отрезок отбрасываем. Следующая итерация состоит в определении нового приближенного значения х1 как точки пересечения хорды АВ0 с осью абсцисс и т.д. Для определения х1 в формулу (2.3) подставим b = х0 и f (b) = f (х0). Итерационный процесс продолжается до тех пор, пока значение f (хn) не станет по модулю меньше заданного числа e, т.е. . Блок-схема метода хорд аналогична методу половинного деления. Разница в том, что вместо вычисления приближения корня по формуле x = (a+b)/2 нужно использовать формулу (2.3). Необходимо также ввести операторы вычисления f (x) на границах новых отрезков. Алгоритм метода хорд часто дает более быструю сходимость итерационного процесса по сравнению с методом половинного деления. При этом процесс итераций также всегда сходится (к решению с заданной точностью). Рассмотрим пример вычисления методом хорд одного корня уравнения с заданной точностью e = 0, 005. Этот пример уже был решен методом половинного деления в п. 2.1.3. Возьмем такой же исходный отрезок , т.е. a = 1, 1; b = 1, 2; f (1, 1) = 0, 289; f (1, 2) = -0, 062. Вычислим по формуле (2.3): . Значение f (1, 182) = 0, 004. Следовательно, условие ½ f(x)½ < e выполняется. Корень уравнения х* = х0 = 1, 182. Решение найдено за одну итерацию (n =1). Методом половинного деления решение найдено за 5 итераций. Если погрешность e взять меньше (e = 0, 001), то потребуется вторая итерация: a = x0 = 1, 182 (так как f (1, 182) × f (1, 2) < 0); ; f (1, 18309) = 0, 0004. Более точный корень уравнения х* = х1 = 1, 18309. Метод хорд в этом случае (и чаще всего) оказался эффективнее метода половинного деления.
Метод простой итерации
Исходное уравнение преобразуют к виду [8]: . (2.4) Задают начальное приближение корня . Подставляя это значение в правую часть (2.4) получаем новое приближение: . Далее подставляем каждый раз новое значение корня в (2.4) получаем последовательность значений: . (2.5) Итерационный процесс прекращается, если результаты двух последовательных итераций близки: (2.6) Здесь - заданная точность. Обычно = 10-6…10-2. Сходимость метода простой итерации зависит от выбора начального приближения и преобразования исходного уравнения к виду (2.4). Блок-схема метода простой итерации приведена на рис. 2.4. В блок-схеме приведены следующие обозначения: - начальное приближение корня, а в дальнейшем результат предыдущей итерации; - значение корня после каждой итерации. В данной схеме предполагается, что итерационный процесс сходится. Если такой уверенности нет, то необходимо ввести счетчик итераций и ограничение по их максимальному числу. Рис. 2.4. Блок-схема метода простых итераций
В качестве примера решим уравнение . Заданная точность . Выполняем преобразование исходного уравнения к виду (2.4): . Пусть начальное приближение =1, 2. Его можно определить, например, графически. Последовательность итераций имеет следующий вид:
Искомый корень .
Системы уравнений Метод простой итерации Решаем два нелинейных уравнения с двумя неизвестными [13]: (2.7) Действительные корни необходимо найти с заданной точностью . Систему (2.7) преобразуем к виду: (2.8) Графически или другой прикидкой определяем начальные приближения корней . Итерационный процесс (последовательные приближения) выполняют по формулам: (2.9) Если итерационный процесс (2.9) сходится, то при некотором числе итераций n, выполняются условия: , (2.10) При выполнении условий (2.10) вычисления прекращают. Искомые корни . При создании компьютерной программы необходимо предусмотреть ограничение числа итераций, так как вычислительный процесс может расходиться. Для примера решим систему уравнений (2.11) Необходимо определить положительные корни с точностью . Поэтому вычисления выполняем с 3-мя цифрами после запятой. Начальные приближения определяем графически. Для этого из первого и второго уравнения выражаем : , (2.12) (2.13) Задаем с равным шагом и выполняем вычисления по формулам (2.12) и (2.13). Результаты заносим в табл. 2.2. По таблице строим два графика (рис. 2.5). Точка пересечения графиков дает приближенные начальные значения Все эти расчеты и построения выполняем с использованием приложения Excel. Таблица 2.2 Результаты расчетов по формулам (2.12) и (2.13)
Рис. 2.5. Графики, построенные по формулам (2.12) и (2.13)
Теперь из исходной системы (2.11) получим формулы вида (2.8): (2.14) Запишем формулы (2.14) в виде, удобном для построения итерационного процесса: (2.15) Здесь n – номер итерации. Вычисления по формулам (2.15) приведены в табл. 2.3. Корни найдены на шестой итерации ( ), так как выполняются условия (2.10). Отметим, что вместо рассмотренного метода последовательных приближений (2.9), иногда удобнее пользоваться методом Зейделя: Метод Зейделя для системы из 3-х уравнений:
Таблица 2.3 Значения последовательных приближений
Метод Ньютона
Обладает гораздо более быстрой сходимостью, чем метод простой итерации. Рассмотрим применение метода для решения системы 2-х нелинейных уравнений [18]: (2.16) В основе метода Ньютона для системы уравнений (2.16) служит разложение функций и в ряд Тейлора, причем члены ряда, содержащие вторые производные и производные более высоких порядков, отбрасывают. Пусть приближенные значения неизвестных системы (2.16) равны соответственно и . Их определили из начального приближения или они получены на предыдущей итерации. Обозначим приращение (или поправки) к этим значениям и . Через , и решение системы (2.16) запишется в виде: . (2.17) Проведем разложение левых частей уравнений (2.16) с учетом (2.17) в ряд Тейлора, ограничиваясь лишь линейными членами относительно приращений (или производными первого порядка): (2.18) Поскольку в соответствии с (2.16) левые части этих выражений равны 0, то приравниваем 0 и левые части. Получим следующую систему линейных уравнений относительно приращений (2.19) Здесь значения и их производные вычисляют при х = а; у = b. Неизвестные вычисляют по правилу Крамера: . (2.20) Здесь – определители системы (2.19): , . (2.21) Для существования единственного решения системы (2.19) на каждой итерации должно выполняться условие J ≠ 0. После определения и по формуле (2.20) и определяют по формуле (2.17). Напомним, что здесь а и b - значения неизвестных на предыдущей итерации, а x и y – значения неизвестных на рассматриваемой итерации. Таким образом, итерационный процесс решения системы (2.16) методом Ньютона состоит в определении приращений и к значениям неизвестных на каждой итерации. Вычисления прекращаются, если все вычисления становятся малыми по абсолютной величине: , , (2.22) где - заданная точность. Метод Ньютона применим для решения системы из n уравнений (n = 2, 3, 4, …). Следует учитывать, что сходимость итерационного процесса ухудшается с увеличением n. Для обеспечения хорошей сходимости важен выбор первого приближения. 2.2.3. Блок-схема метода Ньютона и пример для системы двух уравнений
Блок схема алгоритма метода Ньютона приведена на рис. 2.6. В блоке 2 осуществляется ввод исходных данных: а, b - начальные приближения неизвестных; - погрешность вычислений; - максимально допустимое число итераций. В блоке 6 «да» будет в том случае, если выполнятся оба условия. В блоке 5 а, b - значения неизвестных на предыдущей итерации; x, y - значения на рассматриваемой итерации. В качестве примера решим систему нелинейных уравнений: (2.23) Определим положительные корни с погрешностью . Начальные приближения найдем графической прикидкой. Для этого из первого уравнения системы (2.23) выразим х: (2.24) Из второго уравнения системы (2.23) также выразим х: . (2.25) Задаем последовательно и определяем значения х по формулам (2.24) и (2.25). По полученным точкам строим соответственно Рис. 2.6. Блок схема алгоритма метода Ньютона
кривые f1 и f2 (рис. 2.7). Координаты точки пересечения кривых f 1 и f 2 являются начальными приближениями, т.е. а = 0, 9; b = 0, 5 (рис. 2.7). Отметим, что при построении графиков в приложении Excel переменная у в рассматриваемом примере автоматически отложится на горизонтальной оси, так как у задавали, а х вычисляли. Получим формулы для по исходной системе уравнений (2.23): Рис. 2.7. Графическое определение начальных приближений а и b
(2.26) = (2.27) (2.28) Итерация i = 1: a = 0, 9; b = 0, 5; вычисляем J, D х, D у по (2.26), (2.27), (2.28) при x = a, y = b; J = -4, 23; D х = 0, 289; D у = - 0, 2664; Итерация i = 2: в (2.26), (2.27), (2.28) подставляем a = x = 0, 8317; b = y = 0, 5630; J = -3, 9998; D х = 0, 0225; D у = -0, 0025;
х = 0, 8317 - 0, 00562 = 0, 8261; у = 0, 5630 + 0, 00063 = 0, 5636; . Итерация i = 3: a = x = 0, 8261; b = y = 0, 5636; J = -3, 9537; D х = 0, 0001; D у = -0, 0001;
х = 0, 8261 - 0, 00003 = 0, 8260; у = 0, 5636 + 0, 00002 = 0, 5636;
Вычисления окончены. Корни системы (2.23) с заданной точностью найдены.
|
Последнее изменение этой страницы: 2019-10-04; Просмотров: 185; Нарушение авторского права страницы