на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Курсовая: Курсовая работа по численным методам
Курсовая: Курсовая работа по численным методам 2.2.3 Интервал Курсовая: Курсовая работа по численным методам . Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Так как первая и вторые производные в точке, от которой мы начинаем работать имеют одинаковые знаки, то работаем по первому варианту. Результаты вычисления приведены в таблице.

Курсовая: Курсовая работа по численным методам

Курсовая: Курсовая работа по численным методам

Курсовая: Курсовая работа по численным методам

Курсовая: Курсовая работа по численным методам

Курсовая: Курсовая работа по численным методам

5,0000000

6,0000000

-12,0000000

4,0000000

0,6666667

5,7500000

6,0000000

-2,0156250

4,0000000

0,3359375

5,8337662

6,0000000

-0,1613014

4,0000000

0,0268836

5,8402098

6,0000000

-0,0120198

4,0000000

0,0020033

5,8406885

6,0000000

-0,0008909

4,0000000

0,0001485

5,8407240

6,0000000

-0,0000660

4,0000000

0,0000110

Курсовая: Курсовая работа по численным методам Итак, корнями уравнения Курсовая: Курсовая работа по численным методам будут Курсовая: Курсовая работа по численным методам , Курсовая: Курсовая работа по численным методам , Курсовая: Курсовая работа по численным методам . 2.3 Метод касательных (метод Ньютона). В век повальной компьютеризации не есть хорошо считать при помощи логарифмической линейки. Поэтому, разработаем алгоритм и прикладную программу для решения кубических уравнений методом Ньютона. Ниже приведена блок-схема алгоритма и листинг программы, реализующей данный алгоритм на языке С++. Также привожу текст, которая выдает данная программа при решении исходного уравнения. Курсовая: Курсовая работа по численным методам //метод Ньютона длЯ решениЯ кубических уравнений #include<math.h> #include<iostream.h> double a[4]={0}, b[3]={0}, c[2]={0}, prec=0.00000; double minim=0, maxim=0; void Hello(void); void Input(); void Derivative(); void Calculation(); double Calc_Fun(double); double Calc_First(double); double Calc_Second(double); main(void) { Hello(); Input(); Derivative(); Calculation(); return 0; } void Hello(void) { cout<<"Программа длЯ решениЯ кубических уравнений методом касательных (метод Ньютона).\n\n"; } void Input() { cout<<"Кубическое уравнение имеет вид"<<endl <<"a1*x^3+a2*x^2+a3*x+a4=0"<<endl<<endl; for (int i=0;i<4;i++) { cout<<"Введите значение коэффициента a["<<i+1<<"] : "; cin>>a[i]; } cout<<endl<<"Необходимо указать интервал поиска решениЯ."<<endl <<"Введите нижнюю границу поиска : "; cin>>minim; cout<<"Введите верхнюю границу поиска : "; cin>>maxim; while(minim==maxim||minim>maxim) { cout<<"\nНижнЯЯ граница должна быть меньше верхней и не может быть ей равна."<<endl <<"Повторите ввод нижней границы : "; cin>>minim; cout<<"Повторите ввод верхней границы : "; cin>>maxim; } cout<<"Введите допустимую погрешность : "; cin>>prec; } void Derivative() { b[0]=a[0]*3; b[1]=a[1]*2; b[2]=a[2]; c[0]=b[0]*2; c[1]=b[1]; cout<<"\n\n\n" <<"Исходное уравнение имеет вид : \n\n" <<a[0]<<"x^3+("<<a[1]<<")x^2+("<<a[2]<<")x+("<<a[3]<<")=0\n\n" <<"ПерваЯ производнаЯ имеет вид : \n\n" <<"f'(x)="<<b[0]<<"x^2+("<<b[1]<<")x+("<<b[2]<<")\n\n" <<"ВтораЯ производнаЯ имеет вид : \n\n" <<"f''(x)="<<c[0]<<"x+("<<c[1]<<")\n\n"; } void Calculation() <<"-------------------------------------------------"<<endl; double Calc_Fun(double x) { return (a[0]*x*x*x+a[1]*x*x+a[2]*x+a[3]); } double Calc_First(double x) { return (b[0]*x*x+b[1]*x+b[2]); } double Calc_Second(double x) { return (c[0]*x+c[1]); } Программа длЯ решениЯ кубических уравнений методом касательных (метод Ньютона). Кубическое уравнение имеет вид a1*x^3+a2*x^2+a3*x+a4=0 Введите значение коэффициента a[1] : 1 Введите значение коэффициента a[2] : -6 Введите значение коэффициента a[3] : -9 Введите значение коэффициента a[4] : 58 Необходимо указать интервал поиска решениЯ. Введите нижнюю границу поиска : -4 Введите верхнюю границу поиска : -3 Введите допустимую погрешность : 0.00005 Исходное уравнение имеет вид : 1x^3+(-6)x^2+(-9)x+(58)=0 ПерваЯ производнаЯ имеет вид : f'(x)=3x^2+(-12)x+(-9) ВтораЯ производнаЯ имеет вид : f''(x)=6x+(-12) ------------------------------------------------- | Xn | f(Xn) | |f(Xn)|/m | ------------------------------------------------- | -4| -66| 1.222222222| | -3.24137931| -9.922506048| 0.183750112| | -3.079817529| -0.40621762| 0.007522548518| | -3.07261683|-0.000789793230|1.462580056e-05| ------------------------------------------------- Программа длЯ решениЯ кубических уравнений методом касательных (метод Ньютона). Кубическое уравнение имеет вид a1*x^3+a2*x^2+a3*x+a4=0 Введите значение коэффициента a[1] : 1 Введите значение коэффициента a[2] : -6 Введите значение коэффициента a[3] : -9 Введите значение коэффициента a[4] : 58 Необходимо указать интервал поиска решениЯ. Введите нижнюю границу поиска : 3 Введите верхнюю границу поиска : 4 Введите допустимую погрешность : 0.00005 Исходное уравнение имеет вид : 1x^3+(-6)x^2+(-9)x+(58)=0 ПерваЯ производнаЯ имеет вид : f'(x)=3x^2+(-12)x+(-9) ВтораЯ производнаЯ имеет вид : f''(x)=6x+(-12) ------------------------------------------------- | Xn | f(Xn) | |f(Xn)|/m | ------------------------------------------------- | 3| 4| 0.4444444444| | 3.222222222| 0.159122085| 0.01768023167| | 3.231855174| 0.000341137633|3.790418145e-05| ------------------------------------------------- Программа длЯ решениЯ кубических уравнений методом касательных (метод Ньютона). Кубическое уравнение имеет вид a1*x^3+a2*x^2+a3*x+a4=0 Введите значение коэффициента a[1] : 1 Введите значение коэффициента a[2] : -6 Введите значение коэффициента a[3] : -9 Введите значение коэффициента a[4] : 58 Необходимо указать интервал поиска решениЯ. Введите нижнюю границу поиска : 5 Введите верхнюю границу поиска : 6 Введите допустимую погрешность : 0.00005 Исходное уравнение имеет вид : 1x^3+(-6)x^2+(-9)x+(58)=0 ПерваЯ производнаЯ имеет вид : f'(x)=3x^2+(-12)x+(-9) ВтораЯ производнаЯ имеет вид : f''(x)=6x+(-12) ------------------------------------------------- | Xn | f(Xn) | |f(Xn)|/m | ------------------------------------------------- | 6| 4| 0.6666666667| | 5.851851852| 0.2601229487| 0.04335382479| | 5.840787634| 0.001413241032| 0.000235540172| | 5.840726862|4.255405933e-08|7.092343222e-09| ------------------------------------------------- 2.4 Метод итераций. Как и для предыдущего метода, привожу блок-схему алгоритма решения и листинг программы, реализующей этот алгоритм на языке программирования С++. Курсовая: Курсовая работа по численным методам //метод итераций длЯ решениЯ кубических уравнений #include<math.h> #include<iostream.h> double a[4]={0}, b[3]={0}, prec=0.00000; double minim=0, maxim=0; void Hello(void); void Input(); void Derivative(); void Calculation(); double Calc_Fun(double); double Calc_First(double); main(void) { Hello(); Input(); Derivative(); Calculation(); return 0; } void Hello(void) { cout<<"Программа длЯ решениЯ кубических уравнений методом итераций.\n\n"; } void Input() { cout<<"Кубическое уравнение имеет вид"<<endl <<"a1*x^3+a2*x^2+a3*x+a4=0"<<endl<<endl; for (int i=0;i<4;i++) { cout<<"Введите значение коэффициента a["<<i+1<<"] : "; cin>>a[i]; } cout<<endl<<"Необходимо указать интервал поиска решениЯ."<<endl <<"Введите нижнюю границу поиска : "; cin>>minim; cout<<"Введите верхнюю границу поиска : "; cin>>maxim; while(minim==maxim||minim>maxim) { cout<<"\nНижнЯЯ граница должна быть меньше верхней и не может быть ей равна." <<endl <<"Повторите ввод нижней границы : "; cin>>minim; cout<<"Повторите ввод верхней границы : "; cin>>maxim; } cout<<"Введите допустимую погрешность : "; cin>>prec; } void Derivative() { b[0]=a[0]*3; b[1]=a[1]*2; b[2]=a[2]; } void Calculation() { double x=0, x_old=0, m=0; cout<<"-------------------------------------------------"<<endl <<"| Xn | f(Xn) | X(n+1)-Xn |"<<endl <<"-------------------------------------------------"<<endl; if(fabs(Calc_First(minim))>fabs(Calc_First(maxim))) m=x=x_old=minim; else m=x=x_old=maxim; m=fabs(1/Calc_First(m)); cout<<"|"; cout.width(15);cout.precision(10); cout<<x; cout<<"|"; cout.width(15);cout.precision(10); cout<<Calc_Fun(x); cout<<"| |\n"; if(Calc_First(x)>0) { do cout.width(15);cout.precision(10); while(( fabs( Calc_Fun(x) - Calc_Fun(x_old) ) )>prec); } else { do cout<<" while(( fabs( Calc_Fun(x) - Calc_Fun(x_old) ) )>prec); } cout<<"-------------------------------------------------"; } double Calc_Fun(double x) { return (a[0]*x*x*x+a[1]*x*x+a[2]*x+a[3]); } double Calc_First(double x) { return (b[0]*x*x+b[1]*x+b[2]); } Программа длЯ решениЯ кубических уравнений методом итераций. Кубическое уравнение имеет вид a1*x^3+a2*x^2+a3*x+a4=0 Введите значение коэффициента a[1] : 1 Введите значение коэффициента a[2] : -6 Введите значение коэффициента a[3] : -9 Введите значение коэффициента a[4] : 58 Необходимо указать интервал поиска решениЯ. Введите нижнюю границу поиска : -4 Введите верхнюю границу поиска : -3 Введите допустимую погрешность : 0.00005 ------------------------------------------------- | Xn | f(Xn) | X(n+1)-Xn | ------------------------------------------------- | -4| -66| | | -3.24137931| -9.922506048| 56.07749395| | -3.127327517| -3.12093462| 6.801571427| | -3.091454705| -1.064778438| 2.056156183| | -3.079215872| -0.372281515| 0.6924969227| | -3.074936774| -0.131239433| 0.241042082| | -3.073428275| -0.04639844126| 0.08484099175| | -3.07289496| -0.01642029825| 0.02997814301| | -3.072706221|-0.005813178631| 0.01060711962| | -3.072639403|-0.002058264249| 0.003754914382| | -3.072615744|-0.000728799396| 0.001329464852| | -3.072607367|-0.000258060628|0.0004707387678| | -3.072604401|-9.137721784e-0|0.0001666834108| | -3.072603351|-3.235601088e-0|5.902120696e-05| | -3.072602979|-1.145703711e-0|2.089897377e-05| ------------------------------------------------- Программа длЯ решениЯ кубических уравнений методом итераций. Кубическое уравнение имеет вид a1*x^3+a2*x^2+a3*x+a4=0 Введите значение коэффициента a[1] : 1 Введите значение коэффициента a[2] : -6 Введите значение коэффициента a[3] : -9 Введите значение коэффициента a[4] : 58 Необходимо указать интервал поиска решениЯ. Введите нижнюю границу поиска : 3 Введите верхнюю границу поиска : 4 Введите допустимую погрешность : 0.00005 ------------------------------------------------- | Xn | f(Xn) | X(n+1)-Xn | ------------------------------------------------- | 3| 4| | | 3.222222222| 0.159122085| 3.840877915| | 3.231062338| 0.01338370012| 0.1457383849| | 3.231805877| 0.001151957391| 0.01223174272| | 3.231869875|9.934183961e-05| 0.001052615552| | 3.231875394|8.568402322e-06|9.077343728e-05| | 3.23187587|7.390497921e-07| 7.82935253e-06| ------------------------------------------------- Программа длЯ решениЯ кубических уравнений методом итераций. Кубическое уравнение имеет вид a1*x^3+a2*x^2+a3*x+a4=0 Введите значение коэффициента a[1] : 1 Введите значение коэффициента a[2] : -6 Введите значение коэффициента a[3] : -9 Введите значение коэффициента a[4] : 58 Необходимо указать интервал поиска решениЯ. Введите нижнюю границу поиска : 5 Введите верхнюю границу поиска : 6 Введите допустимую погрешность : 0.00005 ------------------------------------------------- | Xn | f(Xn) | X(n+1)-Xn | ------------------------------------------------- | 6| 4| | | 5.851851852| 0.2601229487| 3.739877051| | 5.842217669| 0.0346921878| 0.2254307609| | 5.840932773| 0.004788677115| 0.02990351069| | 5.840755414|0.0006639855431| 0.004124691572| | 5.840730822|9.212373716e-05|0.0005718618059| | 5.84072741|1.278267885e-05|7.934105832e-05| | 5.840726937|1.773688694e-06|1.100899016e-05| ------------------------------------------------- Решив уравнение Курсовая: Курсовая работа по численным методам , получили корень Курсовая: Курсовая работа по численным методам
МетодКорень № 1Корень № 2Корень № 3
Хорд-3,0726383,2318815,840724
Касательных (Ньютона)-3,0726163,2318555,840726
Итераций-3,0726023,2318755,840726
Для дальнейших расчетов будем использовать среднее арифметическое значение полученных корней. Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам 3. Используя полученные значения, определим собственные значения исходной матрицы. Собственные вектора матрицы А=Курсовая: Курсовая работа по численным методам определим по формуле Курсовая: Курсовая работа по численным методам Для нашей матрицы, данная формула примет следующий вид Курсовая: Курсовая работа по численным методам Коэффициенты Курсовая: Курсовая работа по численным методам определяются по схеме Горнера: Курсовая: Курсовая работа по численным методам Для Курсовая: Курсовая работа по численным методам имеем: Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Для Курсовая: Курсовая работа по численным методам имеем: Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Для Курсовая: Курсовая работа по численным методам имеем: Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Далее можем найти собственные векторы: Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам 4. Для контроля полученных значений, развернем исходную матрицу А=Курсовая: Курсовая работа по численным методам , и определим ее собственные векторы методом непосредственного развертывания. Характеристический многочлен для данной матрицы имеет вид: Курсовая: Курсовая работа по численным методам . Находим Курсовая: Курсовая работа по численным методам . Число диагональных миноров второго порядка у матрицы второго порядка Курсовая: Курсовая работа по численным методам . Выписываем эти миноры и складываем их: Курсовая: Курсовая работа по численным методам . И, в заключение, находим Курсовая: Курсовая работа по численным методам Таким образом, характеристическое уравнение имеет вид Курсовая: Курсовая работа по численным методам Данное уравнение идентично уравнению, полученному при помощи метода Крылова. Нет смысла заново его решать. Воспользуемся уже вычисленными корнями (их средним значением). Определим собственный вектор Курсовая: Курсовая работа по численным методам , соответствующий Курсовая: Курсовая работа по численным методам . Курсовая: Курсовая работа по численным методам , или Курсовая: Курсовая работа по численным методам Из третьего уравнения системы выведем Курсовая: Курсовая работа по численным методам и подставим его в первое уравнение системы Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Примем Курсовая: Курсовая работа по численным методам , тогда Курсовая: Курсовая работа по численным методам и Курсовая: Курсовая работа по численным методам . Итак, искомый вектор матрицы Курсовая: Курсовая работа по численным методам , найденный с точностью до постоянного множителя Курсовая: Курсовая работа по численным методам , для собственного значения матрицы Курсовая: Курсовая работа по численным методам будет: Курсовая: Курсовая работа по численным методам При помощи метода Крылова, мы получили точное значение собственного вектора Курсовая: Курсовая работа по численным методам . Мы можем проверить наши вычисления, взяв Курсовая: Курсовая работа по численным методам : Курсовая: Курсовая работа по численным методам Как видно, мы получил идентичный, до третьего знака, результат. Определим собственный вектор Курсовая: Курсовая работа по численным методам , соответствующий Курсовая: Курсовая работа по численным методам . Курсовая: Курсовая работа по численным методам , или Курсовая: Курсовая работа по численным методам Из третьего уравнения системы выведем Курсовая: Курсовая работа по численным методам и подставим его в первое уравнение системы Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Примем Курсовая: Курсовая работа по численным методам , тогда Курсовая: Курсовая работа по численным методам и Курсовая: Курсовая работа по численным методам . Итак, искомый вектор матрицы Курсовая: Курсовая работа по численным методам , найденный с точностью до постоянного множителя Курсовая: Курсовая работа по численным методам , для собственного значения матрицы Курсовая: Курсовая работа по численным методам будет: Курсовая: Курсовая работа по численным методам При помощи метода Крылова, мы получили точное значение собственного вектора Курсовая: Курсовая работа по численным методам . Мы можем проверить наши вычисления, взяв Курсовая: Курсовая работа по численным методам : Курсовая: Курсовая работа по численным методам Как видно, мы получил идентичный, до третьего знака, результат. Определим собственный вектор Курсовая: Курсовая работа по численным методам , соответствующий Курсовая: Курсовая работа по численным методам . Курсовая: Курсовая работа по численным методам , или Курсовая: Курсовая работа по численным методам Из третьего уравнения системы выведем Курсовая: Курсовая работа по численным методам и подставим его в первое уравнение системы Курсовая: Курсовая работа по численным методам Курсовая: Курсовая работа по численным методам Примем Курсовая: Курсовая работа по численным методам , тогда Курсовая: Курсовая работа по численным методам и Курсовая: Курсовая работа по численным методам . Итак, искомый вектор матрицы Курсовая: Курсовая работа по численным методам , найденный с точностью до постоянного множителя Курсовая: Курсовая работа по численным методам , для собственного значения матрицы Курсовая: Курсовая работа по численным методам будет: Курсовая: Курсовая работа по численным методам При помощи метода Крылова, мы получили точное значение собственного вектора Курсовая: Курсовая работа по численным методам . Мы можем проверить наши вычисления, взяв Курсовая: Курсовая работа по численным методам : Курсовая: Курсовая работа по численным методам Как видно, мы получил идентичный, до третьего знака, результат.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.