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

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

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

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

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

В нашем случае xn+1 = xn - (3*sin (xn 1/2) + x – 3) / (3*cos(xn 1/2)*1/(2 * xn 1/2)+1)

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

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

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

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

Xn+1=Xn – (3*sin (xn 1/2) + x – 3) / (3*cos(xn 1/2)*1/(2*xn ½) + 1)

x2 = Xn – (3*sin (xn 1/2) + x – 3) / (3*cos(xn 1/2)*1/(2*xn ½) + 1) =0.5544180221

x3 = Xn – (3*sin (xn 1/2) + x – 3) / (3*cos(xn 1/2)*1/(2*xn ½) + 1) =0.7206805341

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

n

xn

F(xn)

0

0.01

-2.6904997501

1

0.1789475161

-1.5894989539

2

0.5544180221

-0.4125653196

3

0.7206805341

-0.0275999758

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

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

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

ε = |F(x3)| / m1 = 0.0152447858

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

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

Метод половинного деления сходится, если на выбранном отрезке отделен один корень. Так как на отрезке [0;1] функция 3 sin (x1/2) + x – 3 = 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.5510891827598128

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вы ввели:

a = 0.00 b = 1.00 eps = 1.00e-04

x = 0.73345947265625 z = -2.9687374210940476e-05 n= 14

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

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

x

f(x)

f’(x)

f’’(x)

0.

-3.

inf

nan

0.2

-1.50263548

4.0242448

-24.30354168

0.4

-0.82661865

2.91296867

-8.28199584

0.6

-0.30171639

2.38401678

-4.33432679

0.8

0.13955195

2.04977627

-2.69944048

1.

0.52441295

1.81045346

-1.84678343

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

      к

      x

      f(x)

      1

    0.5

    0.5510891827598128

    2

      0.75

      0.0352799442488676

      3

      0.625

      0.24273818796250035

      4

      0.6875

      0.10041505996154187

    Выводы

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

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

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