|
Azərbaycan Hava Yolları
|
bet | 24/35 | Sana | 06.12.2023 | Hajmi | 2,93 Mb. | | #112648 | Turi | Dərs |
Bog'liq C fakepathKOMPUTER MUHENDISLIYINDE EDEDI USULLAR 01 06 (2) (1)9.2. Trapesiyalar metodu
Əgər [a,b] parçasının bölündüyü elementar sahəciklərə trapesiyalar kimi baxsaq, onda (9.1) əvəzinə
götürə bilərik. Bu bərabərlikləri tərəf-tərəfə toplasaq:
təqribi bərabərliyi alınır. Burada .
Trapesiyalar metodunun qalıq həddi
şəklindədir.
Burada qəbul etsək, qalıq həddi üçün aşağıdakını alarıq:
.
Nümunə1. inteqralını trapesiyalar metodu ilə hesablamalı.
Həlli. [0;2] parçasını 4 bərabər hissəyə bölək.
Onda x0=0; x1=0,5; x2=1; x3=1,5; x4=2 alarıq. Bu qiymətləri y= funksiyasında nəzərə alsaq aşağıdakılar alınar:
y0=f(x0)=-12; y1=y(x1)=-11,625; y2=y(x2)=-10;
y3=y(x3)=-6,375; y4=y(x4)=0.
Bunları trapesiyalar düsturunda nəzərə alaq:
Bu məsələnin C++ proqramlaşdırma dilində proqram kodu aşağıdakı kimi olar:
#include
using namespace std;
double func(double x)
{
return x*x*x + x*x - 12;
}
double trapec(double a, double b, double h)
{
if (a > b)
{
return 0;
}
double x = a;
double S = 0.;
while (x +h <= b)
{
S += h*(func(x) + func(x + h)) / 2.;
x += h;
}
return S;
}
main()
{
int n; double a,b;
cout<<"n=";
cin>>n;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
double h=(b-a)/n;
double S = trapec(a, b, h);
cout << S << endl;
system("pause");
}
Nümunə 2. X təsadüfi kəmiyyətinin intervalında paylanma sıxlığı y=sinx funksiyası şəklindədir. Həmin intervalda onun paylanma funksiyasının qiymətini hesablamalı.
Həlli. Bunun üçün intervalında y=sinx funksiyasının inteqralını hesablamaq lazımdır. Trapesiyalar düsturunun tətbiqilə məsələnin həllinin C++ proqramlaşdırma dilində proqram kodunu aşağıdakı kimi yazmaq olar.
#include
#include
#include
#define NUMPOINT 3000 //noqtelerin sayi
#define PI 3.1415926536
double Integral(double *f, double step){
double value = 0;
for (int i = 0; i < NUMPOINT; i++){
value += f[i];
}
value *= step;
return value;
}
int main() {
double *f;
double step, t;
double S;
int i;
system("chcp 1251");
system("cls");
f = (double*)malloc(NUMPOINT*sizeof(double));
printf("noqtelerin sayi = %d\n", NUMPOINT);
step = PI/NUMPOINT; //addim (trapesiyanin hundurluyu)
printf("addim = %lf\n", step);
t = 0.0;
for (i=0; if[i] = sin(t);
t += step;
}
S = Integral(f, step);
printf("inteqralin qiymeti = %lf", S);
getchar();
return 0;
}
Mövzuya aid tapşırıqların variantları
Aşağıda verilmiş inteqralları düzbucaqlılar metodu ilə həll etməli.
1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.
17. 18.
19. 20.
21. 22. 23. 24. 25. 26.
27. 28.
|
| |