.

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

Язык: русский
Формат: реферат
Тип документа: Word Doc
88 946
Скачать документ

. Исходную систему линейных уравнений решить методом Жордана-Гаусса.

Решение. Метод Крылова основан на свойстве квадратной матрицы обращать в
нуль свой характеристический многочлен.

Согласно теореме Гамильтона-Кали, всякая квадратная матрица является
корнем своего характеристического многочлена и, следовательно, обращает
его в нуль.

Пусть

– (1)

характеристический многочлен.

, получим

. (2)

Возьмем произвольный ненулевой вектор

. (3)

:

(4)

Положим

, (5)

т.е.

(6)

Учитывая (5), выражение (4) запишем в виде

, (7)

или в виде

являются коэффициентами характеристического многочлена (1).

характеристического многочлена, то метод Крылова дает возможность
найти соответствующие собственные векторы по следующей формуле:

(8)

определяются по схеме Горнера

(9)

методом Крылова.

Выберем в качестве начального следующий вектор:

Вычислим

Составим матричное уравнение

Полученную систему уравнений решим методом Жордана-Гаусса.

.

имеет вид

необходимо решить полученное характеристическое уравнение третьей
степени

Данное кубическое уравнение невозможно решить стандартными средствами.
Воспользуемся для этой цели числовыми методами, а точнее методами
приближенного вычисления.

2.1 Исследование функции.

Вычислим первую и вторую производные данной функции

Необходимо выбрать интервал, на котором будем находить решение.

Для отделения корней существует несколько способов. Наиболее популярные
из них – графический и аналитический.

В литературе рассматриваются эти способы по отдельности. По заданию
курсовой работы требуется отделить корни каждым из этих способов. Рискну
нарушить это требование, и объединить эти два способа в один. То есть
исследовать функцию аналитически и по результатам исследования построить
приблизительный график функции.

.

Приравняв первую производную к нулю, мы можем получить критические точки
данной функции (точки минимумов и максимумов, или же точки, в которых
функция не определена).

Стоит отметить, что для вычисления квадратного корня, также применимы
числовые методы, на которых и основаны микрокалькуляторы и программы для
ЭВМ. Данные методы основаны на логарифмировании корня и последующего
вычисления.

вычисляется при помощи числового ряда

. Изменив знак равенства на знак неравенства (), можем найти
промежутки возрастания и убывания функции.

.

Приравняв вторую производную к нулю, мы можем найти точку перегиба и,
соответственно, найти интервал, на котором функция выпуклая и вогнутая.

.

.

Далее рассмотрим оставшиеся два интервала.

– значение функции отрицательно, а в первой критической точке
положительно, то будем сужать этот промежуток. В данном случае применим
метод половинного деления.

.

и до бесконечности.

На основании произведенного анализа построим график исходной функции.

2.2 Метод хорд.

Сразу необходимо заметить, что существуют два случая (варианта) при
решении методом хорд.

.

В этом случае итерационный процесс осуществляем по формуле

.

В этом случае итерационный процесс осуществляем по формуле

Для оценки точности приближение можно воспользоваться формулой

,

– точное значение корня.

.

.

Так как первая и вторые производные в точке, от которой мы начинаем
работать имеют различные знаки, то работаем по второму варианту.

Результаты вычисления приведены в таблице.

.

Так как первая и вторые производные в точке, от которой мы начинаем
работать имеют различные знаки, то работаем по второму варианту.

Результаты вычисления приведены в таблице.

.

Так как первая и вторые производные в точке, от которой мы начинаем
работать имеют одинаковые знаки, то работаем по первому варианту.

Результаты вычисления приведены в таблице.

.

2.3 Метод касательных (метод Ньютона).

В век повальной компьютеризации не есть хорошо считать при помощи
логарифмической линейки. Поэтому, разработаем алгоритм и прикладную
программу для решения кубических уравнений методом Ньютона.

Ниже приведена блок-схема алгоритма и листинг программы, реализующей
данный алгоритм на языке С++. Также привожу текст, которая выдает данная
программа при решении исходного уравнения.

//метод Ньютона длЯ решениЯ кубических уравнений

#include

#include

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>a[i];

}

cout>minim;

cout>maxim;

while(minim==maxim||minim>maxim)

{

cout>minim;

cout>maxim;

}

cout>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];

cout0) x=minim;

else x=maxim;

if (Calc_First(minim)>Calc_First(maxim)) m=abs(Calc_First(maxim));

else m=abs(Calc_First(minim));

coutprec)

{

x=(x-(Calc_Fun(x)/Calc_First(x)));

coutU& b U EII& ( * P R T V b ? ? ? O O Oe U Ue TH ??????????????E? ???? ?? ????????Й?Й???????E? ???? ?Й?Й?? yuyuyuyiiiiiii oooo ” A ooooooo ooooo ooooo FfaW ooooo ooooo Ff?] ooooo ooooo wkd j j j j? j? N W(W,W@WTWrW’W?W¬WIWyyoeeeeeeeeeeeeeeeeeeeeeeee ^"^&^oooooooooooooooooooooooooooo cGcgcsc—c!coooooooooooooooooooooooooooo eBe_eneqee?eEeEeoeeoe(foooooooooooooooooooooooooooo „`„ ????? 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

#include

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>a[i];

}

cout>minim;

cout>maxim;

while(minim==maxim||minim>maxim)

{

cout>minim;

cout>maxim;

}

cout>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;

coutfabs(Calc_First(maxim))) m=x=x_old=minim;

else m=x=x_old=maxim;

m=fabs(1/Calc_First(m));

cout0)

{

do

{

x_old=x;

x=x_old-m*Calc_Fun(x_old);

coutprec);

}

else

{

do

{

x_old=x;

x=x_old+m*Calc_Fun(x_old);

coutprec);

}

cout3. Используя полученные значения, определим собственные значения исходной матрицы. определим по формуле Для нашей матрицы, данная формула примет следующий вид определяются по схеме Горнера: имеем: имеем: имеем: Далее можем найти собственные векторы: , и определим ее собственные векторы методом непосредственного развертывания. Характеристический многочлен для данной матрицы имеет вид: . . . Выписываем эти миноры и складываем их: . И, в заключение, находим Таким образом, характеристическое уравнение имеет вид Данное уравнение идентично уравнению, полученному при помощи метода Крылова. Нет смысла заново его решать. Воспользуемся уже вычисленными корнями (их средним значением). . , или и подставим его в первое уравнение системы . будет: . : Как видно, мы получил идентичный, до третьего знака, результат. . , или и подставим его в первое уравнение системы . будет: . : Как видно, мы получил идентичный, до третьего знака, результат. . , или и подставим его в первое уравнение системы . будет: . : Как видно, мы получил идентичный, до третьего знака, результат.

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Ответить

Курсовые, Дипломы, Рефераты на заказ в кратчайшие сроки
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020