alternative();
double a,b,x;
int s;
cout<<"Input interval [a,b],number uzlov s and x"<<'\n';
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
cout<<"s=";
cin>>s;
cout<<"x=";
cin>>x;
cout<<"interval ["<<a<<','<<b<<']'<<'\t'<<s<<'\n';
cout<<"The significance f("<<x<<')'<<'\n';
cout<<f(x)<<'\n'<<'\n';
cout<<"Ravnomernoe razbienie: "<<'\n';
for (int i=0;i<s;i++)
{
cout<<uzly_ravnomerno(s,a,b)[i]<<'\t';
}
cout<<'\n';
cout<<"The significance of interpolar polynomial x="<<x<<"(ravnomernoe razbienie)"<<'\n';
cout<<coef_lagr_ravnomerno(x,s,a,b)<<'\n';
cout<<'\n';
cout<<"Razbienie po Chebushevu: "<<'\n';
for (int i=1;i<=s;i++)
{
cout<<uzly_po_Chebushevu(s,a,b)[i]<<'\t';
}
cout<<'\n';
cout<<"The significance of interpolar polynomial x="<<x<<"(razbienie po Chebushevu)"<<'\n';
cout<<coef_lagr_Chebushev(x,s,a,b)<<'\n'<<'\n';
cout<<"The mistake for ravnomernogo razbienia: ";
cout<<pogreshost(100,a,b,s)[0]<<'\n';
cout<<"The mistake for Chebusheva razbienia: ";
cout<<pogreshost(10,a,b,s)[1]<<'\n';
system("pause");
return 0;
}
В данной программе реализованно построение полиномов Лагранжа по равностоящим и Чебышевским узлам, а такде подсчитывается методическая погрешность этих полиномов. В программе можно задать правую и левую границу интервала непреывности-его берем на основании графиков в Мапле. Далее задаем нужное число узлов и точку в которой будут вычисленны полиномы Лагранжа(2)и функция. Погрешность высчитывается таким образом: рассматриваем abs(f(x)-L(x)). Берем достаточное число значений х- в нашем случае 100, считаем в этих точках f-L и выбираем наибольшое значение- это и будет погрешность. Основываясь на приведенных ниже результатах выполнения программы, можно сказать что для f(x) уже при 7 узлах полиномы лагранжа дают хорошее приближение порядка 10-6.В случае же |x|*f(x) при 7 узлах порядок точности намного меньше. Погрешность порядка 10-2.
----------------------------------------------------------------------------Input number 0(f(x)) or number 1(|x|*f(x))
1
Input interval [a,b],number uzlov s and x
a=-.9
b=.9
s=3
x=.1
interval [-0.9,0.9] 3
The significance f(0.1)
-0.01041709181
Ravnomernoe razbienie:
-0.9 0 0.9
The significance of interpolar polynomial x=0.1(ravnomernoe razbienie)
-0.03456374352
Razbienie po Chebushevu:
0.7794228634 5.510910596e-017 -0.7794228634
The significance of interpolar polynomial x=0.1(razbienie po Chebushevu)
-0.0428256541
The mistake for ravnomernogo razbienia: 0.1424032786
The mistake for Chebusheva razbienia: 0.1385835743
Для продолжения нажмите любую клавишу . . .
Input number 0(f(x)) or number 1(|x|*f(x))
1
Input interval [a,b],number uzlov s and x
a=-.9
b=.9
s=4
x=.1
interval [-0.9,0.9] 4
The significance f(0.1)
-0.01041709181
Ravnomernoe razbienie:
-0.9 -0.3 0.3 0.9
The significance of interpolar polynomial x=0.1(ravnomernoe razbienie)
0.0006659537379
Razbienie po Chebushevu:
0.8314915793 0.3444150891 -0.3444150891 -0.8314915793
The significance of interpolar polynomial x=0.1(razbienie po Chebushevu)
0.0030027544
The mistake for ravnomernogo razbienia: 0.1340600918
The mistake for Chebusheva razbienia: 0.08753691413
Для продолжения нажмите любую клавишу . . .
Input number 0(f(x)) or number 1(|x|*f(x))
1
Input interval [a,b],number uzlov s and x
a=-.9
b=.9
s=7
x=.1
interval [-0.9,0.9] 7
The significance f(0.1)
-0.01041709181
Ravnomernoe razbienie:
-0.9 -0.6 -0.3 -1.110223025e-016 0.3 0.6 0.9
The significance of interpolar polynomial x=0.1(ravnomernoe razbienie)
-0.02134968408
Razbienie po Chebushevu:
0.877435121 0.7036483342 0.3904953652 5.510910596e-017 -0.39049
53652 -0.7036483342 -0.877435121
The significance of interpolar polynomial x=0.1(razbienie po Chebushevu)
-0.02584145428
The mistake for ravnomernogo razbienia: 0.02192056398
The mistake for Chebusheva razbienia: 0.01542436247
Для продолжения нажмите любую клавишу . . .
Input number 0(f(x)) or number 1(|x|*f(x))
0
Input interval [a,b],number uzlov s and x
a=-.9
b=.9
s=3
x=.1
interval [-0.9,0.9] 3
The significance f(0.1)
-0.1041709181
Ravnomernoe razbienie:
-0.9 0 0.9
The significance of interpolar polynomial x=0.1(ravnomernoe razbienie)
-0.03840415947
Razbienie po Chebushevu:
0.7794228634 5.510910596e-017 -0.7794228634
The significance of interpolar polynomial x=0.1(razbienie po Chebushevu)
-0.05494533983
The mistake for ravnomernogo razbienia: 0.2375285165
The mistake for Chebusheva razbienia: 0.1568301094
Для продолжения нажмите любую клавишу . . .
Input number 0(f(x)) or number 1(|x|*f(x))
0
Input interval [a,b],number uzlov s and x
a=-.9
b=.9
s=7
x=.1
interval [-0.9,0.9] 7
The significance f(0.1)
-0.1041709181
Ravnomernoe razbienie:
-0.9 -0.6 -0.3 -1.110223025e-016 0.3 0.6 0.9
The significance of interpolar polynomial x=0.1(ravnomernoe razbienie)
-0.1041713761
Razbienie po Chebushevu:
0.877435121 0.7036483342 0.3904953652 5.510910596e-017 -0.39049
53652 -0.7036483342 -0.877435121
The significance of interpolar polynomial x=0.1(razbienie po Chebushevu)
-0.1041719944
The mistake for ravnomernogo razbienia: 4.689598729e-006
The mistake for Chebusheva razbienia: 1.700292333e-006
Для продолжения нажмите любую клавишу . . .
--------------------------------------------------------------------------------
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.