» » Лабораторная работа: Нахождение корня нелинейного уравнения. Методы решения системы нелинейных уравнений. Алгебра Отделение корней нелинейного уравнения

Лабораторная работа: Нахождение корня нелинейного уравнения. Методы решения системы нелинейных уравнений. Алгебра Отделение корней нелинейного уравнения

Математика как наука возникла в связи с необходимостью решения практических задач: измерений на местности, навигации и т.д. Вследствие этого математика была численной математикой и ее целью было получение решения в виде числа. Численное решение прикладных задач всегда интересовало математиков. Крупнейшие представители прошлого сочетали в своих исследованиях изучение явлений природы, получение их математического описания, т.е. его математической модели и его исследование. Анализ усложненных моделей потребовал создания специальных, обычно численных методов решения задач. Названия некоторых таких методов свидетельствуют о том, что их разработкой занимались крупнейшие ученые своего времени. Это методы Ньютона, Эйлера, Лобачевского, Гаусса, Чебышева, Эрмита.

Настоящее время характерно резким расширением приложений математики, во многом связанным с созданием и развитием средств вычислительной техники. В результате появления ЭВМ менее чем за 40 лет скорость выполнения операций возросла от 0,1 операции в секунду при ручном счете до 10 операций в секунду на современных ЭВМ.

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

Можно выделить два обстоятельства, которые первоначально обусловили стремление к математизации наук:

во-первых, только применение математических методов позволяет придать количественный характер исследованию того или иного явления материального мира;

во-вторых, и это главное, только математический способ мышления делает объекта. Такой метод исследования называют вычислительным экспериментом исследование в полной мере объективным.

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

Математические модели.

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

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

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

Основные требования, предъявляемые к математической модели - адекватность рассматриваемому явлению, т.е. оно должно достаточно отражать характерные черты явления. Вместе с тем она должна обладать сравнительной простотой и доступностью исследования.

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

Математические модели можно классифицировать по разным признакам: статические и динамические, сосредоточенные и распределенные; детерминированные и вероятностные.

Рассмотрим задачу нахождения корней нелинейного уравнения

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

Алгоритм нахождения корней приближенными методами можно разбить на два этапа. На первом изучается расположение корней и проводится их разделение. Находится область , в которой существует корень уравнения или начальное приближение к корню x 0 . Простейший способ решения этой задачи является исследование графика функции f(x) . В общем же случае для её решения необходимо привлекать все средства математического анализа.

Существование на найденном отрезке , по крайней мере, одного корня уравнения (1) следует из условия Больцано:

f(a)*f(b)<0 (2)

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

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

где вещественные коэффициенты.

  • а) Уравнение степени n имеет n корней, среди которых могут быть как вещественные, так и комплексные. Комплексные корни образуют комплексно-сопряженные пары и, следовательно, уравнение имеет четное число таких корней. При нечетном значении n имеется, по меньшей мере, один вещественный корень.
  • б) Число положительных вещественных корней меньше или равно числа переменных знаков в последовательности коэффициентов. Замена х на -х в уравнении (3) позволяет таким же способом оценить число отрицательных корней.

На втором этапе решения уравнения (1), используя полученное начальное приближение, строится итерационный процесс, позволяющий уточнять значение корня с некоторой, наперед заданной точностью. Итерационный процесс состоит в последовательном уточнении начального приближения. Каждый такой шаг называется итерацией. В результате процесса итерации находится последовательность приближенных значений корней уравнения. Если эта последовательность с ростом n приближается к истинному значению корня x , то итерационный процесс сходится. Говорят, что итерационный процесс сходится, по меньшей мере, с порядком m, если выполнено условие:

где С>0 некоторая константа. Если m=1 , то говорят о сходимости первого порядка; m=2 - о квадратичной, m=3 - о кубической сходимостях.

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

или малости невязки:

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

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

  • 1)Метод итераций . При решении нелинейного уравнения методом итераций воспользуемся записью уравнения в виде x=f(x). Задаются начальное значение аргумента x 0 и точность е. Первое приближение решения x 1 находим из выражения x 1 =f(x 0), второе - x 2 =f(x 1) и т.д. В общем случае i+1 приближение найдем по формуле xi+1 =f(xi). Указанную процедуру повторяем пока |f(xi)|>е. Условие сходимости метода итераций |f"(x)|
  • 2)Метод Ньютона . При решении нелинейного уравнения методом Ньтона задаются начальное значение аргумента x 0 и точность е. Затем в точке(x 0 ,F(x 0)) проводим касательную к графику F(x) и определяем точку пересечения касательной с осью абсцисс x 1 . В точке (x 1 ,F(x 1)) снова строим касательную, находим следующее приближение искомого решения x 2 и т.д. Указанную процедуру повторяем пока |F(xi)| > е. Для определения точки пересечения (i+1) касательной с осью абсцисс воспользуемся следующей формулой

x i+1 =x i -F(x i) F"(x i).

Условие сходимости метода касательных F(x 0) F""(x)>0, и др.

3). Метод дихотомии. Методика решения сводится к постепенному делению начального интервала неопределённости пополам по формуле

С к =а к +в к /2.

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

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

4). Метод хорд . Идея метода состоит в том, что на отрезке строится хорда стягивающая концы дуги графика функции y=f(x), а точка c, пересечения хорды с осью абсцисс, считается приближенным значением корня

c = a - (f(a)Ч (a-b)) / (f(a) - f(b)),

c = b - (f(b)Ч (a-b)) / (f(a) - f(b)).

Следующее приближение ищется на интервале или в зависимости от знаков значений функции в точках a,b,c

x* О , если f(с)Ч f(а) > 0 ;

x* О , если f(c)Ч f(b) < 0 .

Если f"(x) не меняет знак на , то обозначая c=x 1 и считая начальным приближением a или b получим итерационные формулы метода хорд с закрепленной правой или левой точкой.

x 0 =a, x i+1 = x i - f(x i)(b-x i) / (f(b)-f(x i), при f "(x)Ч f "(x) > 0 ;

x 0 =b, x i+1 = x i - f(x i)(x i -a) / (f(x i)-f(a), при f "(x)Ч f "(x) < 0 .

Сходимость метода хорд линейная

Алгебраические и трансцендентные уравнения. Методы локализации корней.

Наиболее общий вид нелинейного уравнения:

f(x) =0 (2.1)

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

Определение 2.1. Всякое число, обращающее функцию f(x) в нуль, называется корнем уравнения (2.1).

Определение 2.2. Число, называется корнем k-ой кратности, если при вместе с функцией f(x) равны нулю ее производные до (к-1)-го порядка включительно:

Определение 2.3. Однократный корень называется простым.

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

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

Путем алгебраических преобразований из всякого алгебраического уравнения можно получить уравнение в канонической форме:

где -- действительные коэффициенты уравнения, х -- неизвестное.

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

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

Решить уравнение (2.1) означает:

  • 1. Установить имеет ли уравнение корни.
  • 2. Определить число корней уравнения.
  • 3. Найти значения корней уравнения с заданной точностью.

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

Алгоритм нахождения корня уравнения с помощью численного метода состоит из двух этапов:

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

Методы локализации корней. Теоретической основой алгоритма отделения корней служит теорема Коши о промежуточных значениях непрерывной функции.

Теорема 2.1. Если функция у = f(х) непрерывна на отрезке [а,b] и f(а)=А, f(b)=В, то для любой точки С, лежащей между А и В, существует точка, что.

Следствие. Если функция у = f(х) непрерывна на отрезке [а,b ] и на его концах принимает значения разных знаков, то на этом отрезке существует хотя бы один корень уравнения f(х) = 0.

Пусть область определения и непрерывности функции является конечным отрезком [а,b] . Разделим отрезок на n частей: ,

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

т.е. , или, . Эти отрезки и содержит хотя бы по одному корню.

Теорема 2.2. Если функция у = f(х) непрерывна на отрезке [а;b ], f(а)f(b)<0 и f`(х) на интервале (а;b) сохраняет знак, то внутри отрезка [а;b] существует единственный корень уравнения f(х) = 0.

Для отделения корней можно использовать также график функции у = f(х). Корнями уравнения (2.1) являются те значения х, при которых график функции y=f(х) пересекает ось абсцисс. Построение графика функции даже с малой точностью обычно дает представление о расположении корней уравнения (2.1). Если построение графика функции у=f(x) вызывает затруднение, то исходное уравнение (2.1) следует преобразовать к виду ц1(х) = ц2(х) таким образом, чтобы графики функций у = ц1(х) и у = ц2(х) были достаточно просты. Абсциссы точек пересечения этих графиков и будут корнями уравнения (2.1).

Пример 1. Отделить корни уравнения x 2 -2cosx=0.

Решение. Рассмотрим два способа отделения корней.

  • а) Графический способ. Перепишем уравнение в виде x 2 =2cosx и построим график функций y=x 2 и y=2cosx в одной и той же системе координат (рисунок 5). так как эти графики пересекаются в двух точках, уравнение имеет два корня, расположенные симметрично относительно начала координат на интервалах (-/2; 0) и (0; /2).
  • б) Аналитический способ. Пусть f(x)= x 2 -2cosx. Так как f(x) четная функция, то достаточно рассмотреть только неотрицательные значения x. В силу неравенства 2cosx2

Производная f"(x) =2(x+sinx). На интервале (0; /2) f"(x) >0 , следовательно, f(x) здесь монотонно возрастает и ее график может пересечь ось х не более, чем в одной точке. Заметим, что f(0)=- 2<0, а f(/2)=(/2) 2 >0. Значит, уравнение имеет один положительный корень, лежащий на интервале (0; /2). В силу четности функции уравнение имеет также один отрицательный корень, симметричный положительному. Теперь перейдем к уточнению корня. Для применения комбинированного метода уточнения корня необходимо убедится, что f ""(x) на (0; /2) сохраняет знак, и выбрать начальное приближение корня для применения метода касательных. Оно должно удовлетворять условию: f(x)f ""(x) >0. Так как f ""(x) =2(1+cosx) положительна на , то за начальное приближение корня в методе касательных может быть взято /2. Следовательно, можно положить x =/21,570796, x 1 =0 (см схему алгоритма). В нашем случае метод хорд будет давать приближенное значение корня с недостатком, а метод касательных - с избытком.

Рассмотрим один итерационный шаг уточнения корня. Вычислим значения f(0), f(/2), f"(/2). Новые значения x 1 и x найдем соответственно по формулам:

|x-x 1 |=0,387680,4>10 -4 =.

Заданная точность не достигнута, и вычисления нужно продолжить.

Номер итерации

x 1

f(x 1 )

|x- x 1 |

Следовательно, приближенное значение корня с нужной точностью найдено в результате трех итераций и приближенно равно 1,0217.

В силу симметрии графика функции f(x) значение второго корня приближенно равно -1,0217.

Уточнение корня.

Постановка задачи . Допустим, что искомый корень уравнения (2.1) отделен, т.е. найден отрезок [а; b], на котором имеется один и только один корень уравнения. Любую точку этого отрезка можно принять за приближенное значение корня. Погрешность такого приближения не превосходит длины [а; b]. Следовательно, задача отыскания приближенного значения корня с заданной точностью сводится к нахождению отрезка [а; b] (b- a <), содержащего только один корень уравнения (2.1). Эту задачу обычно называют задачей уточнения корня.

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

В этой связи задача нахождения корней многочлена вида (3.1)

представляет особый интерес, т.к. формулы нахождения корней даже кубического уравнения достаточно сложны. Если необходимо отыскать корни многочлена, степень которого равна, например, 5 - то без помощи численных методов не обойтись, тем более, что вероятность наличия у такого многочлена натуральных (или целых, или точных корней с «короткой» дробной частью) довольно мала, а формул для нахождения корней уравнения степени, превышающей 4, не существует. Де-факто все дальнейшие операции будут сводиться лишь к уточнению корней , интервалы которых приблизительно известны заранее. Проще всего эти «приблизительные» корни находить, используя графические методы.

Для нахождения корней многочлена существует несколько численных методов: метод итераций, метод хорд и касательных, метод половинного деления, метод секущих.

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

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

  • - дана функция F(x);
  • - определена допустимая погрешность Q;
  • - определен некоторый интервал [ a , b ], точно содержащий решение уравнения.

1) Вычисляем значение координаты Е, беря середину отрезка , т.е.

Е= (a + b) / 2 (3.2)

  • 2) Вычисляем значения F(a), F(b), F(E), и осуществляем следующую проверку: Если F(E)>Q, то корень с указанной точностью найден. Если F(E)
  • 3) Переходим к пункту 1.

Метод простых итераций (метод последовательных приближений). Заменим уравнение (2.1) эквивалентным ему уравнением

x=(x) (3.3)

можно сделать различными способами, например

х=х+сf(x), c0. (3.4)

Предположим, что выбрано некоторое начальное приближение корня уравнения (3.3). Определим числовую последовательность по формулам

х n+1 =(x n ), n=0,1,2,… (3.5)

Такую последовательность называют итерационной.

Если на отрезке , содержащем х 0 и все последующие приближения х n , nN, функция (x) имеет непрерывную производную "(x) и |"(x)|q<1, то итерационная последовательность (3.5) сходится к единственному на корню уравнения (3.3). Скорость сходимости определяется неравенством

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

Следовательно, на практике при нахождении корней методом простой итерации желательно представить уравнение (2.1) в форме (3.3) таким образом, чтобы производная "(x) в окрестности корня по абсолютной величине была, возможно, меньше. Для этого иногда пользуются параметром с из формулы (3.4).

Метод Ньютона (метод касательных). Если известно достаточно хорошее начальное приближение, для которого выполняется неравенство:

то можно вычислить единственный корень уравнения, используя формулу Ньютона

В качестве начального приближения можно использовать границы интервала, причем:

Если на.

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

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

где - наибольшее значение модуля второй производной на отрезке, - наименьшее значение модуля первой производной на отрезке.

Правило останова:

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

Надо отметить, что существуют также отдельно метод хорд (дает значение корня с недостатком) и метод касательных (с избытком). Однако преимущество комбинированного метода заключается в «двустороннем сжатии» рассматриваемого отрезка.

Рассмотрим следующий случай:

  • - дана функция F(x) и построен ее график;
  • - определена допустимая погрешность Q
  • - на основании графика определен отрезок , на котором график функции пересекает ось абсцисс, следовательно, на этом отрезке существует корень рассматриваемого многочлена (обозначим его через A)

Дальнейший алгоритм сводится к следующим действиям:

  • 1) строим касательную к графику функции в точке F(b)
  • 2) вычисляем координату х пересечения касательной с осью абсцисс по формуле (3.9) и обозначаем ее через b"
  • 3) строим к графику функции хорду, проходящую через точки F(a) и F(b).
  • 4) Вычисляем точку пересечения хорды с осью абсцисс по формуле (2) и обозначаем ее через a".

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

Теперь принимаем отрезок за новый отрезок и повторяем шаги 1-4 до тех пор, пока разность F(b)-F(a) не станет меньше первоначально заложенной погрешности Q. Отметим также, что после этого рекомендуется в качестве искомого решения взять среднее арифметическое F(a) и F(b).

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

Замечание к методу хорд и касательных. Так как для решения поставленной задачи требуется отыскание производной функции F(x), метод хорд и касательных достаточно трудно реализуем на программном уровне, т.к. правила вычисления производных в общем виде довольно громоздки для «понимания» ЭВМ; при непосредственном указании производной для каждой степени многочлена память компьютера серьезно загружается, что очень замедляет работу, а задание функции и, соответственно, ее производной непосредственно в программном коде - недопустимо. Однако, используя данный метод, сходимость интервала к корню происходит наиболее быстро, особенно если совместить метод хорд и касательных с методом бисекции, т.к. середина нового отрезка зачастую дает вполне удовлетворительное решение.

Метод секущих. Метод секущих может быть получен из метода Ньютона при замене производной приближенным выражением - разностной формулой:

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

Алгоритм метода секущих:

1) заданы начальное значение и погрешность. Вычислим

2) для n = 1,2, ….. пока выполняется условие, вычисляем по формуле (3.8).

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

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

Найденные приближенные значения корней можно уточнить с помощью различных итерационных методов. Рассмотрим три метода: 1) метод дихотомиии (или деление отрезка пополам); 2) метод простой итерации и 3) метод Ньютона.

Методы решения задачи

Метод деления отpезка пополам

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

Пусть на отрезке задана непрерывная функция Если значения функции на концах отрезка имеют разные знаки, т.е. то это означает, что внутри данного отрезка находится нечетное число корней. Пусть для определенности корень один. Суть метода состоит в сокращении на каждой итерации вдвое длины отрезка. Находим середину отрезка (см. рис. 1) Вычисляем значение функции и выбираем тот отрезок, на котором функция меняет свой знак. Новый отрезок вновь делим пополам. И этот процесс продолжаем до тех пор, пока длина отрезка не сравняется с наперед заданной погрешностью вычисления корня. Построение нескольких последовательных приближений по формуле (3) приведено на рисунке 1.

Итак, алгоритм метода дихотомии:

1. Задать отрезок и погрешность.

2. Если f(a) и f(b) имеют одинаковые знаки, выдать сообщение о невозможности отыскания корня и остановиться.

Рис.1.

3. В противном случае вычислить c=(a+b)/2

4. Если f(a) и f(c) имеют разные знаки, положить b=c, в противном случае a=c.

5. Если длина нового отрезка, то вычислить значение корня c=(a+b)/2 и остановиться, в противном случае перейти к шагу 3.

Так как за N шагов длина отрезка сокращается в 2 N раз, то заданная погрешность отыскания корня будет достигнута за итераций.

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

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

Цель работы

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

Методические указания

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

Нелинейные уравнения можно разделить на 2 класса – алгебраические и трансцендентные. Алгебраическими уравнениями называют уравнения, содержащие только алгебраические функции (целые – в частности многочлен, рациональные, иррациональные). Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и др.) называются трансцендентными. Нелинейные уравнения могут решаться точными или приближенными методами. Точные методы позволяют записать корни в виде некоторого конечного соотношения (формулы). К сожалению, большинство трансцендентных уравнений, а также произвольные алгебраические уравнения степени выше четвертой не имеют аналитических решений. Кроме того, коэффициенты уравнения могут быть известны лишь приблизительно и, следовательно, сама задача о точном определении корней теряет смысл. Поэтому для решения используются итерационные методы последовательного приближения. Вначале следует вначале отделить корни (т.е. найти их приближенное значение или отрезок их содержащий), а затем методом последовательных приближений их уточнить. Отделить корни можно – установив знаки функции f (x ) и ее производной в граничных точках области ее существования, оценив приближенные значения из физического смысла задачи, или из решения аналогичной задачи при других исходных данных.

Широко распространен графический способ определения приближенных значений действительных корней – строят график функции f (x ) и отмечают точки пересечения его с осью ОХ. Построение графиков часто удается упростить, заменив уравнение f (x )= 0 равносильным ему уравнением , где функции f 1 (x ) и f 2 (x ) - более простые, чем функция f (x ). В этом случае следует искать точку пересечения этих графиков.

Пример 1. Графически отделить корни уравнения x lg x = 1. Перепишем его в виде равенства lg x= 1/xи найдем абсциссы точек пересечения логарифмической кривой y = lg x и гиперболы y = 1/x (рис. 5). Видно, что единственный корень уравнения .

Реализация классических приближенных методов решения в пакете MathCAD.

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

Отрезок, на концах которого функция принимает значения разного знака, делится пополам и, если корень лежит правее центральной точки, то к центру подтягивается левый край, а если – левее, то правый край. Новый суженный отрезок снова делится пополам и процедура повторяется. Этот метод прост и надежен, всегда сходится (хотя часто медленно – расплата за простоту!). Программная реализация его в пакете MathCAD рассмотрена в лабораторной работе №7 данного пособия.

Метод хорд

В качестве последовательных приближений к корню уравнения принимаются значения х 1 , х 2 , ..., х n точек пересечения хорды АВ с осью абсцисс (рис. 6).

Уравнение хорды AB имеет вид: . Для точки пересечения ее с осью абсцисс (х=х 1 , y= 0) имеем:

Пусть для определенности кривая у = f (x ) будет выпукла вниз и, следовательно, расположена ниже своей хорды АВ , т.е. на отрезке f ²(x )>0. Возможны два случая: f (а )>0 (рис. 6, а ) и f (а )<0 (рис. 6, б ).

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

x 0 = b ; . (4.1)

Во втором случае неподвижен конец b , последовательные итерации образуют ограниченную монотонно возрастающую последовательность: и определяются согласно уравнениям:

x 0 = а ; . (4.2)

Таким образом, неподвижным следует выбирать тот конец, для которого знак функции f (х ) и ее второй производной f ²(х ) совпадают, а последовательные приближения x n лежат по ту сторону корня x, где эти знаки противоположны. Итерационный процесс продолжается до тех пор, пока модуль разности двух последовательных приближений не станет меньше, чем заданная точность решения.

Пример 2. Найти положительный корень уравнения f (x ) º x 3 –0,2x 2 –0,2х –1,2 = 0 с точностью e= 0,01. (Точный корень уравнения x = 1,2).

Для организации итерационных вычислений в MathCAD документе используется функция until(a, z ), котораявозвращает значение величины z , пока выражение a не становится отрицательным.

Метод Ньютона

Отличие этого метода от предыдущего состоит в том, что вместо хорды на каждом шаге проводится касательная к кривой y=f (x )при x=х i и ищется точка пересечения ее с осью абсцисс (рис. 7):

При этом не обязательно задавать отрезок [а, b], содержащий корень уравнения), а достаточно лишь задать начальное приближение корня x=х 0 , которое должно находиться на том же конце интервала [а, b], где знаки функции и ее второй производной совпадают.

Уравнение касательной, проведенной к кривой y = f (x ) через точку В 0 с координатами х 0 и f (х 0), имеет вид:

Отсюда найдем следующее приближение корня х 1 как абсциссу точки пересечения касательной с осью Ох (y = 0):

Аналогично могут быть найдены и последующие приближения как точки пересечения с осью абсцисс касательных, проведенных в точках В 1 , В 2 и так далее. Формула для (i + 1) приближения имеет вид:

Условием окончания итерационного процесса является неравенство ïf (x i

Пример 3 . Реализация итерационного метода Ньютона.

Метод простой итерации (последовательных итераций )

Заменим исходное нелинейное уравнение f (х )=0 равносильным уравнением вида x =j(x ). Если известно начальное приближение корня х = х 0 , то новое приближение может быть получено по формуле: х 1 =j(х 0). Далее, подставляя каждый раз новое значение корня в исходное уравнение получаем последовательность значений:

Геометрическая интерпретация метода состоит в том, что каждый действительный корень уравнения является абсциссой точки пересечения М кривой у= j(х ) с прямой у=х (рис. 8). Отправляясь от произвольной т. А 0 [x 0 ,j(x 0)] начального приближения, строим ломаную А 0 В 1 А 1 В 2 А 2 .., которая имеет форму «лестницы» (рис. 8, а ) если производная j’(x) положительна и форму «спирали» (рис. 8, б ) в противоположном случае.

в)
Рис. 8. Метод простой итерации: а, б – сходящаяся итерация, в – расходящаяся итерация.

Отметим, что следует заранее проверить пологость кривой j(х ), поскольку если она не является достаточно пологой ( >1), то процесс итерации может быть расходящимся (рис. 8, в ).

Пример 4. Решитьуравнение x 3 – x – 1 = 0 методом простой итерации с точностью e = 10 -3 . Реализация этой задачи представлена следующим MathCAD документом.

Реализация приближенных методов решения встроенными функциями MathCAD

Использование функции root

Для уравнений вида f (x ) = 0 решение находится с помощью функции: root(f (х ),х,a,b ) , которая возвращает значение х , принадлежащее отрезку [a, b ] , при котором выражение или функция f (х ) обращается в 0. Оба аргумента этой функции x и f(x) должны быть скалярами, а аргументы a, b – являютсянеобязательными и, если используются, то должны быть вещественными числами, причем a < b. Функция позволяет находить не только вещественные, но и комплексные корни уравнения (при выборе начального приближения в комплексной форме).

Если уравнение не имеет корней, они расположены слишком далеко от начального приближения, начальное приближение было вещественным, а корни – комплексные, функция f (х ) имеет разрывы (локальные экстремумы между начальными приближениями корня) то появится сообщение (отсутствует сходимость). Причину ошибки можно выяснить, исследуя график f (x ). Он поможет выяснить наличие корней уравнения f (x ) = 0 и, если они есть, то определить приблизительно их значения. Чем точнее выбрано начальное приближение корня, тем быстрее будет сходиться функция root .

Для выражения f (x ) с известным корнем а нахождение дополнительных корней f (x ) эквивалентно поиску корней уравнения h (x )=f (x )/(x‑a ). Проще искать корень выражения h (x ), чем пробовать искать другой корень уравнения f (x )=0, выбирая различные начальные приближения. Подобный прием полезен для нахождения корней, расположенных близко друг к другу, он реализован в приведенном ниже документе.

Пример 5 . Решить алгебраическое уравнения с помощью функции root:

Примечание. Если увеличить значение системной переменной TOL (tolerance), то функция root будет сходиться быстрее, но ответ будет менее точен, а при уменьшении TOL более медленная сходимость обеспечивает более высокую точность, соответственно. Последнее необходимо, если требуется различить два близко расположенных корня, или же, если функция f (x ) имеет малый наклон около искомого корня, поскольку итерационный процесс в этом случае может сходиться к результату, отстоящему от корня достаточно далеко. В последнем случае альтернативой повышения точности является замена уравнения f (x ) = 0на g (x ) = 0, где .

Использование функции polyroots

Если функция f(x) является полиномом степени n , то для решения уравнения f(x)=0 лучше использовать функцию polyroots (a), нежели root , поскольку она не требует начального приближения и возвращает сразу все корни, как вещественные, так и комплексные. Аргументом ее является вектор a, составленный из коэффициентов исходного полинома. Его можно сформировать вручную или с помощью команды Символы Þ Коэффициенты полинома (переменная полинома x выделяется курсором). Пример применения функции polyroots:

Использование функции solve и блока решений

Блок решений с ключевыми словами (Given – Find или Given – Minerr ) или функция solve позволяют найти решение произвольного нелинейного уравнения, если предварительно задано начальное приближение.

Отметим, что между функциями Find и root наблюдается своеобразная конкуренция. С одной стороны, Find позволяет искать корни, как уравнений, так и систем. С этих позиций функция root как бы и не нужна. Но с другой стороны, конструкцию Given-Find невозможно вставить в MathCAD программы. Поэтому в программах приходится подстановками сводить систему к одному уравнению и использовать функцию root .

Символьное решение уравнений в пакете MathCAD

Во многих случаях, MathCAD позволяет найти аналитическое решение уравнения. Для того чтобы найти решение уравнения в аналитическом виде необходимо записать выражение и выделить в нем переменную. После этого выбираем из пункта меню Symbolic подпункт Solve for Variable.

Другими вариантами нахождения решения в символьной форме являются (приводятся примеры решения того же уравнения) – использование функции solve из палитры математических операций Символы (Symbolic ).

использование блока решения (с ключевыми словами Given - Find )

Уравнение типа F(x)=0 или x=f(x) называется нелинейным. Решить уравнение это значит найти такое x, при котором уравнение превращается в тождество. В общем случае уравнение может иметь 0; 1; 2; ...∞ корней. Рассмотренные ниже численные методы решения нелинейных уравнений позволяют находить один корень на заданном интервале . При этом на интервале должен существовать только один корень. Рассмотрим несколько методов решения нелинейных уравнений .

  1. Метод перебора . При решении нелинейного уравнения методом перебора задаются начальное значение аргумента x=a и шаг h, который при этом определяет и точность нахождения корней нелинейного уравнения. Пока выполняется условие F(x)*F(x+h)>0 аргумент x увеличиваем на шаг h (x=x+h). Если произведение F(x)*F(x+h) становится отрицательным, то на интервале существует решение уравнения. Структограмма метода приведена на рисунке.


  2. Метод половинного деления . При решении нелинейного уравнения методом половинного деления задаются интервал , на котором существует только одно решение, и желаемая точность ε. Затем определяется середина интервала с=(а+b)/2 и проверяется условие F(a)∙F(c)<0. Если указанное условие выполняется, то правую границу интервала b переносим в среднюю точку с (b=c). Если условие не выполняется, то в среднюю точку переносим левую границу(a=c). Деление отрезка пополам продолжается пока |b-a|>ε. Структограмма решения нелинейных уравнений методом половинного деления приведена на рисунке.

    Пока |b-a|>ε

    F(a)∙F(c)<0


    Рис. Структограмма для метода половинного деления

  3. Метод хорд . При решении нелинейного уравнения методом хорд задаются интервал , на котором существует только одно решение, и точность ε. Затем через две точки с координатами (a,F(a)) и (b,F(b)) проводим отрезок прямой линии (хорду) и определяем точку пересечения этой линии с осью абсцисс (точка c). Если при этом F(a)∙F(c)<0, то правую границу интервала переносим в точку с (b=c). Если указанное условие не выполняется, то в точку c переносится левая граница интервала (а=с). Поиск решения прекращается при достижении заданной точности |F(c)|< ε. Для определения точки пересечения хорды с осью абсцисс воспользуемся следующей формулой (попытайтесь получить формулу самостоятельно).Структограмма метода хорд показана на рисунке.

    Пока |F(c)|>ε

    F(a)∙F(c)<0


    Рис. Структограмма для метода хорд

  4. Метод касательных . При решении нелинейного уравнения методом касательных задаются начальное значение аргумента x 0 и точность ε. Затем в точке(x 0 ,F(x 0)) проводим касательную к графику F(x) и определяем точку пересечения касательной с осью абсцисс x 1 . В точке (x 1 ,F(x 1)) снова строим касательную, находим следующее приближение искомого решения x 2 и т.д. Указанную процедуру повторяем пока |F(x i)| > ε. Для определения точки пересечения (i+1) касательной с осью абсцисс воспользуемся следующей формулой (получите формулу самостоятельно). Условие сходимости метода касательных F(x 0)∙F""(x 0)>0. Структограмма решения нелинейных уравнений методом касательных показана на рис.


  5. Метод хорд-касательных . Если в методе касательных производную функции F"(x i) заменить отношением конечных приращений, то получаем расчетную формулу для метода хорд-касательных . Порядок выполнения вычислений в данном методе аналогичен рассмотренному ранее.
  6. Метод итераций . При решении нелинейного уравнения методом итераций воспользуемся записью уравнения в виде x=f(x) . Задаются начальное значение аргумента x 0 и точность ε. Первое приближение решения x 1 находим из выражения x 1 =f(x 0), второе - x 2 =f(x 1) и т.д. В общем случае i+1 приближение найдем по формуле x i +1 =f(x i). Указанную процедуру повторяем пока |f(x i)|>ε. Условие сходимости метода итераций |f"(x)|<1. Структограмма метода итераций показана на рис.


Контрольное задание. Лабораторная работа 4.

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

Задание . Решить нелинейное уравнениеуказанными в табл. методами, предварительно определив интервал , на котором существует решение уравнения. Сделать проверку решения.

Варианты уравнений и методов их решения приведены в таблице.


Варианты уравнений и методов их решения

Уравнение

Методы решения

перебора и хорд

Перебора и касательных

Перебора и хорд-касательных

Перебора и половинного деления

перебора и хорд

Перебора и касательных

Перебора и хорд-касательных

Перебора и половинного деления

перебора и хорд

Перебора и касательных

Перебора и хорд-касательных

Перебора и половинного деления

перебора и хорд

Перебора и касательных

Перебора и хорд-касательных

Перебора и половинного деления

перебора и хорд

Перебора и касательных

x 2 =exp(-x 2)-1

Перебора и хорд-касательных

Перебора и половинного деления

перебора и хорд

Перебора и касательных

Перебора и хорд-касательных

Перебора и половинного деления


  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Результаты расчета, проверка и выводы по работе.