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.
|
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. MMa'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
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="< 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)="< } Download 16.73 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling