Научная Петербургская Академия

Решение нелинейных уравнений - (реферат)

Решение нелинейных уравнений - (реферат)

Дата добавления: март 2006г.

    ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ.
    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. Определить корень с точностью е, если известно, что f(a)*f(b)
    Суть метода

Данный отрезок [a, b] делится пополам, т. е. определяется x0=(a+b)/2, получается два отрезка [a, x0] и [x0, b], далее выполняется проверка знака на концах, полученных отрезков для отрезка, имеющего условия f(a)*f(x0)? 0 или f(x0)*f(b)? 0 снова проводится деление пополам координатой х, снова выделение нового отрезка и так продолжается процесс до тех пор пока¦xn-xn-1¦? е

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

Дана непрерывная функция f(x), которая содержит единственный корень на отрезке [a, b], где b>a. Определить корень с точностью е.

    Суть метода
    Дано f(x)=0 (1)

Заменим уравнение (1) равносильным уравнением x=ц(x) (2). Выберем грубое, приближенное значение x0 , принадлежащее[a, b], подставим его в правую часть уравнения (2), получим: x1= ц(x0) (3) , далее подставим х1 в правую часть уравнения (3) получим: x2= ц(x1) (4)

    x3= ц(x2) (5)
    Проделаем данный процесс n раз получим xn=ц(xn-1)

Если эта последовательность является сходящейся т. е. существует предел x* =lim xn , то данный алгоритм позволяет определить искомый корень. Выражение (5) запишем как x*= ц(x*) (6)

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

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

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

    Суть метода

Выбираем грубое приближение корня х0 (либо точку a, либо b) Наити значение функции точке х0 и провести касательную до пересечения с осью абсцисс, получим значение х1

    5п. Задание для РГР
    Вычислить корень уравнения

На отрезке [2, 3] с точностью е=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
    100 PRINT "X="; X3, "D="; D
    RETURN
    Ответ
    x= 2, 29834 T=11
    x=2, 29566 S=2
    x=2, 29754 D=2

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



(C) 2009