QISQA XABARLAR
UDC 677.051.178.3
TENGLAMALAR SISTEMASINI SONLI YECHISH ALGORITMLARI
Mirzakarimov Mirsharoffiddin Mirzaabduraximovich Namangan muhandislik-texnologiya instituti, katta o'qituvchi E-mail: [email protected]
Anotatsiya. Maqolada matematikaning va hisoblash texnikasining muhim bo'limlaridan biri bo'lib tenglamalar sistemalarini aniq sonli usullar yordamida yechishga yo'naltirilgan. Ushbu algoritmlar ko'p qirrali bo'lib, muhandislik, fizika, iqtisodiyot, va boshqa ko'plab fanlarda keng qo'llaniladi. Mavzuning ahamiyati shundaki, sonli usullar real dunyoda qiyin va murakkab muammolarni yechishda yordam beradi, bunda analitik usullar yetarli bo'lmasligi mumkin. Shu sababli, sonli algoritmlarni chuqur o'rganish va ularni to'g'ri qo'llash katta ahamiyatga ega.
Аннотация. Статья является одним из важных разделов математики и информатики. В этой теме основное внимание уделяется решению систем уравнений с использованием точных численных методов. Эти алгоритмы универсальны и широко используются в технике, физике, экономике и многих других дисциплинах. Важность темы заключается в том, что численные методы могут помочь решить трудные и сложные задачи в реальном мире, где аналитических методов может быть недостаточно. Поэтому важно глубоко изучать численные алгоритмы и правильно их применять.
Abstract. The article deals with one of the important sections of mathematics and computer science. This topic is focused on solving systems of equations using exact numerical methods. These algorithms are versatile and are widely used in engineering, physics, economics, and many other sciences. The importance of the topic is that numerical methods help solve difficult and complex problems in the real world, where analytical methods may not be enough. Therefore, it is of great importance to study numerical algorithms in depth and apply them correctly.
Kalit so'zlar: sonli yechish algoritmlari, tenglamalar sistemasi, gauss usuli, iteratsion usullar, matematik tahlil, hisoblash texnikasi, sonli stabil, amaliy matematika, hisoblash algoritmlari, Tizimli yechimlar, hisoblash modellashtirish, raqamli metodlar.
Ключевые слова: алгоритмы численного решения, система уравнений, метод Гаусса, итерационные методы, математический анализ, вычислительные методы, численная устойчивость, прикладная математика, вычислительные алгоритмы, Систематические решения, компьютерное моделирование, численные методы.
Keywords: numerical solution algorithms, system of equations, Gaussian method, iterative methods, mathematical analysis, computational techniques, numerical stability, applied mathematics, computational algorithms, Systematic solutions, computational modeling, numerical methods.
Kirish
Tenglamalar sistemasini sonli yechish algoritmlari zamonaviy matematika va hisoblash texnikasining ajralmas qismi hisoblanadi. Ushbu mavzu turli ilmiy va texnik sohalarda keng qo'llaniladi, chunki ko'plab amaliy masalalar tenglamalar sistemalarini yechishni talab qiladi. Tenglamalar sistemasi bir necha o'zgaruvchiga ega bo'lgan bir nechta tenglamalardan iborat bo'lib, ularni aniq yechishning sonli usullari matematik tahlil va hisoblash texnikalarini qo'llashni talab etadi.
Sonli yechish algoritmlarining rivojlanishi va qo'llanilishi muhandislik, fizika, iqtisodiyot va biologiya kabi ko'plab sohalarda yangi imkoniyatlar yaratdi. An'anaviy analitik usullar ba'zan murakkab tenglamalar sistemalarini yechishda yetarli bo'lmaydi yoki juda murakkab bo'lib chiqadi, shuning uchun sonli usullar o'zining aniqligi va samaradorligi bilan ajralib turadi.
Mexanika va Texnologiya ilmiy jurnali 5-jild, 4-son, 2024
QISQA XABARLAR
Ushbu maqolada biz tenglamalar sistemasini yechishda qo'llaniladigan asosiy sonli algoritmlar, ularning xususiyatlari va qo'llanish sohalari bilan tanishamiz. Shuningdek, biz ba'zi algoritmlarning afzalliklari va kamchiliklarini tahlil qilamiz va ularning samaradorligini oshirish yo'llarini ko'rib chiqamiz. Faraz qilaylik,
Ax = b (1)
tizim biror usul bilan
x + Cx + f (2)
ko'rinishga keltirilgan bo'lsin, bu erda C-qandaydir matritsa, f-vektor ustun. Dastlabki yaqinlashish vektori x(0) biror usul bilan (masalan, x(0)=0) topilgan bo'lsin. Agar keyingi yaqinlashishlar
x(k+1) = Cx(k) + f (k=0,1,2,...)
rekkurent formula yordamida topilsa, bunday usul oddiy iteratsiya usuli deyiladi. Agarda C matritsa elementlari
I \Cj < a < 1
i=1
va
ICj <ß< 1
(i = 1,2,...,«)
(j = 1,2,...,«)
(3)
(4)
i=1
shartlardan birortasini qanoatlantirsa, u xolda iteratsion jarayon berilgan tenglamaning x yechimiga ixtiyoriy boshlangich x(0) vektorda yaqinlashishi isbotlangan, ya'ni
x = lim x(k )
k
Shunday qilib, tizimning aniq yechimi cheksiz qadamlar natijasida -hosil qilinadi va hosil qilingan ketma-ketlikning ixtiyoriy vektori taqribiy echimni beradi. Bu taqribiy echimning xatoligini quyidagi formulalardan biri orqali ifodalash mumkin:
(
X, - x(k >|< a
1 — a
max j=1,2,..«
x (k ) — x (k—1) Xj Xj
agarda (3) shart bajarilsa, yoki
x, — x,(k
ß
1—ß
I
j=1
x j)— x (k—1)
(5)
(6)
agarda (4) shart bajarilsa. Bu baxolarni mos ravishda quyidagicha kuchaytirish mumkin:
(xi
yoki
mx
I x,
j=1
x
<
a
max
x
1 — a
(k ><ßt
x
(k )_ x (k—1)
1 — ß j=1
x (k )— x (k—1)
xj xj
Iteratsion jarayonlarni yuqoridagi baxolar oldindan berilgan aniqlikni qanoatlantirganda tugallaydilar.
Boshlangich x(0) vektor, umuman olganda, ixtiyoriy tanlanishi mumkin. Ba'zan x(0)=f deb olishadi. Ammo x(0) vektorning komponentlari sifatida noma'lumlarning qo'pol taxminlarda aniqlangan qiymatlari olinadi.
(1) tizimni (2) korinishga keltirishni bir necha xil usullarda amalga oshirish mumkin. Faqat (3) yoki (4) shartlardan birortasining bajarilishi lozim. Shunday usullardan ikkitasiga
Mexanika va Texnologiya ilmiy jurnali
5-jild, 4-son, 2024
n
V
QISQA XABARLAR
to'xtalamiz.
"Birinchi usul. Agarda A matritsaning diagonal elementlari noldan farqli bo'lsa, ya'ni
(I=1,2,..., n)
u xolda berilgan tizimni
' * ,)
Xo —
an *0
1
X1 — -
a11
1 (b2 -
a22
b1 - al2X2 - •••- a1nXn) ' a22X1 - a23X3 -a2nXn )
(7)
Xn — (bn - an1 X1 - •••- a n,n—1 Xn-1) ann
Ko'rinishda yozish mumkin. Bu xolda C matritsa elementlari quyidagicha aniqlanadi:
Cj —
a
j
a,-
(i * j ), cit — 0
hamda (3) va (4) shartlar mos ravishda quyidagi ko'rinishni qabul qiladi:
n a,-
I
< a < 1
j—1 aii
J *i
JL a;
i—1 aii
<ß< 1
(i —n)
(j — u-,«)
(8) va (9) tengsizliklar A matritsaning diagonal elementlari
la»l >I|'
J *i
(i —1,2,..., n)
(8)
(9) (10)
shartlarni qanoatlantirganda o'rinli bo'ladi.
Ikkinchi usul. Bu usulni quyidagi misol orqali namoyish qilamiz.
Umuman olganda, har qanday keltirilmagan matritsali tizim uchun yaqinlashuvchi iteratsion usullar mavjud, ammo ularning barchasi hisoblash uchun qulay emas.
Agarda iteratsiya usuli yaqinlashuvchi bo'lsa, u xolda bu usul yuqorida ko'rilgan usullardan quyidagi afzalliklarga ega bo'ladi:
1. Iteratsion jarayon tezroq yaqinlashsa, ya'ni tizimning yechimini aniqlash uchunp dan kamrok iteratsiya talab qilinsa, u xolda vaqtdan yutiladi, chunki arifmetik amallar soni p2 ga mutanosib (proportsional) (Gauss usuli uchun esa bu sonp3 ga mutanosib).
2. Yaxlitlash xatoliklari iteratsiya usulida natijaga kamroq ta'sir etadi. Bundan tashqari iteratsiya usuli o'z xatoligini to'g'rilab boruvchi usuldir.
3. Iteratsiya usuli tizimning muayyan koeffitsientlari nolga teng bo'lgan holda juda ham qulaylashadi. Bunday tizimlar xususiy hosilali differentsial tenglamalarni yechganda ko'proq uchraydi.
4. Iteratsiya jarayonida bir xil turdagi amallar bajariladi, bu esa EHM uchun
programmalashtirishni osonlashtiradi.
1-misol. Tenglamalar sistemasini e = 0,001 aniqlikda oddiy iteratsiya usuli bilan yeching:
Mexanika va Texnologiya ilmiy jurnali
5-jild, 4-son, 2024
a
iJ
QISQA XABARLAR 0.32 < |(
Yechish:
0.24 + 1-0.03 0.09 + 1-0.15 0.04 + 10.081
Demak iteratsiya yaqinlashadi
i =
Nolinchi yaqinlashish:
-0.06 0.02: a = 0 0.05
0.02 0
Quyidagi formula yordamida hisoblashni davom ettiramiz
.(k-1) „o =
/1.9094\
x(2> = ß + ctrCli = 3.1944 ],xJZ) = 1.9094;Jti"'' = 3.1944;i® = 5.0446. \5.0446' /1.90923\
jcC3) = ß + ax(-2} = 3.19495 l,*^ = 1.90923;je;3' = 3.19495;^g3'' = 5.04485. \5.04485/ Shunda natijaviy jadvalni hosil qilamiz:
Yaqinlashish (k) xi x2
0 2 3 5
1 1.92 3.19 5.04 0.08 0.19 0.04
2 1.9094 3.1944 5.0446 0.0106 0.0044 0.0046
3 1.90923 3.19495 5.04485 0.00017 0.00055 0.00025
Bunda v: - v: = :.::::?=: ■, - v.: = ■, ■■■::-v::
bajariladi. x = x'-3: chiziqli tenglamalar sistemasining yechimi bo'ladi.
Ushbu algoritmni C++ tilida dasturlaymiz: #include<iostream> #include<math.h> using namespace std; // vektorni klon qilish funksiyasi
double* VektorniKopuya(double *b)
{
double *temp = new double[3];
for (int i = 0; i < 3; i++) {
temp[i] = b[i];
}
return temp;
Mexanika va Texnologiya ilmiy jurnali
shart
5-jild, 4-son, 2024
QISQA XABARLAR
}
//Ozod Hadlarni Birinchisiga bo'lish funksiyasi
double* OzodHadlarniBirinchisigaBul(double *b, int satr = 0, double x = 0)
{
for (int i = 0; i < 3; i++) if (satr == i) b[i] /= x; return b;
}
double** BirinchisigaBolish(double **a, int satr , double x )
{
//matritsani birinchi koeffisientga bo'lish; for (int i = 0; i < 3; i++){
a[satr][i] = a[satr][i] / x;
}
return a;
}
// matritsa dioganalini nolga aylantirish
double** DioganalniNolgaAylantir(double **a) {
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) if (i == j) a[i][j] = 0;
return a;
}
// matritsa elementlarini -1 ga ko'paytirish
double** MinusBirgaKupaytir(double **a) {
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) a[i][j] = -1.0* a[i] [j]; return a;
}
// matritsani vektorga ko'paytirish funksiyasi
double* MatritsaVektorgaKupaytir(double **a, double *b)
{
double *temp = new double[3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
temp[i] += a[i] [j] * b[j];
}
}
return temp;
}
double* VektorniVektorgaQush(double *b, double *x) {// vektorni vektorga qo'shish funksiyasi
Mexanika va Texnologiya ilmiy jurnali 5-jild, 4-son, 2024
QISQA XABARLAR
double *temp = new double[3]; for (int i = 0; i < 3; i++) temp[i] = b[i] + x[i]; return temp;
}
int main(){
double eps = 0.001;
// tenglamalar sistemasi koeffisientlari uchun ikki o'lchovli massiv double **a=new double*[3]; for(int i=0;i<3;i++){
a[i]=new double[3]; for(int j=0;j<3;j++){
cin>>a[i][j];
}
}
cout<<endl;
//double[,] a = { { 4, 0.24, -0.08 }, { 0.09, 3, -0.15 }, { 0.04, -0.08, 4 } }; double *b = new double[3];//ozod hadlar uchun massiv for(int j=0;j<3;j++){
cin>>b[j]; }
cout<<endl; // double[] b = { 8, 9, 20 }; double *beta; double *x0; double *x1;
// birinchi noma'lumni tenglikni bir tomoniga o'tkazamiz;
for (int i = 0; i < 3; i++) {
b = OzodHadlarniBirinchisigaBul(b, i, a[i][i]); a = BirinchisigaBolish(a, i, a[i][i]);
}
a = DioganalniNolgaAylantir(a); a = MinusBirgaKupaytir(a); x0 = VektorniKopuya(b); // birinchi yaqinlashuv natijasi; x1 = MatritsaVektorgaKupaytir(a, x0); x1 = VektorniVektorgaQush(x0, x1); for (int i = 0; i < 3; i++)
cout<<x0[i] << ", "; cout<<endl;
while (eps < fabs(x1[0] - x0[0])/fabs(x1[0]) && eps < fabs(x1[1] - x0[1])/fabs(x1[1]) && eps < fabs(x1[2] - x0[2])/fabs(x1[2]))
{// yaqinlashuvini tekshiramiz x0 = VektorniKopuya(x1); x1 = MatritsaVektorgaKupaytir(a, x0); x1 = VektorniVektorgaQush(b, x1); // har qadamdagi yaqinlashuv natijalari for (int i = 0; i < 3; i++)
Mexanika va Texnologiya ilmiy jurnali 5-jild, 4-son, 2024
cout<<x0[i] << ", "; cout<<endl;
QISQA XABARLAR
}
cout<<"\ntenglamalar sistemasini yyechimi:"<<endl; //tenglamalar sistemasini yechimlari
for (int i = 0; i < 3; i++) {
cout<<x1[i]<<" ";
}
}
Natijalar:
C:\Users\user\Documents\oddiy iteratsiya usuli i.exe
-0.15 13.04 -0.08
3 5
'.92', ЗЛ9, 5.04, .9094, 3.1944, 5.0446,
englamalar sistemasini yecliimi: .90923 3.19495 5.04479
rocess exited after 38.6 seconds with return value 0 ля продолжения нажмите любую клавишу . . . _
Bu dastur 3 noma'lumli tenglamalar sistemasini "oddiy iteratsiya usuli" yordamida yechilgan. Natijani olish uchun dastlab koeffisientlardan tashkil topgan massiv elementlari kiritiladi va ozod hadlardan iborat vektor elementlari kiritiladi.
Xulosa. Tenglamalar sistemasini sonli yechish algoritmlari zamonaviy matematika va hisoblash texnikasida muhim o'rin egallaydi. Ushbu algoritmlar murakkab tenglamalar sistemalarini aniq va samarali yechish imkonini beradi, bu esa muhandislik, fizika, iqtisodiyot, va boshqa ko'plab fanlarda qo'llaniladi.Sonli yechish usullari, masalan, Gauss usuli, iteratsion usullar va Newton-Raphson usuli, tenglamalar sistemalarini barqaror va samarali yechishda katta rol o'ynaydi. Bu usullar sonli stabil bo'lib, kichik xatoliklarda ham aniqlikni saqlab qoladi. Ushbu mavzuni o'rganish va qo'llash zamonaviy fan va texnologiya uchun keng imkoniyatlar yaratadi.
ADABIYOTLAR
1. Abduqodirov A.A., Fozilov F.N., Umurzoqov T.N. Hisoblash matematikasi va programmalash. Toshkent, «O'qituvchi», 1989.
2. Badalov F.B, Shodmonov G'. Sh. Riyoziy modellar va muhandislik masalalarini sonli yechish usullari. Toshkent, «Fan», 2000.
3. Xolmatov T.X.,.Toyloqov N.Sh. Amaliy matematika va kompyuterning dasturiy taminoti. Toshkent, «Mehnat», 2000.
4. Siddiqov A. Sonli usullar va programmalash. Toshkent, «O'zbekiston», 2001. 5. Боглаeв Ю.П. Вычис
5. Азларов Т., Мансуров Х., MaTeMaraK анализ, T.: "Ук;итувчи". 2 т: 1995 й. 336 б.
Mexanika va Texnologiya ilmiy jurnali 5-jild, 4-son, 2024
QISQA XABARLAR
6. AronoB ffl.A., EepgHKy^OB M.A., OyH^H^nap Ha3apH^CH, T.: "YA^EHT" MapKa3H, 2004 h. 148 6.
Internet sayti.
1. www.ziyonet.uz/
2. www.pedagog.uz/
Mexanika va Texnologiya ilmiy jurnali
5-jild, 4-son, 2024