Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Розв’язання нелінійних рівнянь

Автор:   •  Сентябрь 28, 2023  •  Лабораторная работа  •  995 Слов (4 Страниц)  •  53 Просмотры

Страница 1 из 4

                                Лабораторна работа №1

                              Розв’язання нелінійних рівнянь. 

Виконав : Ковальов Ілля

Група: САТР-32


                                                                      Використана теорія: [pic 1]

[pic 2]




[pic 3][pic 4][pic 5]

                                             Графік заданої функції:

  x*x*x + sinx – 12x + 1 = 0

[pic 6]


[pic 7]

[pic 8][pic 9][pic 10][pic 11]


                Код методу простої ітерації на Python[pic 12][pic 13][pic 14]

import math

eps =
0.0001
delta = 0.25
a = -4
b = -3.5


def func(x):
   
return x ** 3 + math.sin(x) - 12 * x + 1


def fiFunc1(x):
   
return (x ** 3 + math.sin(x) + 1) / 12


def primeFiFunc1(x):
   
return (math.cos(x) + 3 * x * x) / 12


def zbishnist_1_for_1(a, b):
   
if primeFiFunc1(a) > primeFiFunc1(b):
       
return primeFiFunc1(a)
   
else:
       
return primeFiFunc1(b)


q1 = zbishnist_1_for_1(a, b)

def zbishnist_2_1_for_1(x0):
   
return abs(fiFunc1(x0) - x0)


def q_1(x):
   
return (1 - q1) * delta


def checkConvergence1(x):
   
if q_1(x) > zbishnist_2_1_for_1(x):
       
return "True"
   
else:
       
return "False"


def fiFunc2(x):
   
return (12 - (math.sin(x) + 1) / x) ** (1 / 2)


def primeFiFunc2(x):
   
return abs((math.sin(x) - x * math.cos(x) + 1) / (2 * x ** 2 * (-(math.sin(x) - 12 * x + 1) / x) ** (1 / 2)))


def zbishnist_1_for_2(a, b):
   
if primeFiFunc2(a) > primeFiFunc2(b):
       
return primeFiFunc2(a)
   
else:
       
return primeFiFunc2(b)

q2 = zbishnist_1_for_2(a, b)

def zbishnist_2_1_for_2(x0):
   
return abs(fiFunc2(x0) - x0)


def q_2(x):
   
return (1 - q2) * delta


def checkConvergence2(x):
   
if q_2(x) > zbishnist_2_1_for_2(x):
       
return "True"
   
else:
       
return "False"


def AnswerCon(q, riznica, delta, answer, func_num):
   
print("------------------------------")
   
print("q = ", q)
   
print("|fi(x0) - x0| = ", riznica)
   
print("(1 - q) * delta = ", delta)
   
print("Convergence ", func_num, ":", answer)
   
return "------------------------------"


[pic 15]


[pic 16]


[pic 17]

Код методу Ньютона

import math

x0 = -
4
eps = 0.0001
a = -4
b = -3.5
delta = 0.5


def func(x):
   
return x ** 3 + math.sin(x) - 12 * x + 1


def primeFunc(x):
   
return 3 * x * x + math.cos(x) - 12


def doublePrimeFunc(x):
   
return 6 * x - math.sin(x)


def inital_approx(a, b):
   
if func(a) * doublePrimeFunc(a) > 0:
       
return a
   
elif func(b) * doublePrimeFunc(b):
       
return b
   
else:
       
return "f(x0) * f``(x0) < 0"


def m1(a, b):
   
return min(abs(primeFunc(a)), abs(primeFunc(b)))


def M2(a, b):
   
return max(abs(doublePrimeFunc(a)), abs(doublePrimeFunc(b)))


def q(a, b):
   
if (M2(a, b) * delta) / (2 * m1(a, b)) < 1:
       
return (M2(a, b) * delta) / (2 * m1(a, b))
   
else:
       
return "q > 1"

q_value = q(a, b)

def itterations(x0):
   i =
1
   
print("___________________________________")
   
print("Значення х 0: ", x0)
   
print("___________________________________")
   
while True:
       x1 = x0 - func(x0)/primeFunc(x0)
       
print("Номер ітерації:", i)

       
print("Значення х", i," :", x1)
       
print("===================================")


       
if abs(x1 - x0) <= eps:
           
break
       
i += 1
       
x0 = x1

   
print("Апостеріорна оцінка: ", i)
   
print()
   
print("Апріорна оцінка:\n", "[", apriorna_ozinka(-4, x1) -1, "]","+ 1", "=", math.floor(apriorna_ozinka(-4, x1)))

...

Скачать:   txt (5.2 Kb)   pdf (1.4 Mb)   docx (1.2 Mb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club