Приближенное решение уравнений. Задачи электротехники, приводящие к решению уравнений.
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ЛЕКЦИЯ №2
ПРИБЛИЖЕННОЕ РЕШЕНИЕ УРАВНЕНИЙ
Задачи электротехники, приводящие к решению уравнений
Ток катушки электромагнита описывается аналитически с помощью сложного трансцендентного уравнения (1.5). При наличии диода в электрической цепи необходимо знать момент перехода тока через ноль для того, чтобы в математической модели изменить сопротивление диода RD c прямого Rпр на обратное Rобр . Для этого необходимо найти момент времени t0, при котором ток в цепи будет равным нулю: i(t) = 0. Также в электрических цепях, при включении и выключении участков цепи, токи в ветвях изменяются не мгновенно, а за промежуток времени . Процесс перехода цепи из одного установившегося состояния в другое называется переходным процессом. Расчет переходных процессов чрезвычайно важен в электротехнике и электромеханике в связи с тем, что токи и механические усилия, сопровождающие эти токи, в переходных процессах могут быть в десятки и даже в сотни раз больше, чем в установившемся режиме. При расчете переходных процессов приходится решать полиномиальные уравнения высоких степеней, которые называются характеристическими [4,10]. Другими словами, в электротехнике часто требуется найти решение уравнения вида
, (2.1)
где аргументом х может быть любая физическая величина, используемая в электротехнике. Наиболее часто им является время (t).
Корнем называется значение х, при котором уравнение (2.1) превращается в тождество 0 = 0. Аналитическое, то есть точное, приводящее за конечное число операций к нахождению корня решение, имеют немногие уравнения, используемые в электротехнике. Например, это квадратное уравнение , уравнение и т.д.
Большинство же уравнений не имеют аналитического решения, и их корни приходится находить численными методами. Рассмотрим общепринятую методику поиска корней уравнений численными методами.
Отделение корней
Для использования при нахождении действительных корней уравнения (2.1) численных методов требуется знать интервал аргумента [xk,xk+1], на котором функция меняет знак на противоположный. Можно утверждать, что на таком интервале будет хотя бы один корень уравнения (2.1).
На рис.2.1 изображен график функции, имеющей корни на интервале [x1,x4]. На интервалах [x1,x2], [x2,x3] и [x3,x4] находятся корни уравнения. Если шаг h изменения аргумента х велик, может произойти потеря корней (интервал [x2,x3]).
Этап нахождения интервалов аргумента, где находятся корни уравнения, называется этапом отделения корней. Для этого на исследуемом интервале аргумента х рассчитываются значения функции f(x), при изменении значения х с достаточно малым шагом h. Полученные значения х и f(x) заносят в таблицу и строят график функции f(x). Далее находят интервалы существования корней и уточняют их значения одним из численных методов.
Все численные методы поиска корней уравнений являются итерационными, или методами последовательного приближения к результату. С каждым последующим шагом (при благоприятных условиях) значение аргумента приближается к корню. В практических задачах поиск корня ведется с определенной, заранее заданной максимальной погрешностью , приемлемой для конкретной задачи. Условием окончания итерационного процесса будет следующее неравенство:
, (2.2)
где - два последовательных шага итерации.
На практических занятиях предлагается самостоятельно написать программу, результатом работы которой будут интервалы, содержащие корни исследуемой функции. Расчет значений функции на каждом шаге предлагается оформить как процедуру-функцию.
Уточнение корней
Рассмотрим несколько численных методов уточнения действительных корней уравнений [5].
Метод дихотомии
Метод дихотомии называют также методом половинного деления. Суть метода состоит в следующем. Определяют середину отрезка [a,b], на котором находится корень , и вычисляют функцию . Далее делают выбор, какую из двух частей отрезка взять за уточнение корня. Если на интервале функция f(x) меняет знак, то точку b перемещают в точку . Если на интервале функция f(x) меняет знак, то точку а перемещают в точку . Далее процесс повторяется до тех пор, пока значение функции f(x) не станет меньше по абсолютной величине заданной погрешности . Графическая интерпретация метода дихотомии приведена на рис.2.2.
Следует заметить, что функция вычисляется с погрешностью , определяемой методом вычислений и возможностями ЭВМ. Интервал называется областью шума. Если задать , мы не сможем получить точность, определяемую . Вторым критерием окончания поиска корня методом дихотомии является неравенство (2.2). Заданные погрешности функции и аргумента должны быть согласованы по величине. По методу дихотомии за каждую итерацию интервал уменьшается в два раза. За k итераций он уменьшается в раз.
Метод хорд
Рассматриваемый метод, как и метод дихотомии, предназначен для уточнения корня на интервале [a,b], на концах которого f(x) принимает разные знаки. Очередное приближение теперь берется не в середине отрезка [a,b], а в точке х1 , где пересекаются ось абсцисс и прямая линия, проведенная через точки f(a) и f(b):
В качестве нового интервала для поиска корня берется тот из двух интервалов [a,x] или [x,b], на концах которого f(x) имеет разные знаки. Процесс заканчивается тогда, когда или . Графическая интерпретация метода приведена на рис.2.3. Программная реализация выполнена в виде процедуры - подпрограммы Horda (ПРОГРАММА 2.1).
В методах дихотомии и хорд для поиска корня используются оба конца интервала аргумента, содержащего корень. Поэтому, если заданная точность определения корня не превышает технические возможности ЭВМ, корень всегда будет найден за конечное, может, и большое, число итераций. Если на интервале есть несколько корней, то методы сойдутся к одному из них.
Ниже мы приступаем к рассмотрению методов, использующих, как правило, начальные приближения к корню с одной стороны интервала существования корня. Эти методы при неудачном выборе начального приближения х0 могут совсем не найти корня, зато обладают значительно более высокой степенью сходимости к решению при удачном выборе начального приближения.
Метод Ньютона (касательных)
Метод Ньютона обладает наиболее высокой скоростью сходимости к корню, но требует знания и вычисления в процессе поиска корня не только самой функции f(x), но и ее первой производной
Если известно начальное приближение х0 , то следующее значение аргумента х1 вычисляется по формуле
Для k-го шага итерационного процесса получим:
(2.4)
Итерационный процесс заканчивается, когда . Скорость сходимости метода Ньютона такова, что точность 10-5-10-6 достигается за 4-5 итераций. Можно, уменьшив скорость сходимости метода, вычислить производную только в начальной точке х0. Получим алгоритм, называемый модифицированным методом Ньютона.
. (2.5)
Программная реализация метода Ньютона выполнена в виде процедуры-подпрограммы Newton (ПРОГРАММА 2.1). Вся процедура практически состоит из одного цикла Repeat ... Until, реализующего формулу (2.4) с учетом условия прекращения итерационного процесса (формула (2.2)). В процедуру Newton встроена защита от зацикливания путем подсчета числа циклов с помощью переменной Niter..
На рис.2.4 проиллюстрирован поиск корня методом Ньютона. Если взять за начальное приближение точку х1, то будет одностороннее приближение к корню.
На практических занятиях студентам предлагается изменить процедуру Newton так, чтобы она могла применяться для реализации модифицированного метода Ньютона.
Метод Ньютона с его модификациями [1,9] применим для поиска не только действительных, но и комплексных корней уравнений и решения систем уравнений нелинейных уравнений.
Метод секущих
Заменив производные приращениями функции f(x) и аргумента х , вычисляемыми на каждом шаге итерации, получим формулу метода секущих:
. (2.6)
Геометрический смысл данного изменения алгоритма Ньютона в том, что от касательной мы переходим к секущей (рис.2.5). Из формулы (2.6) видно, что в методе секущих необходимо задавать в качестве начального приближения две близкие точки аргумента - х0 и х1. Если сравнить формулу (2.6) с формулой (2.3) метода хорд, то можно сделать неверный вывод об эквивалентности метода хорд и метода секущих. Но, если метод хорд предполагает использование двух концов интервала нахождения корня (проверка знака функции и выбор интервала исходя из разных знаков), то по методу секущих берутся два последующих значения функции f(xk-1) и f(xk).
По методу секущих может быть как одностороннее, так и двухстороннее приближение к корню. Это зависит от вида функции и выбора начального приближения. Например, если на рис.2.5 взять х0 и х1 справа от корня, то получится одностороннее приближение к корню.
Программная реализация метода секущих выполнена в виде процедуры-подпрограммы Secant (ПРОГРАММА 2.1). Вся процедура практически состоит из одного цикла Repeat ... Until, реализующего формулу (2.6) с учетом условия прекращения итерационного процесса (формула (2.2)). В процедуру встроена защита от зацикливания путем подсчета числа циклов с помощью переменной Niter. Как и в других процедурах, алгоритм построен так, чтобы использовать одну и ту же переменную для хранения различных величин, например R. На практических занятиях необходимо убедиться путем прогона программы в том, как сказывается выбор начальных точек на процесс поиска корня.
Метод простых итераций
Метод простых итераций основан на замене исходного уравнения эквивалентным уравнением:
. (2.7)
Пусть известно начальное приближение к корню х = х0. Подставив его в правую часть уравнения (2.7), получим новое приближение , затем аналогичным образом получим и т. д.:
. (2.8) Не при всех условиях итерационный процесс сходится к корню уравнения х* . Рассмотрим этот процесс подробнее. На рис.2.6 приведена графическая интерпретация одностороннего сходящегося и расходящегося процесса. На рис.2.7 изображены двухсторонний сходящийся и расходящийся процессы. Расходящийся процесс характеризуется быстрым нарастанием значений аргумента и функции и аварийным завершением соответствующей программы. При двухстороннем процессе возможно зацикливание, то есть бесконечное повторение одних и тех же значений функции и аргумента. Зацикливание отделяет расходящийся процесс от сходящегося.
Из графиков видно, что как при одностороннем, так и при двухстороннем процессе сходимость к корню определяется наклоном кривой вблизи корня. Чем меньше наклон, тем лучше сходимость. Как известно, тангенс угла наклона кривой равен производной кривой в данной точке.
Следовательно, чем меньше вблизи корня, тем быстрее сходится процесс.
Для того чтобы итерационный процесс был сходящимся, необходимо в окрестности корня выполнение следующего неравенства:
. (2.9)
Переход от уравнения (2.1) к уравнению (2.7) можно осуществить различными способами в зависимости от вида функции f(x). При таком переходе необходимо построить функцию так, чтобы выполнялось условие сходимости (2.9).
Рассмотрим один из общих алгоритмов перехода от уравнения (2.1) к уравнению (2.7) [5].
Умножим левую и правую части уравнения (2.1) на произвольную константу b и добавим к обеим частям неизвестное х. При этом корни исходного уравнения не изменятся:
(2.10)
Введем обозначение и перейдем от соотношения (2.10) к уравнению (2.8).
. (2.11)
Произвольный выбор константы b позволит обеспечить выполнение условия сходимости (2.9). Критерием окончания итерационного процесса будет условие (2.2). На рис.2.8 приведена графическая интерпретация метода простых итераций при описанном способе представления (масштабы по осям X и Y различны).
Если функция выбрана в виде , то производная от этой функции будет . Наибольшая скорость сходимости будет при , тогда и итерационная формула (2.11) переходит в формулу Ньютона . Таким образом, метод Ньютона имеет самую высокую степень сходимости из всех итерационных процессов.
Программная реализация метода простых итераций выполнена в виде процедуры-подпрограммы Iteras (ПРОГРАММА 2.1).
Вся процедура практически состоит из одного цикла Repeat ... Until, реализующего формулу (2.11) с учетом условия прекращения итерационного процесса (формула (2.2)).
В процедуру встроена защита от зацикливания путем подсчета числа циклов с помощью переменной Niter. На практических занятиях необходимо убедиться путем прогона программы в том, как сказывается выбор коэффициента b и начального приближения на процессе поиска корня. При изменении коэффициента b характер итерационного процесса для исследуемой функции меняется. Он становится сначала двухсторонним, а потом зацикливается (рис.2.9). Масштабы по осям X и Y различны. Еще большее значение модуля b приводит к расходящемуся процессу.
Сравнение методов приближенного решения уравнений
Сравнение описанных выше методов численного решения уравнений проводилось с помощью программы, позволяющей на экране ПЭВМ наблюдать процесс нахождения корня в графическом виде. Процедуры, входящие в данную программу и реализующие сравниваемые методы, приведены ниже (ПРОГРАММА 2.1).
Рис.2.3-2.5,2.8,2.9 являются копиями экрана ПЭВМ при окончании итерационного процесса.
В качестве исследуемой функции во всех случаях было взято квадратное уравнение x2-x-6 = 0, имеющее аналитическое решение х1 = -2 и х2 = 3. Погрешность и начальные приближения принимались для всех методов равными. Результаты поиска корня х=3, представленные на рисунках, таковы. Наиболее медленно сходится метод дихотомии - 22 итерации, самый быстрый - метод простых итераций при b = -0.2 - 5 итераций. Здесь нет противоречия с утверждением, что метод Ньютона является самым быстрым. Производная исследуемой функции в точке х = 3 равна -0.2, то есть расчет в данном случае велся практически методом Ньютона с величиной производной в точке корня уравнения. При изменении коэффициента b скорость сходимости падает и постепенно сходящийся процесс сначала зацикливается, потом становится расходящимся.