|
Nyuton usuli (Classic Newton's Method)
|
bet | 3/3 | Sana | 18.05.2024 | Hajmi | 282,39 Kb. | | #241344 |
Bog'liq AL SHT Nyuton usuli (Classic Newton's Method): Afzalliklar: Odatda tezroq aniqlanadi, xilligi ustun, sharoyita funksiyalarga yaxshi ishlaydi. Tez konvergentlik (tiz ko‘tarilishi)ga ega bo‘ladi.
Chegaralar: Bazi funksiyalarda konvergensiya yomon bo‘lishi mumkin, masalan, funksiya manbalari orasida xillikning yo‘qolishi. Agar boshlang'ich taxmin yomon bo‘lsa, divergensiya (uzayish) mumkin. Ferma nuqtalari va ekstremumlar kabi xossalar uchun ishlamaydi. Newton-Raphson usuli: Afzalliklar: Nyuton usuliga o‘xshash tezroq aniqlanadi va konvergentlik darajasi yuqori. Avvalgi takminlarni o‘zlashtiradi, shuning uchun avvalgi taxminlardan boshlab hisoblashga talab qilmaydi. Chegaralar: Bazi funksiyalarda (masalan, kuchi tez o‘zgaruvchilarga ega bo‘lgan funksiyalar) divergensiya mumkin. Funksiyaning manbasida joylashgan taxminlar qo‘llanishda kichik nuqtada to‘xtab qolish muammolari uchun qo‘llanilmaydi. Funksiya o‘zining manbalarida yo‘qolishi yoki nolga tengligi yoki fermaga yaqinligi, ushbu usulni ishlata olmaganligining sababi bo‘lishi mumkin.
Umuman olganda, agar funksiya o‘zining manbalari orasida xillikning yo‘qolishi yo‘q bo‘lsa, Newton-Raphson usuli odatda eng yaxshi natijalarni beradi. Ammo, agar funksiya taxmin bilan berilgan diapazon chegarasida divergent bo‘lsa yoki ferma nuqtalari yoki ekstremumlar kabi muammolar mavjud bo‘lsa, bu usulning ishlashida muammolar yuzaga kelishi mumkin.
Nyuton usuli esa boshlang‘ich taxminning mosligiga qarab yaxshi natijalarni berishi mumkin, ammo agar funksiya o‘zining manbalari orasida xillikning yo‘qolishi bo‘lsa, yoki diapazon taxmin bilan berilgan chegarada divergent bo‘lsa, yoki boshqa muammolar mavjud bo‘lsa, usul divergent bo‘lishi mumkin.
3.Chiziqli dasturlash masalasini hosil qiling:
n1=4, n2=6, n3=8
Geometrik usulda mumkin bo‘lgan yechimlar sohasini toping. Tayanach yechimlarni aniqlang. Optimal yechimni toping.
Egizak masalani shakllantiring va u uchun ChDM tuzib, tayanch yechimlarni aniqlang. Shuningdek geometrik usulda optimal yechimni toping.
Kodi
import numpy as np
def linprog(c, A, b):
n = len(c)
m = len(A)
x = np.zeros(n)
# Başlangıç atamaları
lambda_ = np.zeros(m)
s = np.zeros(n)
# İterasyon parametreleri
iter = 0
MAX_ITER = 1000
tol = 1e-6
while iter < MAX_ITER:
# Primal adım
for i in range(n):
sum1 = np.dot(A[:,i], lambda_)
s[i] = max(-c[i] + sum1, 0.0)
sum2 = np.dot(A, s)
lambda_ = np.maximum(lambda_ + b - sum2, 0.0)
max_s = np.max(s)
max_lambda = np.max(lambda_)
max_gap = max(max_s, max_lambda)
if max_gap < tol:
break
iter += 1
obj_value = np.dot(c, s)
x = s
x = np.append(x, obj_value)
return x
A = np.array([[15, 10, 5], [10, 4, 12], [4, 15, 10]])
b = np.array([35*1, 35*1, 20*2])
c = np.array([-1800, -2000, -1500])
# Lineer programı çöz
res = linprog(c, A, b)
print("Optimal sonuç:", res[-1])
print("x1:", res[0])
print("x2:", res[1])
print("x3:", res[2])
Начало формы
|
| |