O‘zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi t oshkent axborot texnologiyalari universiteti qarshi filiali amaliy Ish-1 Bajardi: Fardayev Asadbek


Download 16.73 Kb.
Sana04.04.2023
Hajmi16.73 Kb.
#1326026
Bog'liq
1-amaliy ish(Algortmlarni loyihalash)


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
T
OSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI

Amaliy Ish-1


Bajardi: Fardayev Asadbek

Tekshirdi: SAMANDAROVA SH. M


Ma'lumot:
Funksiya: tg(0.5x+0.1)-x^2
Atrofli qiymat: x0=0
Analitik usulda aniqlash:
Ushbu funksiyaning turli nuqtalarda obyektivlik sinovi o‘rniga qo‘yilganda, funksiyaning jamoasiga tegishli misol tasviri yechimlaridan foydalanish mumkin. Tasvirlarda [a, b] oralig‘ida obyektivlik shartini qanoatlantirish uchun, funksiyaga quyidagi 2ta shartlar qo‘yiladi:
1) funksiya [a,b] oralig‘ida erga ochishli bo‘lishi kerak
2) funksiyani [a,b] oralig‘ida pastga oshib ketmaslik shartini qanoatlantirishni shavkalash kerak.
Ko‘rsatilgan funksiya [0,1] oralig‘ida erga ochishli funksiya bo‘ladi. Shuningdek, yuqoridagi funksiyani yechimini ko‘paytirish bilan, funkisyani grafik tasvirlarida einfur vilson (kiyortaliklar) yopiladi:

X_k-1 X_k+1


Y_k-1 (x_k-1)^2-tg(0.5x_k-1+0.1)
Y_k+1 (x_k+1)^2-tg(0.5x_k+1+0.1)

Tasvir yordamida, ikki belgi orqali ajratilgan (x_k+1,y_k+1) kiyortaliklarining yo'naltirilishi - Funksiyaga yangi Qiymat kiritish usuli bilan taqqoslashni yigitadi. Masalan, biz avvalgi x0=y0=0 talmaga qarab, yuqoridagi tasvirlar hisoblanadi.

x0=0, y0=-tg(0.5*0+0.1)=0.1003
x1=1, y1=1-tg(0.5*1+0.1)=0.2874
x2=2, y2=4-tg(1.1)=2.8395
x3=3, y3=9-tg(1.6)=9.8729
x4=4, y4=16-tg(2.1)=15.7958
x5=5, y5=25-tg(2.6)=21.9256
x6=6, y6=36-tg(3.1)=26.9618
x7=7, y7=49-tg(3.6)=31.2453
x8=8, y8=64-tg(4.1)=35.0066
x9=9, y9=81-tg(4.6)=38.3955
x10=10, y10=100-tg(5.1)=41.5107

Grafik yordamida aniqlash:


C++ da aniqlashning amaliy qismi quyidagicha ko‘rinadi:
#include
#include
using namespace std;
double func(double x){
return tan(0.5*x+0.1)-x*x;
}
double derivative(double x){
return 0.5*1/(cos(0.5*x+0.1)*cos(0.5*x+0.1))-2*x;
}
int main(){
double x=0, dx=0.01;
while(fabs(func(x))>1e-6){
x=x-func(x)/derivative(x);
}
cout<<"Taqribiy yechim: x="<double x1=0, x2=1, f1=func(x1), f2=func(x2);
while(fabs(x1-x2)>1e-6){
double x3=(x1+x2)/2, f3=func(x3);
if(f1*f3<0){
x2=x3;
}
else{
x1=x3;
f1=f3;
}
}
cout<<"X(ketma-ket yaqinlashish usuli): "<<(x1+x2)/2<<", f(x)="<return 0;
}

Download 16.73 Kb.

Do'stlaringiz bilan baham:




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