Laboratoriya topshiriqlari va
ish davomida ishlab chiqiladigan dasturning to‘liq namunasi.
Laboratoriya topshirig‘i. Berilgan masalani yechish uchun algoritm va mos dasturni ishlab chiqing. Algoritmni blok-sxema shaklida ifodalang va zarur bo‘lsa algoritmik dekompozitsiyani amalga oshiring. Zarur hollarda qism masalalarni yechish uchun qism dasturlardan foydalaning.
Dastur namunasi. Biz quyida namuna sifatida transensent tenglamalarni taqribiy yechish bilan bog‘liq masalani qaraymiz. Masalani taqribiy usullaridan bo’lgan ketm-ket yaqinnlashish va kesmani teng ikkiga bo’lish usuli yordamida yechish algoritmini (psevdokod shaklida) ishlab chiqamiz va uni C++ tilidagi dasturga o‘tkazamiz.
Labotoriya topshirig‘i sharti. ex-10x-2=0 tenglamaning =0.01 aniqlikdagi taqribiy ildizi topilsin.
Masaladagi berilganlar asosida ko‘rsatilgan usulda hisoblashning algoritmini 2.2-jadvalda beramiz :
2.2- jadval
Berilganlar
|
Belgilashlar
|
matn bo‘yicha
|
dastur bo‘yicha
|
Tenglama funksiyasi
|
f(x)=ex-10x-2
|
FNF(x)=EXP(X)-10*X -2
|
Ildiz yotgan soha
|
a=-1, b=0
|
a=-1, b=0
|
Kesmani bo‘linish qadami va aniqlikda
|
H=0.1, =0.01
|
H=0.1: E=0.01
|
Ildiz yotgan kesma
|
(x1, x2)
|
(x1, x2)
|
Ildiz yotgan kesmani aniqlash sharti
|
f(x1)·f(x2)<0
|
fnf(x1)*fnf(x2)<0
|
kesmani teng ikkiga bo‘lish va ildiz yotgan kesmani aniqlash
|
t =(x1+x2)/2 va
(t, x2) da f(t)·f(x2)<0
|
X=(X1+X3)/2
fnf(x)*fnf(x2)<0
|
Ildizga yaqinlashish sharti
|
t –x2<
|
ABS(t-x2)<=E yoki FNF(X)<=E
|
#include
using namespace std;
float f1(float x)
{
return exp(x)-10*x-2;
}
float a, b ,h, EPS, x1, x2, x3, x4, x;
int i = 1;
int main()
{
cout <<"Ildiz yotgan oraliq chagaralarini kiriting (a,b)= ";
cin >> a;
cin >> b;
cout <<"Aniqlik E ni kiriting = ";
cin >> EPS;
h = 0.1;
x1 = a;
a1:
x2=x1+h; x3=x1; x4=x2;
if(x2 > b)
goto a6;
if(f1(x1)*f1(x2) > 0)
goto a5;
a2:
x = (x3+x4)/2;
if(f1(x) < EPS)
goto a4;
if(f1(x)*f1(x3) < 0)
goto a3;
x3 = x;
goto a4;
a3:
x4 = x;
goto a2;
a4:
cout <<"Ildiz yotgan oraliq va ildiz\n";
cout << setprecision(4)< " , "< i++;
a5:
x1 = x2;
goto a1;
a6:
return 0;
}
Laboratoriya ishini bajarish tartibi. Laboratoriya ishini bajarishda quyidagi tartibga amal qiling:
Guruh jurnalidagi nomerga ko‘ra o‘z variantingizni aniqlang
Masalani yechish uchun algoritm va dastur quring.
Kichik hajmdagi ma’lumotlar uchun dasturning to‘g‘ri ishlayotganligiga ishonch hosil qiling.
Bajarilgan ishlar haqida hisobot tayyorlang.
Nazorat savollar
1. Kesmani teng ikkiga bo‘lish algoritmi qulay jihatlari?
2. Tenglamalarni taqribiy yechish usullari0>0>0>0>
Do'stlaringiz bilan baham: |