|
Azərbaycan Hava Yolları
|
bet | 18/35 | Sana | 06.12.2023 | Hajmi | 2,93 Mb. | | #112648 | Turi | Dərs |
Bog'liq C fakepathKOMPUTER MUHENDISLIYINDE EDEDI USULLAR 01 06 (2) (1)Matrisin əmsalları
|
Sərbəst
hədlər
|
1.
|
1.84
2.32
1.83
|
2.25
2.60
2.06
|
2.53
2.82
2.24
|
-6.09
-6.98
-5.52
|
2.
|
2.58
1.32
2.09
|
2.93
1.55
2.25
|
3.13
1.58
2.34
|
-6.66
-3.58
-5.01
|
3.
|
2.18
2.17
3.15
|
2.44
2.31
3.22
|
2.49
2.49
3.17
|
-4.34
-3.01
-5.27
|
4.
|
1.54
3.69
2.45
|
1.70
3.73
2.43
|
1.62
3.59
2.25
|
-1.97
-3.74
-2.26
|
5.
|
1.53
2.35
3.83
|
1.61
2.31
3.73
|
143
2.07
3.45
|
-5.13
-3.69
-5.98
|
6.
|
2.36
2.51
2.59
|
2.37
2.40
2.41
|
2.13
2.10
2.06
|
1.48
1.92
2.16
|
7.
|
3.43
4.17
4.30
|
3.38
4.00
4.10
|
3.09
3.65
3.67
|
5.52
6.93
7.29
|
8.
|
3.88
3.00
2.67
|
3.78
2.79
2.37
|
3.45
2.39
1.98
|
10.41
8.36
7.62
|
9.
|
3.40
2.64
4.64
|
3.26
2.39
4.32
|
2.90
1.96
3.85
|
13.05
10.30
17.89
|
10.
|
2.53
3.95
2.78
|
2.36
4.11
2.43
|
1.98
3.66
1.94
|
12.66
21.97
13.93
|
11.
|
2.16
3.55
4.85
|
1.96
3.23
4.47
|
1.56
2.78
3.97
|
13.16
21.73
29.75
|
12.
|
2.69
2.73
2.93
|
2.47
2.39
2.52
|
2.07
1.92
2.02
|
19.37
19.43
20.80
|
13.
|
3.72
4.47
4.96
|
3.47
4.10
4.53
|
3.06
3.63
4.01
|
30.74
36.80
40.79
|
5. İnterpolyasiya çoxhədlilərinin qurulması
İqtisadiyyatda və texnikada eksperiment nəticəsində alınmış cədvəllər əsasında y=f(x) asılılığında funksiyanın qiymətlərini çox vaxt arqumentin cədvəldə olmayan qiymətləri üçün hesablamaq tələbatı yaranır. Bundan başqa bəzi hallarda y=f(x) asılılığı üçün analitik ifadə məlum olduğuna baxmayaraq, o çox mürəkkəb olub müxtəlif riyazi çevrilmələrin aparılmasına çətinlik törədir. Belə hallarda interpolyasiya məsələləri meydana çıxır.
Tutaq ki, [a,b] parçasında (n+1) sayda nöqtələrdə y=f(x) funksiyasının qiymətləri verilmişdir:
y0=f(x0), y1=f(x1),...,yn=f(xn)
Burada x0,x1,...,xn nöqtələri interpolyasiyanın düyün nöqtələri adlanır. Bu cədvəlləşdirilmiş funksiya üçün elə p(x) analitik ifadə tapmaq tələb olunur ki, onun qiymətləri interpolyasiyanın düyün nöqtələrində verilmiş funksiyanın qiymətləri ilə üst-üstə düşsün, yəni:
y0=P(x0), y1=P(x1),...,yn=P(xn) (5.1)
olsun.
Düyün nöqtələrindən fərqli daxili nöqtələrdə funksiyanın qiymətlərinin tapılması prosesi f(x) funksiyasının interpolyasiya olunması adlanır. (5.1) şərtlərini ödəyən Pn(x) çoxhədlisi interpolyasiya çoxhədlisi, uyğun düsturlar isə interpolyasiya düsturları adlanır.
Müxtəlif interpolyasiya düsturları var (Laqranj, Nyuton və s.).
Düyün nöqtələri bərabər olmayan məsafədə yerləşən hal üçün Nyutonun interpolyasiya düsturunu nəzərdən keçirək.
Tutaq ki, f(x) funksiyası aşağıdakı qiymətləri ilə verilib:
y0=f(x0), y1=f(x1),...,yn=f(xn)
Nyutonun P(x) çoxhədlisini
y0=P(x0), y1=P(x1),...,yn=P(xn)
şəklində axtaraq. Bunun üçün birinci tərtib ayrılan fərqi quraq:
Buradan
P(x)=P(x0)+P(x,x0)(x-x0) (5.2)
alırıq. İkinci tərtib ayrılan fərq düsturunu yazaq:
Buradan aşağıdakı ifadəni alırıq:
P(x,x0)=P(x0,x1)+P(x,x0,x1)(x-x1) (5.3)
(6.3) ifadəsini (6.2) –də nəzərə alsaq
P(x)=P(x0)+P(x0,x1)(x-x0)+P(x,x0,x1)(x-x0)(x-x1)
3-cü tərtib ayrılan fərqin düsturuna görə aşağıdakını yaza bilərik:
Buradan alarıq:
(5.4)
(5.4)-ü (5.3)-də nəzərə alsaq və prosesi bu qayda ilə davam etdirsək aşağıdakını ala bilərik:
Bu düsturun Laqranj düsturundan üstünlüyü onun yeni interpolyasiya düyün nöqtələrinin əlavə olunması zamanı hesablamaların yenidən aparılmasını tələb etməməsidir.
Laqranjın interpolyasiya çoxhədlisi
Fərz edək ki, funksiya cədvəl şəkilində verilmişdir (eksperimentden tapılır).
Cəbr kursundan məlumdur ki, n+1 sayda nöqtələr m dərəcəli çoxhədlini birqiymətli təyin edir. Həmin çoxhədlini parabolik interpolyasiya ilə tapmaq mümkündür. Parabolik interpolyasiyanın daha ümumi düsturu interpolyasiyanın Laqranj düsturudur. Bu düstur aşağıdakı şəkildədir.
(5.5)
Cədvəl qiymətlərinin doğru olub olmadığını yoxlayaq
Laqranj çoxhədlisini qısa şəkildə aşağıdakı kimi yazmaq olar.
(5.6)
Burada
(5.7)
(5.3) funksiyasına Laqranjın interpolyasiyası çoxhədlisi deyilir. Burada n çoxhədlinin dərəcəsini göstərir.
Nümunə. Aşağıdakı cədvəldə verilmiş funksional asılılığın Laqranj çoxhədlisini qurmalı:
Həlli:
Laqranj çoxhədlisinin qurulmasının C++ dilində ümumi proqramını tərtib edək. Bunun üçün aşağıdakı kimi işarələmələr qəbul edək.
Size - x,y massivdə elementlərin maksimum sayı, nöqtələrin maksimal sayı;
P - (x-xj)*(xi-xj) hasili;
L - yi və p-nin hasilləri cəmi;
X[size] - daxil edilmiş nöqtələrin x koordinantından ibarət massiv;
Y[size] - daxil edilmiş nöqtələrin y koordinantından ibarət massiv;
i, j - daxili və xarici dövrlərdəki sayğaclar;
k - daxil edilmiş nöqtələrin miqdarı;
#include
#include
#include
#define size 20
void main( )
{
float L,p,xd,x[size],y[size];
int i,j,k;
clscr();
Printf(“nöqtələrin sayı\nk=”);
Scanf(“%i|, &k);
For (i=0; I{
Printf (“\n koordinantlari daxil et %i nöqtəsində \n”,i++)
printf (“x%i=”, i+1);
scanf (“%f”,&x[i]);
printf(“y%i=”,i+1);
scanf(“%f”,&xd);
L=0;
For (i=0;i{
P=1; for (j=0;j{
if(i==j);
else
P*=(xd-x[j]/x[i]-x[j]);
}
P*=y[i];
L+=p;
}
Printf(“Başlanğıc nöqtədə y koord\n y=%g”,L);
getch( );
}
6. MATLAB mühitində interpolyasiya məsələlərinin həlli
Arqumentin verilmiş qiymətlərində qurulmuş n tərtibdən interpolyasiya çoxhədlisinin köməyi ilə x1=0,702, x2=0,512, x3=0,608 nöqtələrində funksiyanın təqribi qiymətlərini hesablayaq. Arqumentin verilmiş qiymətlərinə uyğun funksiyanın aldığı qiymətlər cədvəl 6.1-də verilmişdir.
Cədvəl 6.1.
xX
|
0.43
|
0.48
|
0.55
|
0.62
|
0.7
|
0.75
|
yY
|
1.63597
|
1.73234
|
1.87686
|
2.03345
|
2.2284
|
2.3597
|
Qeyd edək ki, MATLAB sistemində n-ci tərtib interpolyasiya funksiyasının qurulması üçün funksiyalar mövcud deyil, lakin interpolyasiya çoxhədlisini reallaşdıran funksiyalar kifayət qədərdir. Növbəti proqram M-dildə kanonik şəkildəki çoxhədlinin qiymətini və eksperimental nöqtələrə görə t nöqtəsində Nyuton və Laqranj çoxhədlilərini hesablayan funksiyadan ibarətdir.
%Kanonik çoxhədli
Function s=kanon(x,y,t)
% x və y massivlərinin elementlərinin sayının müəyyənləşdirilməsi.
n=length(x);
% tənliklər sisteminin əmsallarının hesablanması
for i=1:n
for j=1:n
A(i,j)=x(i).^(j-1);
end
end
% Tenlikler sisteminin helli
a=A^(-1)*y’;
s=0;
for i=1:n
s=s+a(i)*t^(i-1);
end
end
%Nyuton çoxhədlisi
function s=newton(x,y,t)
n=length(x);
for i=1:n
c(i,1)=y(i);
end
for i=2:n
for j=2:n
if (ic(i,j)=0;
else
C(i,j)=(C(i,j-1)- C(j-1,j-1))/(x(i)-x(j-1));
end
end
end
for i=1:n
A(i)=C(i,i);
end
% t nöqtəsində çoxhədlinin qiymətinin hesablanması
s=0;
for i=1:n
p=1;
for j=1:i-1
p=p*(t-x(i));
end
s=s+A(i)*p;
end
end
% Laqranj çoxhədlisi
function s=lagrang(x,y,t)
n=length(x);
s=0;
for i=1:n
p=1;
for j=1:n
if (j~=i)
p=p*(t-x(j))/(x(i)-x(j));
end
end
s=s+y(i)*p;
end
end
% Laqranj funksiyasina müraciət etməklə x1=0,702, x2=0,512, % x3=0,608 nöqtələrində çoxhədlinin qiymətlərini hesablayaq.
>>r=[0.702 0.512 0.608]
>>r=
0.702 0.512 0.608
for i=1:3
rs(i)=laqrang(x,y,r(i));
end
rs
rs=
2.2336 1.7970 2.0057
Eyni qayda ilə kanon və newton funksiyalarına müraciət etməklə verilmiş nöqtələr üçün çoxhədlinin qiymətini hesablamaq olar. Ümumiyyətlə, Nyuton, Laqranj və kanonik interpolyasiya çoxhədliləri eyni funksiyanın müxtəlif üsullarla qurulmasından ibarətdir.
MATLAB –da interpolyasiya məsələlərini həll etmək üçün aşağıdakı funksiyalardan istifadə olunur.
Yi=interp1(x, y, xi [,method]),
burada
x- eksperimental nöqtələrin absislərindən ibarət massiv;
y- eksperimental nöqtələrin ordinatlarından ibarət massiv;
xi- qiyməti splaynın köməyi ilə hesablanacaq nöqtə;
method- splaynın qurulması üsulunu təyin edən üsul.
Method parametri aşağıdakı qiymətlərdən birini ala bilər:
‘linear’ – xətti interpolyasiya;
‘spline’ – kubik splayn;
‘nearest’ n- qonşu nöqtələr arasında interpolyasiya. Bu üsulda istənilən nöqtədə interpolyasiya funksiyasının qiyməti yaxın düyün nöqtəsindəki qiymətə bərabər götürülür.
interp1(x, y, xi, method) funksiyası xi nöqtəsində interpolyasiya funksiyasının qiymətini hesablayır
Yuxarıda qoyulan məsələni interp1() funksiyasının köməyi ilə həll edək.
%Eksperimental nöqtələrdən ibarət massivlərin qurulması
x=[0.43 0.48 0.55 0.62 0.7 0.75];
y=[1.63597 1.73234 1.87686 2.03345 2.22846 2.35973];
% eksperimental nöqtələrin sayının müəyyənləşdirilməsi
n=length(x);
% interpolyasiya qiymətləri hesablanacaq nöqtələrin daxil edilməsi
t=[0.702 0.512 0.608];
% qrafikin qurulması üçün xi massivinin qurulması
xi=[x(1):0.02:x(length(x))];
% interpolyasiya funksiyasının qiymətinin hər üç üsul ilə
% hesablanması
yin=interp1(x,y,xi,’nearest’);
yil=interp1(x,y,xi,’linear’);
yis=interp1(x,y,xi,’spline’);
% x1=0,702, x2=0,512, x3=0,608 verilmiş nöqtələri üçün
% interpolyasiya funksiyasının qiymətinin hər üç üsul ilə
% hesablanması
ytn=interp1(x,y,t,’nearest’);
ytl=interp1(x,y,t,’linear’);
yts=interp1(x,y,t,’spline’);
% qrafikin qurulması
plot (x,y,’bo’, xi,yin,’-r’,xi,yil,’:r’ ,xi,yis,’-r’,t,ytn,’x’,t,yts,’*’);
grid on
legend (‘ eksperimental qiymetler’, ‘nearest’, ‘linear’, ‘spline’,
‘nearest usulu ile hesablanma’, ‘splaynin komeyile hesablanma’)
|
| |