106-19 guruh talabasi Hamroyev Dilshodning Algoritmni loyihalash fanidan
2-Mustaqil ishi
Nazariy savollarga javoblar.
1.Asosan biron bir masalani algoritmni tuzmoqchi bo’lsak birinchi navbatda uning ketma ketligiga e’tibor berishim kerak.Matematik masalani algoritmni tuzmoqchi bo’lsak ya’ni differansial tenglamalarni Sonli integrallash uchun Eyler metodidan foydalanamiz.Asosan algoritmlarni bohalash uchun ikkita asosiy kretiriyadan iborat va ular quyidagilardir:
- Algoritmni ishlash vaqti bo’yicha bohalash
- Algoritmni bajarish uchun xotiradan egallagan hajmi bo’yicha bohalash
2.Har qanday f(x) funksiyaning boshlang’ich funksiyasi elementar funksiya bo’lavermaydi, yani uni integrallash murakkab bo’ladi.Asosan bunday aniq integrallarni Nyuton-Leybnits formulasi bilan hisoblab bo’lmaydi. Shuning uchun integrallarni taqribiy hisoblash usullaridan foydalanib integrallarning taqribiy qiymatlari topiladi.
Aniq integralni taqribiy hisoblash usullari
Odatda aniq integrallarni taqribiy hisoblash uchun integrallash sohasidagi [a,b] kesma n ta teng bo’lakka bo’linadi. Har bir bo’lakning uzunligi h=(b-a)/n formula bilan hisoblanadi.
n bo’laklar soni qancha ko’p bo’lsa integralning kiymati shuncha aniq bo’ladi. Integrallarni taqribiy hisoblashda ko’pincha to’g’ri burchaklar, trapetsiyalar va Simpson formulalaridan foydalaniladi. Integrallarning kiymatlarini taqribiy hisoblash uchun biror bir usul tanlanadi va algoritm tuziladi va bu algoritmlarga mos ravishda biror bir dasturlashtirish tilida dasturlar tuzilib dasturlar kompyuterga kiritilib natijalar olinadi.
Dasturlar.
1. #include
#include
using namespace std;
void matrix_print(int a[10][10], int m, int n)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}}
int satr_max(int a[], int n)
{
int max = a[0];
for (int i = 1; i < n; i++)
if (max < a[i]) max = a[i];
return max;
}
int main()
{
int m, n, a[10][10];
cout << "Satrlar sonini kiriting \nm="; cin >> m;
cout << "Ustunlar sonini kiriting \nn="; cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
cout << "Kiritilgan matritsa\n";
matrix_print(a, m, n);
for (int i = 0; i < m; i++)
{
cout << i << "-satrning eng kattasi=" <<
satr_max(&a[i][0], n);
cout << endl;
}return 0;}
2. #include
#include
using namespace std;
double integral(int x)
{
return (sin(x)/(1+x*x));
}
int main()
{
double a,b,S=0, y;
int n=10;
cout<<"integral chegarasini kiriting"<cin>>a>>b;
y=a+0.1;
while (y{
S+=integral(y);
y+=0.1;
}
S=(a+b)/2+S;
S=S*fabs(b-a)/n;
cout << S;
return 0; }
Boshlash
double a,b,S=0,y;
int n=10;
cout<<”integral chegarasini kiriting”<
y=a+0.1;
While(y
Yo’q
Xa
S=(a+b)/2+S;
S=S*fabs(b-a)/n;
S+=integral(y);
y=a+0.1;
cout<
Tamom
Do'stlaringiz bilan baham: |