Скачать 350.48 Kb.
|
Тема: Решение алгебраических и трансцендентных уравнений приближенными методами. Цель: научиться применять численные методы для уточнения корней алгебраических и трансцендентных уравнений. Содержание: Теоретическая часть Введение Отделение корней Метод половинного деления Метод итераций Метод хорд Метод Ньютона (касательных) Комбинированный метод хорд и касательных Индивидуальные задания Теоретическая часть Введение Во многих практически важных случаях, когда уравнение имеет сложный вид, аналитически его точное решение найти не удается. Отсутствуют методы решения в общем виде алгебраических уравнений высоких степеней. Для трансцендентных уравнений точное решение можно найти в немногих самых простых случаях. Если решение нельзя найти в явном виде, то для отыскания корня используют другие методы. Например, приближенное решение можно получить методом последовательных приближений. Сравнительно легко корни уравнения определяются графически — достаточно лишь для уравнения f(x) = 0 построить график функции y=f(x) и найти точки пересечения кривой с осью абсцисс, в которых эта функция равна нулю. Наконец, корень уравнения можно попытаться определить «методом подбора». Однако ни один из перечисленных подходов нельзя считать достаточно эффективным при решении инженерных и научных задач на ПЭВМ. Более предпочтительны способы, обеспечивающие одновременно как оперативность получения результата, так и высокую точность. Когда говорят о методах решения нелинейных уравнений на ПЭВМ, то подразумевают в первую очередь итерационные методы. Главным признаком итерационного метода является многократное повторение одного и того же набора действий для получения результата. В основе итерационного метода лежит итерационная, т. е. повторяемая процедура. Процедура эта строится таким образом, что после каждого ее выполнения производится очередное приближение к корню. Можно сказать, что итерационный метод несколько напоминает отыскание корня подбором, однако этот подбор производится не наугад, а по вполне определенному алгоритму. ^ При решении практических задач обычно приходится проводить предварительное исследование уравнения до его решения. Дело в том, что если уравнение не удается решить аналитически, то заранее трудно определить, сколько оно имеет корней и какова их природа — сколько из них комплексных или вещественных, сколько отрицательных или положительных. Поиск корней наугад без предварительного исследования чреват тем, что правильный ответ так и не будет найден. Кроме того, зачастую некоторые корни не имеют физического смысла, и поэтому нет необходимости определять их точные значения. Однако в ходе предварительного исследования уравнения можно, не вычисляя точных значений всех корней, сразу выбрать из них те, которые представляют наибольший интерес. Примерное положение корней уравнения f(х) = 0 на числовой оси легко определить, построив график функции y=f(x). Точки пересечения кривой y=f(x) с осью абсцисс, где y = 0, и будут соответствовать искомым корням. Построенный график позволяет провести отделение указанных корней, т. е. найти на оси х границы отрезков, в каждом из которых располагается не более одного корня. Пример 1. Отделить корень уравнения cosx= 2х. Решение Построим графики функций у = cos х и у = 2х. Из рисунка 1 видно, что уравнение имеет единственный корень, принадлежащий отрезку [0; 1]. Когда находится отрезок, внутри которого расположен корень, то этот этап решения называется этапом отделения корня. ![]() Рисунок 1 - Графики функций у = cos х и у = 2х Если непрерывная функция f(х) на отрезке [а; b] строго монотонна и имеет на концах отрезка разные знаки, то на этом отрезке существует (и причем единственный) корень уравнения f(х) = 0. Действительно, функция f(x) = 2х- cos х в точках х = 0 и х = 1 имеет разные знаки и возрастает на отрезке [0; 1]: f(0) = (2 * 0 - cos 0) = 0 - 1 = -1 < 0; f(1) = (2 * 1 - cos 1) ![]() ![]() Действительно, если f(a) < 0, f(b) > 0 (или наоборот), то непрерывная функция f(х) обязательно хотя бы один раз пересекает ось абсцисс, а иногда несколько раз (рисунок 2). ![]() Рисунок 2 - График функции у =f(х) Отделение корней осуществляют либо графически, либо на основании аналитических исследований, либо сочетают оба этих способа. Пример 2. Отделить корни уравнения х3 + 2х- 1 = 0. Решение В данном случае f(х) = х3 + 2х- 1, f'(x) = Зх2 + 2. Поскольку f'(х) > 0 при всех х, то функция f(х) возрастает в промежутке (- ![]() ![]() f(-1) = (-1)3 + 2(-1)-1=-4<0, f(0) = -1<0, f(1) = 1 + 2-1=2>0. Так как f(1)f(0) > 0, то на отрезке [-1; 0] корня нет; поскольку f(-1)f(0) > 0, то корень находится на отрезке [0; 1]. Замечание 1. Можно указать отрезок меньшей длины, которому принадлежит корень. Взяв середину отрезка [0; 1], т. е. положив х= 0,5, по формуле f(0,5) = (0,5)3 + 2 * 0,5 - 1 > 0. Так как f(0)f(0,5) <0, то корень находится на отрезке [0; 0,5]. Этот процесс можно продолжать. Замечание 2. Корень данного уравнения можно отделить и графически. Придадим уравнению вид х3 = -2х+1 и построим графики функций у = х3, у = -2х + 1. Эти графики пересекаются в точке, абсцисса которой принадлежит интервалу (0; 1). Для уточнения корней используют несколько различных методов:
Метод половинного деления В методе половинного деления (дихотомии, бисекции) заданный отрезок [а; b] разделим пополам (рисунок 3) и положим х0 = (а + b)/2. Из двух полученных отрезков [а; х0] и [х0; b] выбираем тот, на концах которого функция f(х) имеет противоположные знаки. Полученный отрезок снова делим пополам и приводим те же рассуждения. Процесс продолжаем до тех пор, пока длина отрезка, на концах которого функция имеет противоположные знаки, не будет меньше заданного ![]() ![]() ![]() Рисунок 3 - Метод половинного деления (дихотомии) Таким образом, если х0 и х, таковы, что f(х0) f(х,) < 0, то полагаем х2 = (х0 + х1)/2 и вычисляем f(х2). Если f(х2) = 0, то корень найден. В противном случае из отрезков [х0; х2] и [х2; х1] выбираем тот, на концах которого f принимает значения разных знаков, и проделываем аналогичную операция. Процесс продолжаем до получения требуемой точности. Пример 3. Составить программу для нахождения корней методом половинного деления для функции F(x) = x2 + 1,7х+ 1,7. Решение Схема алгоритма дихотомии показана на рисунке 4. program polovina; {Половинное деление} var a,b,e,x:real; function f(x:real):real; begin f:=x*x-1.7*x+1.7; end; begin write('введите a,b,e'); readln(a,b,e); repeat x:=(a+b)/2; if f(x)*f(b)<0 then a:=x else b:=x; until abs(a-b)<=2*e writeln('кopeнь:',x:6:2); readln; end. ![]() Рисунок 4 - Схема алгоритма дихотомии Пример 4. Найти корень уравнения ![]() ![]() Решение Сначала выбираем начальное приближение, разделив отрезок пополам, т. е. х0 = (а + b)/2. Если F(x) = 0, то х0 является корнем уравнения. Если F(x) ![]() ![]() Программа_____________________________________________________ program lab; uses crt; var x,a,b,e:real; iteraz:integer; function fun(x:real):real; begin fun:=x+sqrt(x)+exp((l/3)*(ln(x)))-2.5; end; begin repeat clrscr; writeln('кopeнь уравнения находится на интервале [a,b]'); write('Введите [a='); readln(a); write('Введите [b='); readln(b); write('Введите приближённое значение корня Х='); readln(x); write('Введите точность е='); readln(e); until (b-a>e) or (x>a) or (x0); iteraz:=0; while (fun(x)<>0) and (abs(a-b)>e) do begin iteraz:=iteraz+l; if (fun(a)*fun(x))<0 then b:=x else a:=x; x:=((a+b)/2); end; writeln('Решение уравнения:'); writeln('Bычиcлeннoe значение корня…',х:6:5); writeln('Чиcлo итераций.. ',iteraz); writeln('Программа закончена, нажмите Enter.'); readln; end. ^ Пусть задана функция f(х), требуется найти корни уравнения f(х) = 0. (2) Метод простых итераций (последовательных приближений) является наиболее общим, и многие другие методы можно представить как некоторую вариацию метода простых итераций. Представим уравнение (2) в виде ![]() Это можно сделать, например, прибавив х к обеим частям уравнения (3). Рассмотрим последовательность чисел xi, которая определяется следующим образом: ![]() Метод простых итераций имеет следующую наглядную геометрическую интерпретацию (рисунок 6). Решением уравнения (3) будет абсцисса точки пересечения прямой у = х с кривой у = ![]() ![]() ![]() Рисунок 6 - Приближение к корню методом простой итерации Сходимость процесса приближения к корню в значительной степени определяется видом зависимости ![]() ![]() Рисунок 7 - Расходящийся процесс в методе простой итерации На рисунке 6 сходимость обеспечивается для медленно изменяющихся функций у(х), для которых выполняется условие ![]() На рисунке 7 расходящийся процесс наблюдается для более быстро меняющейся функции |\|/'(х)| > 1. Можно сделать вывод, что для обеспечения сходимости метода простой итерации необходимо выполнить условие ![]() На практике в качестве рассматриваемой окрестности используют интервал [а; b], а условие сходимости итерационного процесса имеет вид: ![]() Для сходящегося итерационного процесса характерно следующее: при решении задачи переменная последовательно стремится к некоторому искомому пределу. Так как итерационный процесс представляет собой последовательность повторяющихся вычислительных процедур, то он, естественно, описывается циклическими алгоритмами. Особенность итерационного цикла заключается в том, что неизвестен закон изменения рекуррентной величины, выбранной в качестве параметра цикла, и неизвестно число повторений цикла. При этом значение, полученное на n-й итерации, является исходным для следующей (п+ 1)-й итерации (рисунок 8). Процесс итераций продолжается до тех пор, пока для двух последовательных приближений хn+1 и хn не будет обеспечено выполнение неравенства ![]() где ![]() ![]() Рис. 8. Метод простой итерации0>0> |
![]() | Исход моделирования в значительной степени определяется выбором метода решения модели и умением правильно интерпретировать полученные... | ![]() | Некоторые физические системы могут быть адекватно описаны математической моделью в виде системы линейных алгебраических уравнений... |
![]() | Числа a, b, d, e – коэффициенты при неизвестных; c, f – свободные члены. Решение этой системы уравнений может быть найдено двумя... | ![]() | ... |
![]() | Итерационные методы решения интегральных уравнений, особенность частичной сходимости | ![]() | Закрепить методику формирования математической модели кинетики химической реакции в форме дифференциальных уравнений |
![]() | Применение систем алгебраических линейных уравнений для описания и анализа модели межотраслевого баланса. (стр. 3-6) | ![]() | Применение систем алгебраических линейных уравнений для описания и анализа модели межотраслевого баланса – 6 стр |
![]() | Системой линейных алгебраических уравнений называется совокупность формальных равенств вида | ![]() | Комплексная форма уравнений поля. Решение основных уравнений поля при известных токах и зарядах |