Висновки
У результаті виконання курсової роботи було розроблено програму на мові програмування С++. Дана програма реалізовує метод знаходження коренів нелінійних рівнянь за допомогою методу Горнера і виконує обрахунки з точністю до шести цифр. Перевірку правильності виконання програми було виконано за допомогою розрахунків вручну, у програмах Excel таMathcad.
Для написання даної програми було використано статичні масиви.
Список використаної літератури
Г. Н. Воробьева, А. Н. Данилова – Практикум по вычислительной математике – изд. 2, Москва «Высшая школа» - 1990;
Робоча програма, методичні вказівки та контрольні завдання до вивчення дисципліни: “Числові методи та моделювання на ЕОМ” для студентів спеціальності 7.092501 – автоматизоване управління технологічними процесами . / Укл. К.У. Чуднов. – Дніпропетровськ : НМетАУ, 2008. – с.57;
Курош А.Г. Курс высшей алгебры.– М.: ФМ, 1963;
Методические указания по применению пакета Mathcad при изучении дисциплины “Численные методы” для студентов всех специальностей /Сост. К.У. Чуднов. – Днепропетровск: НМетАУ, 2001. –52 с;
Ананий В. Левитин -Алгоритмы: введение в разработку и анализ = IntroductiontoTheDesignandAnalysisofAigorithms. — М.: «Вильямс», 2006. — С. 284-291;
Волков Е. А. - Численные методы. — Учеб. пособие для вузов. — 2-е изд., испр. — М.: Наука, 1987. — 248 с;
С. Б. Гашков - Системы счисления и их применение. — М.: МЦНМО, 2004. — С. 37-39.
Хортон А. VisualC++ 2010: полный курс.: пер. с англ. – М.: ООО «И.Д.Вильямс», 2011 – 1216 с.
Павловская Т. А.- С/С++. Программирование на языке высокого уровня. – Питер, 2005 – 460 с.
Хабибулин И.Ш. - Программирование на языке высокого уровня С/С++. – СПб.:БХВ-Петербург, 2006 – 512 с.
Додаток 1. Лістинг програми
#include<iostream>
#include<cmath>
#include<iomanip>
usingnamespacestd;
void main()
{
int n;
cout<<"n="; cin>> n;
int a[100];
for (inti=0; i<n; i++){cout<<"a["<<i<<"]="; cin>> a[i];}
for (inti=0; i<n; i++){cout<< a[i] <<' ';}
cout<<endl;
int m;
cout<<"m="; cin>> m;
int b[100];
int vg, ex, ng;
for (int f=-m; f<=m; f++){
ex=0;
cout<< f <<' '<<"="<<' ';
{
b[0]=a[0];
for (inti=1; i<n; i++){b[i]=f*b[i-1]+a[i];}
for (inti=0; i<n; i++){cout<< b[i] <<' ';
if (b[i]>=0) ex+=1;}
cout<<endl;
}
if (ex==n) {vg=f; break;}
}
int d[100];
for (inti=0; i<n; i++)
d[i]=a[i]*pow((-1),i);
for (inti=0; i<n; i++){cout<< d[i] <<' ';}
cout<<endl;
for (int f=-m; f<=m; f++){
ex=0;
cout<< f <<' '<<"="<<' ';
{
b[0]=d[0];
for (inti=1; i<n; i++){b[i] = f*b[i-1] + d[i];}
for (inti=0; i<n; i++){cout<< b[i] <<' ';
if (b[i]>=0 || i==0) ex+=1;}
cout<<endl;
}
if (ex==n) {ng=-f; break;}
}
cout<<endl<<"ng = "<< ng <<endl<<"vg = "<< vg <<endl;
int g[100];
for (inti=0; i<=n-1; i++){a[i]*=pow((-1),i);}
if (a[0] < 0) {
for (inti=0; i<n; i++) a[i]*=(-1);}
cout<<"znaky: "<<endl;
for (inti=0; i<n; i++) {cout<< a[i] <<' ';}
cout<<endl;
int iD1, iD2, pZ, cZ, iDM = 0;
for (int f=-vg; f<=-ng; f++){
cout<< f <<' '<<"="<<' ';
{
g[0]=a[0];
for (inti=1; i<n; i++) {g[i]=f*g[i-1] + a[i];}
for (inti=0; i<n; i++){cout<< g[i] <<' ';}
cZ=g[n-1];
if (f!=-vg) {
if (((pZ>=0 &&cZ<0) || (cZ>=0 &&pZ<0)) &&iDM==0) {
iD1=f-1;
iD2=f;
iDM++;}
}
pZ=cZ;
cout<<endl;
}
}
cout<<"D1 = "<< iD1 <<endl<<"D2 = "<< iD2 <<endl;
int c[100];
c[0]=(abs(iD1)>abs(iD2)) ? iD2 : iD1;
cout<<"c[0]="<< c[0] <<endl;
intch[100], chP[100], chC[100];
for (inti=0; i<n; i++) chP[i]=a[i];
for (int l=n-1; l>=0; l--){
for (inti=0; i<n-1; i++) {
chC[0]=a[0];
chC[i+1]=c[0]*chC[i]+chP[i+1];}
ch[0]=chC[0];
ch[l]=chC[l];
for (inti=0; i<n-1; i++) {chP[i]=chC[i];}
}
for (inti=0; i<n; i++) ch[i]*= pow(10,i);
int c1[100];
iDM=0;
for (int f=0; f<=10; f++){
cout<< f <<' '<<"="<<' ';
{
c1[0]=ch[0];
for (inti=1; i<n; i++) {c1[i]=f*c1[i-1]+ch[i];}
for (inti=0; i<n; i++){cout<< c1[i] <<' ';}
cZ=c1[n-1];
if (f != 0) {
if (((pZ>=0 &&cZ<0) || (cZ>=0 &&pZ<0)) &&iDM==0) {
iD1=f-1;
iD2=f;
iDM++;}
}
pZ=cZ;
cout<<endl;
}
}
c[1]=(abs(iD1)>abs(iD2)) ? iD2 : iD1;
cout<<"c[1]="<< c[1] <<endl;
for (inti=0; i<n; i++) chP[i]=ch[i];
for (int l=n-1; l>= 0; l--){
for (inti=0; i<n-1; i++) {
chC[0]=a[0];
chC[i+1]=c[1]*chC[i]+chP[i+1];}
ch[0]=chC[0];
ch[l]=chC[l];
for (inti=0; i<n-1; i++) {chP[i]=chC[i];}
}
for (inti=0; i<n; i++) ch[i]*= pow(10,i);
int c2[100];
iDM=0;
for (int f=0; f<=10; f++){
cout<< f <<' '<<"="<<' ';
{
c2[0]=ch[0];
for (inti=1; i<n; i++) {c2[i]=f*c2[i-1]+ch[i];}
for (inti=0; i<n; i++){cout<< c2[i] <<' ';}
cZ=c2[n-1];
if (f!= 0) {
if (((pZ>=0 &&cZ<0) || (cZ>=0 &&pZ<0)) &&iDM==0) {
iD1=f-1;
iD2=f;
iDM++;}
}
pZ=cZ;
cout<<endl;
}
}
c[2]=(abs(iD1)>abs(iD2)) ? iD2 : iD1;
cout<<"c[2]="<< c[2] <<endl;
for (inti=0; i<n; i++) chP[i]=ch[i];
for (int l=n-1; l>=0; l--){
for (inti=0; i<n-1; i++) {
chC[0]=a[0];
chC[i+1]=c[2]*chC[i]+chP[i+1];}
ch[0]=chC[0];
ch[l]=chC[l];
for (inti = 0; i< n-1; i++) {chP[i] =chC[i];}
}
for (inti=0; i<n; i++) ch[i]*=pow(10,i);
for (inti=0; i<n; i++) {cout<<ch[i] <<' ';}
cout<<endl;
floatcf=(abs(ch[n-1]*1.0))/(abs(ch[n-2]*1.0));
cf=(int)(cf*100);
cout<<endl;
cout<<"y="<< c[0] <<"."<< c[1] << c[2] <<cf<<endl;
cout<<"x=-"<< c[0] <<"."<< c[1] << c[2] <<cf<<endl;
}
