Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / 2 варик / ЛР1 по ЧМ.odt
Скачиваний:
6
Добавлен:
18.10.2025
Размер:
373.98 Кб
Скачать

3) Уточнение корней Метод Ньютона (вручную)

1. Исследование задания

Из условия для уравнения x + ln(4x) – 1 = 0, где F(0)*F’’(x) > 0, а F(1)*F’’(x) < 0 выберем начальное приближение к корню: x0=0.

Для получения решения уравнения методом Ньютона воспользуемся следующей рекуррентной формулой: Xn+1=Xn – F(xn) / F’(xn)

В нашем случае xn+1 = xn - (x + ln(4x) – 1) / (1+1/x)

  1. Расчет трех итераций

Для начала возьмем x0=0.01 т.к. F(0) * F’’(x) > 0.

тогда получается x1 = 0.051672 т.к.

Xn+1=Xn – F(Xn)/F’(Xn)

Xn+1=Xn – (x + ln(4x) – 1) / (1+1/x)

x2 = Xn – (x + ln(4x) – 1) / (1+1/x) =0.175727

x3 = Xn – (x + ln(4x) – 1) / (1+1/x) =0.351615

Таблица 1.1 — результаты

n

xn

F(xn)

0

0.01

-4.208876

1

0.051672

-2.524872

2

0.175727

-1.176801

3

0.351615

-0.30731

После 3 итераций x3= 0.351615

  1. Погрешность численного решения нелинейных уравнений

Оценим погрешность после трех итераций по формуле:

ε = |F(x3)| / m1 = 0.30731/ 2 = 0.153655

Метод половинного деления (на программе)

1. Исследование задания

Метод половинного деления сходится, если на выбранном отрезке отделен один корень. Так как на отрезке [0;1] функция x + ln(4x) – 1 = 0 меняет знак(f(0)*f(1)<0) и монотонна (f’(x)>0), то условие сходимости выполняется.

Начальным приближением является середина отрезка [0;1]:x0=(a+b)/2=0.5.

  1. Результаты программы.

Cоздать функцию, реализующую метод половинного деления

Функция для вычисления приближенного значения

import math print("Введите исходные данные: ") print("a = ", end='') a = float(input()) print("b = ", end='') b = float(input()) print("eps = ", end='') e = float(input()) print("Вы ввели: ") print("a = %.2f b = %.2f eps = %.2e" % (a, b, e)) y = 3.0 * math.sin(a**0.5) + a - 3.0 n = 0 x = 0 z = 0 while abs(b - a) >= e: x = (a + b) / 2 z = 3.0 * math.sin(x**0.5) + x - 3.0 n = n + 1 if y * z < 0: b = x

print(f'промеежуточное значение x:{x}') print(f'промеежуточное значение z:{z}')

else: a = x y = z

print(f'промеежуточное значение x:{x}') print(f'промеежуточное значение z:{z}')

print("x =", x, "z =", z, "n=", n)

И его результат

Введите исходные данные:

a = 0

b = 1

eps = 0.0001

1)промеежуточное значение x:0.5

промеежуточное значение z:0.1931471805599454

2)промеежуточное значение x:0.25

промеежуточное значение z:-0.75

3)промеежуточное значение x:0.375

промеежуточное значение z:-0.21953489189183562

4)промеежуточное значение x:0.4375

промеежуточное значение z:-0.0028842120645773406

5)промеежуточное значение x:0.46875

промеежуточное значение z:0.0973586594223741

6)промеежуточное значение x:0.453125

промеежуточное значение z:0.047832107746692776

7)промеежуточное значение x:0.4453125

промеежуточное значение z:0.022627865034823724

8)промеежуточное значение x:0.44140625

промеежуточное значение z:0.009910985352668877

9)промеежуточное значение x:0.439453125

промеежуточное значение z:0.003523263284803013

10)промеежуточное значение x:0.4384765625

промеежуточное значение z:0.0003220057626918127

11)промеежуточное значение x:0.43798828125

промеежуточное значение z:-0.0012804817307117133

12)промеежуточное значение x:0.438232421875

промеежуточное значение z:-0.00047908280207387133

13)промеежуточное значение x:0.4383544921875

промеежуточное значение z:-7.84997458155301e-05

14)промеежуточное значение x:0.43841552734375

промеежуточное значение z:0.00012176269920782801

x = 0.43841552734375 z = 0.00012176269920782801 n= 14

После трех итераций приближение к корню x3=0.4375

    Таблица 2.1 — результаты программы

x

f(x)

f’(x)

f’’(x)

0

-1

+∞

-∞

0.2

-0.21221334

6

-25

0.4

0.35551145

3.5

-6.25

0.6

0.82377543

2.66666667

-2.77777778

0.8

1.23508453

2.25

-1.5625

1

1.60943791

2

-1

    Таблица 2.2 — результаты программы

      к

      x

      f(x)

      1

    0.5

    0.1931471805599454

    2

      0.25

      -0.75

      3

      0.375

      -0.21953489189183562

      4

      0.4375

      -0.002884212064577340

    Выводы

  • Проведён анализ поставленной задачи. Необходимо было выбрать индивидуальное задание, отделить корни заданного уравнения графическим и аналитическим методом, для каждого из заданных методов провести исследование функции нелинейного уравнения, с использованием итерационной формулы 1-го заданного метода провести расчет трех итераций с использованием средств мат. пакета, оценить погрешность результата после 3-х итераций, для 2-го заданного метода выполнить решение уравнения с точностью 10-4, создав программу, реализующую заданный метод.

  • Результаты предварительного и программного расчётов, приведены в разделе 2 и 3.

  • Заполнены необходимые таблицы зависимых величин.

Соседние файлы в папке 2 варик