Sadə iterasiya üsulu Verilmiş f (x) = 0 tənliyinin həqiqi c0 kökünün təqribi qiymətini hesablamaq üçün tətbiq olunan (parçanı yarı bölmə üsulu, vətərlər və toxunanlar) üsulların ümumi cəhəti ondan ibarətdir ki, eyni növ proses ardıcıl olaraq təkrar olunur və hər dəfə təkrar olunduqca c0 kökünə daha yaxın təqribi qiymətlər alınır. Belə üsullara iterasiya (latınca mənası təkrar olunan «iteratio» sözündən götürülmüşdür) və ya ardıcıl yaxınlaşma üsulu deyilir. Tənliyin təqribi həlli üçün iterasiya üsulu ümumi şəkildə aşağıdakı kimi tətbiq olunur: f (x) = 0 tənliyi x = ψ (x) ekvivalent şəklində yazılır. x = ψ (x) tənliyinin c0 kökünü ayıran [a,b] parçasının hər hansı x0 nöqtəsini götürərək, onu sıfırıncı yaxınlaşma hesab edirik. Sonra birinci yaxınlaşma olan x1 qiymətini x = ψ (x) tənliyindən x = ψ (x) şəklində tapırıq.
Bundan sonrakı yaxınlaşmalar aşağıdakı şəkildə qurulur: x2 = ψ (x1), x3 = ψ (x1), . . . . . . . . . xn = ψ (xn-1 ), . . . . . . . . . Əgər qurulan {xn} ardıcıllığı yığılandırsa, onda onun limiti x = ψ (x) tənliyinin həlli olar. Doğrudan da, ψ (x)funksiyasının kəsilməz olduğunu qəbul etsək, onda: və ya c0 = ψ (c0) Bu onu göstərir ki, c0 ədədi x = ψ (x) tənliyinin köküdür.
Sadə iterasiya üsulunun həndəsi mənası aşağıdakı şəkillərdə göstərilmişdir: İterasiya prosesi yığılır(ψ’(x) < 0) İterasiya prosesi yığılır(ψ’(x) > 0)
İterasiya prosesi dağılır(ψ’(x) > 0) Qurulan iterasiya prosesinin yığılması haqqında aşağıdakı teorem doğrudur: Teorem. Tutaq ki, ψ(x) funksiyası x = ψ (x) tənliyinin kökünü ayıran [a,b] parçasında diferensiallanandır və onun törəməsi həmin parçanın bütün nöqtələrində bərabərsizliyini ödəyir. Bu halda əgər şərti ödənilirsə, onda iterasiya prosesi yığılandır və sıfırıncı yaxınlaşma olaraq [a,b] parçasının istənilən x0 nöqtəsini götürmək olar.
Turbo Pascalda proqram
Misal 10. Tənliyin kökünü [-1, 0] və [1, 2] parçasında tapın: y = x2 -sin x-1 Həlli: >> [x,f,e_flag,inform]=fzero('x^2-sin(x)-1',[-1, 0]) x = -0.6367 f = 0 e_flag = 1 inform =1 iterations: 8 funcCount: 8 algorithm: 'bisection, interpolation' >> [x,f,e_flag,inform]=fzero('x^2-sin(x)-1',[1, 2])
x = 1.4096 f = -1.1102e-016 e_flag = 1 inform =1 iterations: 10 funcCount: 10 algorithm: 'bisection, interpolation' Matlab mühitində cəbri və transsendent tənliklərin həlli aşağıdakı şəkildə qurulan funksiyalar vasitəsilə yerinə yetirilir: solve( ), fzero( ), roots( ). Qurulan funksiyaların köməyi ilə tənliklərin həlli texnologiyaları çox sadədir. Bunlara aid misallara baxaq. solve( ) funksiyası aşağıdakı şəkildə təqdim olunur: solve ( 'f(x) ', x ) burada 'f(x)'-verilən tənlik, x-axtarılan naməlum dəyişəndir. f(x)=0 tənliyini istənilən şəkildə yaza bilərik. Belə ki, əgər “=” işarəsi buraxılarsa, onda proqram tənliyi f(x)=0 şəklində qəbul edəcəkdir.
Tənliyin həlli zamanı x arqumentini yazmamaq olar. solve( ) funksiyasının köməyi ilə tənliklərin köklərinin təyin olunması texnologiyasına misallar üzərində baxaq: Misal 11.x3 -2x -7 =0 tənliyinin həllini tapmalı. Tənliyin həlli proqramı bu şəkildədir: >> Y = solve('x^3-2*x-7=0') düyməsini sıxdıqdan sonra tənliyin həllini alırıq: Y = 2.2582 Misal 12. 2x - 4x + 3 = 0 tənliyinin köklərini tapmalı. Tənliyin həlli proqramı və nəticə aşağıdakı kimidir: >> Y = solve('2.^x-4*x+3=0') Y = 1.418 , 3.413 Beləliklə, tənliyin hər iki kökü tapıldı. solve( ) funksiyası f(x)=0 tənliyinin həqiqi kökləri ilə yanaşı, kompleks köklərini də tapır. Bunu misal üzərində nümayiş etdirək: sin( x) + ln( x) + ex – 1= 0 proqram və nəticə aşağıdakı kimi olacaqdır:
>> Y = solve('sin(x)+log(x)+exp(x)-1=0') Y = 3.055 – 1.71447 i solve( ) funksiyasının əsas üstünlüyü ondan ibarətdir ki, o tənliyin həllini analitik şəkildə təqdim edir. Misal 13. Tənliyin həllini tapın: 2x -3(a-b) =0 >> Y=solve('2^x-3*(a-b)=0') Y = log(2, 3*a - 3*b) solve( ) funksiyasının çatışmayan cəhəti ondan ibarətdir ki, bu funksiya kökün başlanğıc qiyməti və ya onun axtarıldığı interval haqqında informasiya tələb etmir. Ona görə də transsendent tənliklər olan hallarda və bir sıra digər hallarda solve( ) funksiyası vasitəsilə tənliyin bütün köklərini tapmaq mümkün olmur. Bunlara misal olaraq aşağıdakı tənlikləri göstərmək olar: x! - 2x - 2 = 0, x2 + 4sin x - 2 = 0 və s.
Matlab sistemində fzero( ) funksiyasının aşağıdakı variantları mövcuddur: fzero ( 'f(x) ', x ) fzero ( 'f(x) ', [x1, x2] ) fzero ( 'f(x) ', x, tol, trace ) fzero ( 'f(x) ', [x1, x2], tol ) fzero ('f(x) ', [x1, x2], tol, trace ), burada, 'f(x) ' –həlli axtarılan tənlik; x – kökün başlanğıc qiyməti; [x1, x2] – kökün axtarıldığı interval; tol – kökün hesablama xətası; trace – iterasiyaların sayı; Tənliklərin köklərinin təyin olunması texnologiyalarını misallar üzərində nümayiş etdirək. Misal 14. 2 x - 4x + xcos x = 0 tənliyinin köklərini x 1 və x 4 qiymətləri yaxınlığında tapmalı. Həlli: >> Y = fzero('2^x-4*x+x*cos(x) ', 1 ) Y = 0.43773 >> Y = fzero('2^x-4*x+x*cos(x) ', 4 ) Y = 4.2395
Misal 16. 2x6 - 4x4 + x3 - 2x2 +1= 0 tənliyinin köklərini roots( ) funksiyasının köməyi ilə tapmalı: Proqram və onun nəticəsi aşağıdakı kimidir: >>Y = roots ( [2 0 -4 1 -2 0 1] ) düyməsini sıxdıqdan sonra aşağıdakı cavabları alarıq: Y = -1.618 , 1.4215 , 0.056096 + 0.80988i , 0.056096 - 0.80988i , 0.61803 , -0.5337 Əgər verilən çoxhədlidə xk həddi iştirak etmirsə, onda bu halda ak = 0 qəbul edilir.