1-laboratoriya ishi taqribiy integrallash usullari. Zaruriy aniqlikni ta’minlovchi qadamni tanlash. Nazariy qism



Download 0,66 Mb.
bet2/2
Sana01.07.2022
Hajmi0,66 Mb.
#727092
1   2
Bog'liq
LI1

Topshiriq
Variant №1: Berilgan integralni Simpson hamda Monte-Karlo usulida [a;b] oraliqda hisoblang. Oraliqni bo’linish soni N hamda sinovlar soni M ko’rsatilgan.

f(x)

[a;b]

N

M



[0;1]

12

100


Blok-sxemasi:



Funksiya grafigi:

Quyida shu misolning C++ dastur kodi va natijasi keltirilgan.
Dastur:
#include
#include
#include
using namespace std;

float function(float x){


return sin(x+3)*log(pow(x,2)+3*x+1);
}

int main(){


int N, M, m, m1=0, m2=0;
float a, b, h, f_max, f_min, P1, P2, S=0, MK=0;
cout<<"Funksiya: f(x) = sin(x+3)*ln(x^2+3*x+1)\n";
cout<<"\na = "; cin>>a;
cout<<"\nb = "; cin>>b;
cout<<"\nN = "; cin>>N;
cout<<"\nM = "; cin>>M;

cout<<"\n\nIntegralni Simpson usulida hisoblaymiz:\n";
if (N%2==0){
h=(b-a)/N;
m=N/2;
for(int i=1; i<=m; i++){
S+=function(a+(2*i-2)*h)+4*function(a+(2*i-1)*h)+function(a+2*i*h);
}
S*=h/3;
cout<<"\nh = "< cout<<"\n\nm = "< cout<<"\n\nIntegral = "< }
else cout<<"\nN juft son bo'lishi kerak!";

cout<<"\n\n\nIntegralni Monte-Karlo usulida hisoblaymiz:";
f_min=function(a+(b-a)*(float)rand()/RAND_MAX);
f_max=function(a+(b-a)*(float)rand()/RAND_MAX);
if (f_max!=0 && f_min!=0){
for(float j=a; j<=b; j+=(b-a)/M){
float f_ins=function(j);
if (f_ins>f_max) f_max=f_ins;
else if (f_ins }
cout<<"\n\nf_max = "< cout<<"\n\nf_min = "< if (f_max>0 && f_min>=0) f_min=0;
else if (f_max<=0 && f_min<0) f_max=0;
}
for(int i=1; i<=M; i++){
float x=a+(b-a)*(float)rand()/RAND_MAX;
float y=f_min+(f_max-f_min)*(float)rand()/RAND_MAX;
if (y>=0 && y<=function(x)) m1++;
else if (y<=0 && y>=function(x)) m2++;
}
P1=(float)m1/M;
P2=(float)m2/M;
MK=P1*f_max*(b-a)+P2*f_min*(b-a);
cout<<"\n\nm = "< cout<<"\n\nn = "< cout<<"\n\nIntegral = "<
return 0;
}

Natija:___Tenglamalarni_yechishda_Nyuton_(urinmalar)_va_vatarlar_usullari._Yaqinlashish_tezligi._Nazariy_qism'>Natija:


Tenglamalarni yechishda Nyuton (urinmalar) va vatarlar usullari. Yaqinlashish tezligi.
Nazariy qism
f(x) = 0 tenglama berilgan. Biror [a;b] oraliqda f(a) ‧ f(b) < 0 bo’lsin. [a;b] oraliqdagi (b,f(b)) nuqtadan urinma o’tkazamiz:




…… (1)
Nyuton (urinmalar) usuli yordamida [a;b] oraliqda (2) aniqlikda taqribiy ildizlarini topish algoritm blok sxemasi:

f(x) = 0 tenglama berilgan. Biror [a;b] oraliqda f(a) ‧ f(b) < 0 bo’lsin. [a;b] oraliqdagi (a,f(a)) va (b,f(b)) nuqtalardan vatar o’tkazamiz:



……
(3)

Vatarlar usuli yordamida [a;b] oraliqda (4) aniqlikda taqribiy ildizlarini topish algoritm blok sxemasi:

Topshiriq
Variant №1: Vatarlar va urinmalar usullari yordamida quyidagi tenglamalar taqribiy ildizlarini ε = 0,001 aniqlikda hisoblang:
a) b)
Yechish:
a) Funksiya grafigi:

Vatarlar usuli.
Ma’lumki, funksiya [0,1;1] oraliqda teoremalarning hamma shartlarini bajaradi.
Funksiyaning 2-darajali hosilasi: .
va dan bo’lgani uchun deb olamiz.
va ni e’tiborga olib, birinchi yaqinlashish x1 ni hisoblaymiz:
.
Yaqinlashish shartini tekshiramiz:

bo’lgani uchun x2 ni topamiz:
; ;
.
bo’lgani uchun x3 ni topamiz:
; ;
.
Yana bo’lgani uchun x4 ni topamiz:
; ;
.
Yaqinlashish sharti bajarilganligi uchun taqribiy yechim deb ni olish mumkin.
Quyida shu misolning C++ dastur kodi va natijasi keltirilgan.
Dastur:
#include
#include
using namespace std;

float f(float x){


return log(x)+pow((x+1),3);
}

int main(){


float a, b, x0, x, e, i;
cout<<"a = "; cin>>a;
cout<<"\nb = "; cin>>b;
cout<<"\ne = "; cin>>e;
float c=a-f(a)*((b-a)/(f(b)-f(a)));
if(f(a)*f(c)<0){
x0=b;
i=a;
}
else {
x0=a;
i=b;
}
x=x0-(x0-i)*f(x0)/(f(x0)-f(i));
while(abs(x-x0)>=e){
x0=x;
x=x0-(x0-i)*f(x0)/(f(x0)-f(i));
};
cout<<"\nTenglama yechimi = "< return 0;
}

Natija:___b_)_Funksiya_grafigi:__‒_Vatarlar_usuli.'>Natija:

Urinmalar usuli.
funksiya [0;1] oraliqda yuqoridagi shartni qanoatlantiradi.
Funksiya hosilasi: .
Funksiyaning 2-darajali hosilasi: .
va dan bo’lgani uchun deb olamiz.
va ni e’tiborga olib, birinchi yaqinlashish x1 ni hisoblaymiz:
.
Yaqinlashish shartini tekshiramiz:

bo’lgani uchun x2 ni topamiz:
; ;
.
bo’lgani uchun x3 ni topamiz:
; ;
.
Yana bo’lgani uchun x4 ni topamiz:
; ;
.
Yaqinlashish sharti bajarilganligi uchun tenglamaning = 0,001 aniqlikdagi taqribiy yechimi bo’ladi.
Quyida shu misolning C++ dastur kodi va natijasi keltirilgan.
Dastur:
#include
#include
using namespace std;

float f(float x){


return log(x)+pow((x+1),3);
}

float f1(float x){


return 1/x+3*pow((x+1),2);
}

int main(){


float a, b, x0, x, e;
cout<<"a = "; cin>>a;
cout<<"\nb = "; cin>>b;
cout<<"\ne = "; cin>>e;
float c=a-f(a)*((b-a)/(f(b)-f(a)));
if(f(a)*f(c)<0) x0=a;
else x0=b;
x=x0-f(x0)/f1(x0);
while(abs(x-x0)>=e){
x0=x;
x=x0-f(x0)/f1(x0);
};
cout<<"\nTenglama yechimi = "< return 0;
}
Natija:

b) Funksiya grafigi:

Vatarlar usuli.
Ma’lumki, funksiya [-3;-2] oraliqda teoremalarning hamma shartlarini bajaradi.
Funksiyaning 2-darajali hosilasi: .
va dan bo’lgani uchun deb olamiz.
va ni e’tiborga olib, birinchi yaqinlashish x1 ni hisoblaymiz:
.
Yaqinlashish shartini tekshiramiz:

bo’lgani uchun x2 ni topamiz:
; ;
.
bo’lgani uchun x3 ni topamiz:
; ;
.
bo’lgani uchun x4 ni topamiz:
; ;
.
bo’lgani uchun x5 ni topamiz:
; ;
.
bo’lgani uchun x6 ni topamiz:
; ;
.
Yana bo’lgani uchun x7 ni topamiz:
; ;
.
Yaqinlashish sharti bajarilganligi uchun taqribiy yechim deb ni olish mumkin.
Quyida shu misolning C++ dastur kodi va natijasi keltirilgan.
Dastur:
#include
#include
using namespace std;

float f(float x){


return pow(x,3)+2*pow(x,2)+2;
}

int main(){


float a, b, x0, x, e, i;
cout<<"a = "; cin>>a;
cout<<"\nb = "; cin>>b;
cout<<"\ne = "; cin>>e;
float c=a-f(a)*((b-a)/(f(b)-f(a)));
if(f(a)*f(c)<0){
x0=b;
i=a;
}
else {
x0=a;
i=b;
}
x=x0-(x0-i)*f(x0)/(f(x0)-f(i));
while(abs(x-x0)>=e){
x0=x;
x=x0-(x0-i)*f(x0)/(f(x0)-f(i));
};
cout<<"\nTenglama yechimi = "< return 0;
}
Natija:

Urinmalar usuli.
funksiya [-3;-2] oraliqda yuqoridagi shartni qanoatlantiradi.
Funksiya hosilasi: .
Funksiyaning 2-darajali hosilasi: .
va dan bo’lgani uchun deb olamiz.
va ni e’tiborga olib, birinchi yaqinlashish x1 ni hisoblaymiz:
.
Yaqinlashish shartini tekshiramiz:

bo’lgani uchun x2 ni topamiz:
; ;
.
bo’lgani uchun x3 ni topamiz:
; ;
.
Yana bo’lgani uchun x4 ni topamiz:
; ;
.
Yaqinlashish sharti bajarilganligi uchun tenglamaning = 0,001 aniqlikdagi taqribiy yechimi bo’ladi.
Quyida shu misolning C++ dastur kodi va natijasi keltirilgan.
Dastur:
#include
#include
using namespace std;

float f(float x){


return pow(x,3)+2*pow(x,2)+2;
}

float f1(float x){


return 3*pow(x,2)+4*x;
}

int main(){


float a, b, x0, x, e;
cout<<"a = "; cin>>a;
cout<<"\nb = "; cin>>b;
cout<<"\ne = "; cin>>e;
float c=a-f(a)*((b-a)/(f(b)-f(a)));
if(f(a)*f(c)<0) x0=a;
else x0=b;
x=x0-f(x0)/f1(x0);
while(abs(x-x0)>=e){
x0=x;
x=x0-f(x0)/f1(x0);};
cout<<"\nTenglama yechimi = "< return 0;
}
Natija:



XULOSA
Algebraik tenglamalar ildizlarini taqribiy hisoblash usullaridan aniqlik darajasi boshqa usullarga nisbatan kattaroq bo’lgan usuli urinmalar usulidir. Urinmalar usulini Nyuton usuli deb ham ataydilar.
Bu usul qo’llanganda tenglamaning boshlangich yechimi x0 tanlab olinadi va ketma–ket yaqinlashishlar

formula bilan hisoblanadi.
Vatarlar usuli qo’llanganda ketma–ket yaqinlashishlar

formula bilan hisoblanadi.
Nyuton usulidan foydalanishda paydo bo’ladigan qiyinchilik, bu boshlang'ich yaqinlashishni tanlashdir. U yechilayotgan tenglama ildizining yaqin atrofida bo'lishi kerak. Shuning uchun, ba'zida aralash algoritmni qo'llash maqsadga muvofiqdir.
Tenglamaning taqribiy yechimlarini vatarlar va urinmalar usuli bilan topganda aniq yechimga ikki chekkadan yaqinlashib kelinadi. Shuning uchun ikkala usulni bir vaqtning o’zida qo’llash natijasida maqsadga tezroq erishish mumkin. Bu usulni kombinatsiyalangan usul deb atashadi.

Download 0,66 Mb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish