6-tajriba ishi
Mavzu:Aniq integralni taqribiy xisoblash algoritmlari: chap, o’ng, o’rta to’rtburchaklar usuli; trapetsiya va Simpson usullari; xatoliklarni baxolash algoritmlari.
кўринишидаги интегрални ҳисоблаш масаласи қўйилаяпти, бу ерда а ва b – интегрални қуйи ва юқори чегаралари; f(x) – [a, b] кесмадаги узлуксиз функция.
Аниқ интегрални ечими сон жиҳатдан х=a ва х=b тўғри чизиқлари, интеграл остидаги функция чизиғи ва абсцисса ўқи билан чегараланган юзага тенг (13- расм )
Y
f (x)
J
X
a b
ТЎРТ БУРЧАКЛАР УСУЛИ
Чап тўртбурчаклар усули.
интегрални қийматини тақрибий ҳисоблаш учун [ a , b ] интеграллаш оралигини N та тенг бўлакга бўлиб, сонли интеграллаш қадамини аниқлайлик, яъни h = (b-a)/N. Натижада [a , b] оралиқда ётувчи h қадам билан ортиб борувчи арифметик прогрессияни ҳадларини ифодаловчи сонлар қаторини ҳосил қиламиз:
X0 = a ; X1 = a + 1h; X2 = a + 2h; X3 = a + 2h; … XI = a + ih; … XN = b.
Интеграл остидаги f(x) функция ҳар бир интеграллаш a ≤ x i≤ b,
Xi= a + ih қадамида аппроксимацияловчи нолинчи тартибли полином, яъни ўзгармас катталик Y = f(xI) билан алмаштирилади (16-расм). Арифметик прогрессияни ташкил этувчи X = {xI}, i = 0,1,2, … , N сонлар кетма-кетлиги учун ўзгармас катталикларни ҳисоблаймиз:
Y0 = f(x0), Y1 = f(x1), Y2 = f(x2), … YI = f(xI), … YN = f(xN).
Демак, эгри чизиқли трапеция N-1 та тўртбурчаклар билан алмаштирилади ва интегрални қиймати тўртбурчаклар юзаларининг йиғиндисига тенг бўлади:
ry f(x)
Y
S0 S1 S2 S3 Si SN-2 SN-1
X
a h h h h … h h b
16–расм.
S0 = hY0 , S1= hY1 , S2 = hY2 , … , Si = hYi , … ,
SN-1 = hYN-1.
(4)
интегрални қийматини R хатолик билан чап тўртбурчаклар усулида ҳисоблаш алгоритмлари расмда келтирилган.
Б Б Б
a , b , N a , b , N a , b , N
h = (b-a)/N h = (b-a)/N h = (b-a)/N
S = f(a) x=a , S = f(x) S = 0
i = 1, N-1 i = 1 , N-1 x = a, b - h , h
xi = a + ih x = x + h
S = S + f(xi) S = S + f(x) S = S + f(x)
S = hS S = hS S = hS
S , N S , N S , N
Тамом Тамом Тамом
a) shart bo’yicha
#include
#include
#include
using namespace std;
double func(double x)
{
double f=1.0*(sqrt(x*x+0.6))/(1.4+sqrt(0.8*x*x+1.3));
return f;
}
int main()
{
double a,b; int n;
cout<<"a va b oraliqni kiriting: "; cin>>a>>b;
cout<<"Nechta bo'lakka bo'laklab integrallansin: "; cin>>n;
double h=1.0*(b-a)/n,s,x[n+1]={0};
for(int i=1; i<=n; i++)
{
x[1]=a+i*h;
s+=func(x[i]);
}
s=s*h;
printf("Natia: %.8f",s);
}
b) shart
#include
#include
#include
using namespace std;
double func(double x)
{
double f=1.0*cos(x*x+0.6)/(0.7+sin(0.8*x+1));
return f;
}
int main()
{
double a,b; int n;
cout<<"a va b oraliqni kiriting: "; cin>>a>>b;
cout<<"Nechta bo'lakka bo'laklab integrallansin: "; cin>>n;
double h=1.0*(b-a)/n,s,x[n+1]={0};
for(int i=1; i<=n; i++)
{
x[1]=a+i*h;
s+=func(x[i]);
}
s=s*h;
printf("Natia: %.8f",s);
}
Do'stlaringiz bilan baham: |