РефератыИнформатика, программированиеРеРешение нелинейных уравнений

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

ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ.


1п. Общий вид нелинейного уравнения


F(x)=0


Нелинейные уравнения могут быть двух видов:


Алгебраические


anxn + an-1xn-1 +… + a0 = 0


Трансцендентные- это уравнения в которых х является аргументом


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


Значение х0 при котором существует равенство f(x0)=0 называется корнем


уравнения.


В общем случае для произвольной F(x) не существует аналитических формул


определения корней уравнения. Поэтому большое значение имеют методы, которые


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


корней делиться на два этапа:


Отделение корней, т.е. определение отрезка содержащего один корень.


Уточнение корня с заданной точностью.


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


или исходя из физического смысла или аналитическими методами.


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


которых в том, что строится числовая последовательность xi сходящихся к корню x0


Выходом из итерационного процесса являются условия:


│f(xn)│≤ε


│xn-xn-1│≤ε


рассмотрим наиболее употребляемые на практике методы: дихотомии, итерации и


касательных.


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


Дана монотонная, непрерывная функция f(x), которая содержит корень на отрезке


[a,b], где b>a. Определить корень с точностью &#949;, если известно, что f(a)*f(b)<0


Суть метода


Данный отрезок [a,b] делится пополам, т.е. определяется x0=(a+b)/2, получается


два отрезка [a,x0] и [x0,b], далее выполняется проверка знака на концах,


полученных отрезков для отрезка, имеющего условия f(a)*f(x0)&#8804;0 или f(x0)*f(b)&#8804;0


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


так продолжается процесс до тех пор пока &#9474;xn-xn-1&#9474;&#8804;&#949;


3п. Метод итерации.


Дана непрерывная функция f(x), которая содержит единственный корень на отрезке


[a,b], где b>a. Определить корень с точностью &#949;.


Суть метода


Дано f(x)=0 (1)


Заменим уравнение (1) равносильным уравнением x=&#966;(x) (2). Выберем грубое,


приближенное значение x0 , принадлежащее[a,b], подставим его в правую часть


уравнения (2), получим:


x1= &#966;(x0) (3) , далее подставим х1 в правую часть уравнения (3) получим:


x2= &#966;(x1) (4)


x3= &#966;(x2) (5)


Проделаем данный процесс n раз получим xn=&#966;(xn-1)


Если эта последовательность является сходящейся т.е. существует предел


x* =lim xn , то данный алгоритм позволяет определить искомый корень.


Выражение (5) запишем как x*= &#966;(x*) (6)


Выражение (6) является решением выражения (2), теперь необходимо рассмотреть в


как

их случаях последовательность х1…хn является сходящейся.


4 п. Метод касательных (Ньютона).


Дана непрерывная функция f(x), которая содержит единственный корень на отрезке


[a,b], где b>a при чем определены непрерывны и сохраняют знак f`(x) f``(x).


Определить корень с точностью &#949;.


Суть метода


Выбираем грубое приближение корня х0 (либо точку a, либо b)


Наити значение функции точке х0 и провести касательную до пересечения с осью


абсцисс, получим значение х1


5п. Задание для РГР


Вычислить корень уравнения


На отрезке [2,3] с точностью &#949;=10-4 методами половинного деления, итерации,


касательных.


6 п. Сравнение методов


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


вычислительного процесса, скоростью сходимости.


Наиболее универсальным является метод половинного деления, он гарантирует


определение корня с заданной точностью для любой функции f(x), которая меняет


знак на [a,b]. Метод итерации и метод Ньютона предъявляют к функциям более


жесткие требования, но они обладают высокой скоростью сходимости.


Метод итерации имеет очень простой алгоритм вычисления, он применим для пологих


функций.


Программа по методам половинного деления, итерации и метода Ньютона.


CLS -


a = 2: b = 3: E = .0001


DEF FNZ (l) = 3 * SIN(SQR(l)) + .35 * l - 3.8


F1 = FNZ(a): F2 = FNZ(b)


IF F1 * F2 > 0 THEN PRINT "УТОЧНИТЬ КОРНИ": END


GOSUB 1


x0 = a


IF ABS((-3 * COS(SQR(x))) / (.7 * SQR(x))) > 1 THEN PRINT "НЕ СХОДИТСЯ"


DEF FNF (K) = -(3 * SIN(SQR(x)) - 3.8) / .35


GOSUB 2


x0 = b


F = FNZ(x0)


DEF FND (N) = (3 * COS(SQR(N)) / (2 * SQR(N))) + .35 _


IF F * (-4.285 * (-SQR(x0) * SIN(SQR(x)) - COS(SQR(x))) / (2 * x * SQR(x))) <


then print “не сходится”:end


GOSUB 3


END


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


1 x = (a + b) / 2: T = T + 1


F3 = FNZ(x)


IF ABS(F3) < E THEN 5


IF F1 * F3 < 0 THEN b = x ELSE a = x


IF ABS(b - a) > E THEN 1 -


5 PRINT "X="; x, "T="; T


RETURN


'=========Метод итерации==========


2 x0 = a


12 X2 = FNF(x0): S = S + 1


IF ABS(X2 - x0) > E THEN x0 = X2: GOTO 12


PRINT "X="; X2, "S="; S


RETURN


'========Метод касательных=======


3 x0 = b


23 D = D + 1


F = FNZ(x0): F1 = FND(x0)


X3 = x0 - F / F1


IF ABS(X3 - x0) < E THEN 100


IF ABS(F) > E THEN x0 = X3: GOTO 23


100PRINT "X="; X3, "D="; D


RETURN


Ответ


x= 2,29834 T=11


x=2,29566 S=2


x=2,29754 D=2


где T,S,D-число итерации для метода половинного деления, итерации, касательных


соответственно.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Решение нелинейных уравнений

Слов:840
Символов:6855
Размер:13.39 Кб.