1.4 Broyden masshtablash formulasini chiqarish
Nochiziqli skalyar tenglamaning Nyuton usullari va sekant yechimlarini qurish jarayonida. j oriy nuqtaga yaqin joylashgan f(x) funksiya chiziqli funksiya bilan almashtiriladi (affin model)
. Ikkinchisini nolga tenglashtirish, ya'ni. chiziqli tenglamaning yechimi , tenglama ildiziga yaqinliklarni hisoblash uchun iterativ formula hosil qiladi .
Agar nuqta yaqinidagi f(x) funksiya o‘rnini bosuvchi affin model shu nuqtada bir xil hosilaga ega bo‘lishini talab qilsak, ni differensiallash orqali biz koeffitsientning qiymatini olamiz , uning o‘rnini egallashi taniqli Nyuton usuliga olib keladi. Agar biz tenglik bilan bir qatorda f(x) funktsiyalari ham oldingi nuqtada mos kelishi kerakligidan kelib chiqadigan bo'lsak, ya'ni . , tengligidan ma'lum sekant formulasiga aylanadigan koeffitsientni olamiz .
Ko'rinishida qayta yozilgan tenglik sekant nisbati deb ataladi . Keling, ushbu xulosani tasvirlab beraylik.
n o'lchovli vektor fazoda sekant nisbati tenglik bilan ifodalanadi
,
Bu erda ma'lum n-o'lchovli vektorlar, berilgan chiziqli bo'lmagan xaritalash va -da qandaydir chiziqli transformatsiya matritsasi . Belgilangan holda , sekant nisbati qisqaroq belgini oladi . Xuddi bir o'lchovli holatga o'xshab, ya'ni formulaga o'xshatish orqali biz vektor tenglamasini formula bo'yicha echish uchun yaqinliklarni qidiramiz . Undagi teskari nx n-matritsani shunday tanlash kerakki, u sekant munosabatni qanoatlantiradi . Ammo bu munosabat matritsani yagona belgilab qo‘ymaydi : tenglikka qarab , n > 1 uchun berilgan n o‘lchovli vektorni boshqa berilgan vektorga aylantiruvchi ko‘plab matritsalar mavjudligini tushunish oson (shuning uchun tushunishda ravshanlik mavjud). bir o'lchovli sekant usulining turli umumlashtirishlari bo'lishi).
Matritsani shakllantirishda biz quyidagi tarzda bahslashamiz. Nuqtada mavjud F(x) funksiyaning affin modelidan nuqtadagi bir xil modelga o‘tish Bizda chiziqli transformatsiya matritsasi haqida hech qanday ma'lumot yo'q, sekantlar nisbati bundan mustasno . Shuning uchun biz ushbu o'tish davrida modeldagi o'zgarishlar minimal bo'lishi kerakligidan kelib chiqamiz. Bu o'zgarishlar farqni xarakterlaydi . Tenglikdan aniqlovchi tenglikni ayiramiz va natijani sekant nisbati yordamida o'zgartiramiz . Bizda ... bor:
aniqlangan qo'zg'almas vektorning chiziqli birikmasi va ba'zi bir vektor t unga ortogonal sifatida ifodalaylik : ,
Vektorning bu ko'rinishini farqga almashtirib, biz uning boshqa shaklini olamiz
Ifodani tahlil qilib , undagi birinchi hadni o'zgartirib bo'lmasligini ko'ramiz, chunki qo'zg'almas k uchun sobit vektor . Shuning uchun affin modelidagi minimal o'zgarish in ikkinchi hadi vektorlarga ortogonal bo'lgan har qanday vektorlar uchun nol vektor bo'lgan holatga mos keladi , ya'ni . holatidan topish kerak
To'g'ridan-to'g'ri tekshirish orqali biz shartni tasdiqlaymiz matritsani to'g'rilash bir darajali n x n matritsa ko'rinishida olinsa, qanoatlantiriladi .
S. Broyden deb ataladigan qayta hisoblash formulasiga kelamiz
2018-03-22 _ DASTURNI ISHLAB CHIQISH VA UNING ISH NATIJASINI O'RGANISH.
Vazifa. Broyden usulini amalga oshiruvchi dastur tuzing.
Dastur tuzilishi . Dastur Microsoft Integrated Application Development Environment -da ishlab chiqilgan Vizual Studio 2008 C # dasturlash tili, Konsol dasturi loyihasi ilova . Dasturning kirish ma'lumotlari boshlang'ich yechim vektori, boshlang'ich Yakobi matritsasi va qoniqarli xatodir. Dastur tenglamalar tizimini echadi . Agar dastur 10 ta takrorda talab qilinadigan aniqlikni qanoatlantiradigan yechim topmasa, u holda yechimni izlash, shuningdek, jarayon bir-biridan ajralib chiqsa (A ilovasiga muvofiq) to'xtaydi.
Biz Jacobi matritsasini kiritamiz , xato 0.3 boshlang'ich yechim aniq yechimdir. 1 iteratsiyada biz yechimning natijasini olamiz (1-rasm).
1-rasm - Dasturning birinchi namunasi
Natijada 1-bosqichdagi aniq yechim. Keling, dastlabki yechimni aniqdan farqli ravishda belgilashga harakat qilaylik (2-rasm).
2-rasm - dasturning ikkinchi misoli
Biz aniq yechimga yaqin yechim topdik. Keling, xatoni kamaytirishga harakat qilaylik (3-rasm).
3-rasm - dasturning uchinchi misoli
Biz aniq yechim topdik. Dastlabki yechimdagi aniq yechimdan kuchliroq chetlashishga harakat qilaylik (4-rasm).
4-rasm - Dasturning to'rtinchi misoli
Biz aniq yechimni olamiz. Keling, xatoni kamaytiraylik va aniq echimdan uzoqlashaylik. Endi dastlabki yechim ixtiyoriydir (5-rasm).
5-rasm - Dasturning beshinchi misoli
Biz takrorlashlar sonining ko'payishini ko'ramiz. Yechim to'g'ri edi. Dastlabki Yakobi matritsasini biroz o'zgartiramiz (6-rasm).
6-rasm - Dasturning oltinchi misoli
Takrorlashlar sonini ko'paytirish. Yechim aniq. Endi yana bir Yakobi matritsasini olaylik (7-rasm).
7-rasm - Dasturning ettinchi misoli
Noto'g'ri qaror qabul qildi. Keling, nima uchun ekanligini tushunishga harakat qilaylik. Yoki tadqiqot boshida Yakobi matritsasi hosilalarning chekli ayirmalari yaqinlashuviga asoslangan hisoblangan Yakobi matritsasiga yaqin edi yoki bunday boshlang‘ich yechim bilan juda ko‘p takrorlash talab etiladi.
Keling, boshlang'ich Jacobi matritsasi bilan harakat qilaylik. Qaror qabul qilish jarayoni turlicha bo'la boshladi. Dastlabki yechim tufayli yechimlarni topa olmadik degan xulosaga keldik (8-rasm).
8-rasm - Dasturning sakkizinchi misoli
9-rasm, 10-rasm va 11-rasmga asoslanib, biz birinchi Yakobi matritsasi yaxshi tanlanganligini ko'ramiz.
Yakobi matritsasi birinchi Jakobi matritsasiga yaqin (12-rasm).
9-rasm - Dasturning to'qqizinchi misoli
10-rasm - Dasturning o'ninchi misoli
11-rasm - Dasturning o'n birinchi misoli
12-rasm - Dasturning o'n ikkinchi misoli
Dastur orqali yechilgan tenglamalar tizimini o'zgartirishga harakat qilib, dastur natijalarini ko'rib chiqamiz (13.14-rasm).
13-rasm - Dasturning o'n uchinchi misoli
14-rasm - Dasturning o'n to'rtinchi misoli
XULOSA
Agar boshlang'ich yaqinlashish yechimga etarlicha yaqin tanlangan bo'lsa va Yakobi matritsasining dastlabki yaqinlashuvi etarlicha aniq bo'lsa, u holda Broyden usuli superchiziqli yaqinlashishga ega, ammo Nyuton usuli kabi kvadratik emas.
Ushbu kurs ishi to'liq bajarildi. Kurs ishida Broyden usuli ko'rib chiqildi, uni amalga oshiradigan dastur yozildi.
Do'stlaringiz bilan baham: |