Ֆունկցիաների ինտերպոլացում
Որոշ խնդիրների լուծման ընթացքում օգտագործում են աղյուսակով տրված ֆունկցիայի արժեքները: Նման դեպքերում, եթե անհրաժեշտ է որոշել ֆունկցիայի այն արժեքները, որոնք չկան աղյուսակում, ապա կարելի է ընտրել աղյուսակային ֆունկցիային ինչ որ իմաստով մոտ որևէ պարզագույն ֆունկցիա և հաշվումը կատարել նրա անալիտիկ տեսքից օգտվելով: Այդպիսի ֆունկցիայի որոշման ձևերից մեկը ինտերպոլացումն է: Դիցուք` x կետերում տրված են y= f( x) ֆունկցիայի արժեքները: Պահանջվում է կառուցել այնպիսի y= F( x) ֆունկցիա,որը նեւյն ` x0, x1,..., xn կետերում ընդունի նույն արժեքներըը: x-ի այլ արժեքների համար F (x) ֆունկցիան կոչվում է ինտերպոլացնող, իսկ նրա կառուցման պրոցեսը` ինտերպոլացում:
Տարբեր կարգի վերջավոր աճեր
Տված է y=f(x) ֆունկցիան:Արգումենտի աճը նշանակենք h-ով՝ ∆x=h:Այդ դեպքում y ֆունկցիայի առաջին կարգի վերջավոր աճը կլինի.
∆y≡∆f(x)=f(x+∆x) - f(x)
Նույն կերպ կստացվի ֆունկցիայի բարձր կարգի վերջավոր աճերը.
∆^n y=∆(∆^(n-1) y)
Ընդհանրապես ճիշտ է հետևյալ բազմանդամի վերջավոր աճի հաշվարկը,եթե
pn (x)=a0 x^n+a1 x^(n-1)+...+a_n
ապա ∆^n p_n (x)=n! a_0 h^n=const,որտեղ ∆x=h, (1)
իրոք
∆pn (x)=pn(x+h)-pn(x)= a0[(x+h)^n-x^n ]+a_1[...
Եթե կլոր փակագծերը բացենք …կստանանք n-1 աստիճանի բազմանդամ ,այնահետև նույն կերպ շարունակելով ի վերջո կստացվի (1)-ը:
∆^s pn(x)=0,եթե s>n:
Նյուտոնի առաջին ինտերպոլացիոն բազմանդամ
Խնդրի դրվածքը
Դիցուկ տված y=f(x) ֆունկցիան,որը Xi=x0+ih հավասարահեռ կետերում ըհդունում է
Yi = f(xi) արժեքներ, որտեղ h-ը ինտերպոլացիայի քայլն է:Պահանջվում է ընտրել այնպիսի Pn(x) բազմանդամ(աստիճանը չի գերազանցում n-ին),որը հանգուցային կետերում ընդում է նույն արժեքը՝ Pn(Xi)= Yi , (i=0,1,2,...,n):Պարզվում է,որ այդ պահանջը համարժեք է հետևյալին՝
, m=0,1,2,…,n (1)
Որոնելի բազմանդամը փնտրվում է հետևյալ կերպ.
,m=1,2,…,n (2)
(3)
=
=
=
Տեղադրենք ,կստանանք՝
==2!, որտեղից՝, շարունակելով, կստանանք`
՝, 0!=1,և :Գործակիցները տեղադրելով (3)-ի մեջ.
+...+,որին անվանում
են Նյուտոնի առաջին ինտերպոլացիոն բազմանդամ:Գործնական աշխատանքի դոպքում նշանակենք:
Նյուտոնի 2-րդ ինտերպոլացիոն բազմանդամ
Դիցուկ տված y=f(x) ֆունկցիան,որը Xi=x0+ih հավասարահեռ կետերում ըհդունում է
Yi = f(xi) արժեքներ, որտեղ h-ը ինտերպոլացիայի քայլն է: Նյուտոնի 1-ին ինտերպոլացիոն բազմանդամը կատարում էր ինտերպոլացիա x0 կետի շրջակայքում: xn կետի շրջակայքում օգտագործվում է 2-րդ բազմանդամը:Հետևաբար պահանջվում է ընտրել այնպիսի Pn(x) բազմանդամ(աստիճանը չի գերազանցում n-ին),որը հանգուցային կետերում ընդում է նույն արժեքը՝ Pn(Xi)= Yi , (i=0,1,2,...,n):Պարզվում է,որ այդ պահանջը համարժեք է հետևյալին՝
ΔiPn(xn-i)= ΔiYn-i (1)
Բազմանդամը կառուցվում է հետևյալ կերպ՝
Pn(x)=a0+a1(x- xn )+a2(x-xn)(x-xn-1)+…+an(x-xn)(x-xn-1)…(x-x1), (2),որը ընդհանրացված աստիճանով կլինի հետևյալը՝
Pn(x)=a0+a1(x-xn)[1] + a2(x-xn-1)[2] + … + an(x-x1)[n]
Ինչպես նկատում ենք. Xi հայտնի է, x-ի արժենքը մենք ենք տալիս,մնում է գտնել ai արժեքները ,,որոնք որոշում ենք, օգտվելով (1) բանաձևից:Այսպիսով՝
Pn(xn)=a0=Yn,կազմում ենք հերթական վերջավոր աճերը և որոշում ai -ն:
ΔPn(x)=1*a1*h+2h*a2(x-xn-1)[1] +…+ nhan(x-x1)[n-1]
ΔPn(xn-1)= 1 *a1h= ΔYn-1 a1=
Δ2 Pn(x)=1*2*h2*a2x +…+ n(n-1)h2 an(x-xn)[n-2]
Δ2 Pn(xn-2)=1*2*h2a2=Δ2Yn-2 a1= , … ,an=
Տեղադրելով (2)-ի մեջ,կստանանք Նյուտոնի 2-րդ բանաձևը՝
Pn(x)=Yn + (x-xn) +….+ (x-xn)….(x-x1): Գործնական աշխատանքի համար նշանակենք նմանապես կստացվի
Pn(x)=Yn + qΔ Yn-1 + Δ2 Yn-2 +….+ ΔnY0
Ինտերպոլացիայի բազմանդամներ ȳ·ñ³ÝÅÇ ÇÝï»ñåáɳóÇáÝ µ³½Ù³Ý¹³Ù
ȳµáñ³ïáñ ³ß˳ï³Ýù N 1
¸ÇóáõÏ n=1-Ç ¹»åùáõÙ, áõÝ»Ýù »ñÏáõ Ï»ï` x0 ¨ x1
Ծրագիրը TP լեզվով
Program Lang1;
Var x0, x1, y0, y1, A, B, X, L : real;
begin Write('x='); read(x);
begin
Write('x0='); read(x0);
Write('Y0='); read(Y0);
Write('x1='); read(x1);
Write('Y1=1); read(Y1)
end;
begin A:=(x-x1) / (x0-x1);
B:=(x-x0)/(x1-x0);
L:=A*Y0+B*Y1;
Writeln('L=', L)
end
end.
Օրինակ, տված է y=f(x) ֆունկցիան, որը xi կետերում ընդունում է yi արժեք (i=0,1) տե’ս աղյուսակը: Հաշվել L1(37)-ը:
x y
35,7 7,62
40,22 12,78
Պատ. L= 9,104
ȳݷñ³ÝÅÇ ÇÝï»ñåáɳóÇáÝ µ³½Ù³Ý¹³Ù
ȳµáñ³ïáñ ³ß˳ï³Ýù N 2
n=2, i=0,1, 2
program Lang2;
Var x0, y0, x1, y1, x2, y2:real; L, A, B: real; x:real;
begin
writeln; writeln (‘vvedite znachenie’);
read(x0, y0, x1, y1, x2, y2); read(x);
begin A:=(x-x1) * (x-x2) /((x0-x1)*(x0-x2);
B:= (x-x0) * (x-x2) /((x1-x0)*(x1-x2);
C:=(x-x0) *(x-x1) /((x2-x0)*(x2-x1);
L:=A*y0+B*y1+C*y2;
Write('L=',L);
end;
end.
Օրինակ, տված է y=f(x) ֆունկցիան, որը xi կետերում ընդունում է yi արժեք (i=0,1,2) տե’ս աղյուսակը: Հաշվել L(323,5)-ը:
x y
321,0 2,50651
322,8 2,50893
324,2 2,51081
Պատ. L(323,5)=2,5098
© ООО «Знанио»
С вами с 2009 года.