Нахождение собственных значений методом Леверрье


Нахождение собственных значений методом Леверрье


Введение

математический леверрье значение

В настоящее время вычислительная математика и смежные с ней разделы привлекают большое внимание специалистов различных областей науки и техники, являясь эффективным аппаратом формализации современных инженерных задач. Вычислительная математика это наука о методах решения вычислительных задач на ЭВМ. Она появилась от необходимости решать практические задачи, такие, как управление сложными технологическими процессами, управление полётом ракет, моделирование физических процессов (процесса ядерного распада, химических реакций, роста кристаллов и др.).

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


1.Собственные значения и собственные векторы

математический леверрье значение

Задачи нахождения собственных значений и соответствующих им собственных векторов возникают в самых различных научных задачах. Например, при анализе динамических систем собственные значения определяют частоты колебаний, а собственные векторы характеризуют их форму. В электро-радиотехнических устройствах собственные значения матриц определяют характеристические постоянные времени и режимы работы этих устройств.


1.1Математическое обоснование метода


Рассмотрим квадратную матрицу n-ого порядка:



Собственные значения li квадратной матрицы A есть действительные или комплексные числа, удовлетворяющие условию:


,


E - единичная матрица,

- собственный вектор матрицы A, соответствующий некоторому собственному значению l.

Матрица называется характеристической матрицей матрицы A. Т.к. в матрице по главной диагонали стоят l, а все остальные элементы равны нулю, то характеристическая матрица имеет вид:


Определитель этой матрицы называется характеристическим определителем и равен:



В развернутом виде он является многочленом n-ой степени относительно l, т.к. при вычислении этого определителя произведение элементов главной диагонали дает многочлен со старшим членом , т.е.



и называется характеристическим многочленом. Корни этого многочлена - собственные значения или характеристические числа матрицы A. Числа называются коэффициентами характеристического многочлена.

Ненулевой вектор называется собственным вектором матрицы A, если эта матрица переводит вектор X в вектор


,


т.е. произведение матрицы A на вектор X и произведение характеристического числа l на вектор X есть один и тот же вектор. Каждому собственному значению матрицы соответствует свой собственный вектор .

Для определения координат собственного вектора составляется характеристическое уравнение: . Переписав его в векторном виде и выполнив умножение, получим систему линейных однородных уравнений:



Определитель этой системы равен нулю, т.к. из этого условия были определены собственные значения матрицы A. Следовательно, система имеет бесконечное множество решений. Ее можно решить с точностью до постоянного множителя (как систему однородных уравнений). Решив эту систему, мы найдем все координаты собственного вектора X. Подставляя в систему однородных уравнений поочередно , получаем n собственных векторов.

При определении собственных значений и принадлежащих им собственных векторов решается одна и двух задач:

  1. Определение все собственных значений и принадлежащих им собственных векторов матриц;
  2. Определение одного или нескольких собственных значений и принадлежащих им собственных векторов.

Первая задача состоит в развертывании характеристического определителя в многочлен n-й степени (т.е. в определении коэффициентов ) с последующим вычислением собственных значений и, наконец, в определении координат собственного вектора .

Вторая задача заключается в определении собственных значений итерационными методами без предварительного развертывания характеристического определителя (метод итераций). Методы первой задачи (метод Данилевского, метод Леверрье-Фаддеева) относятся к точным, т.е. если их применить для матриц, элементы которых заданы точно (рациональными числами), и точно проводить вычисления (по правилам действий с обыкновенными дробями), то в результате будет получено точное значение коэффициентов характеристического многочлена, и координаты собственных векторов окажутся выраженными точными формулами через собственные значения.

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

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

Некоторые свойства собственных значений векторов:

  • Все n собственных значений любой симметричной матрицы (aij=aji; i,j = 1,2,…,n) вещественны.
  • Собственные векторы, отвечающие различным собственным значениям симметричной матрицы, ортогональны:

, при ,

, при .

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

, где P - неособая матрица, имеют одинаковые собственные значения, их собственные вектора связаны соотношением:



Характеристическое уравнение



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

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

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


1.2Метод итераций


Для решения частичной проблемы собственных значений (отыскания наибольших и наименьших собственных чисел), применяется метод простой итерации решения систем уравнений


С помощью итерационных методов можно определить наибольшее по модулю собственное число матрицы A без раскрытия определителя.

Итак, пусть



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


,


т.е. наибольшее по модулю собственное число. Тогда для нахождения приближенного значения корня используется следующая схема:

  • произвольно выбирают начальный вектор Y;
  • составляют последовательные итерации


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

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


1.3Метод Леверрье-Фаддеева


Этот метод относится к группе тех, которые решаются методами развертывания определителей. Этот метод был предложен Леверрье и упрощен советским математиком Фаддеевым. Метод Леверрье основан на формулах Ньютона для сумм степеней корней алгебраического уравнения и заключается в следующем. Пусть



характеристический многочлен матрицы , и - полная совокупность корней характеристического многочлена. Рассмотрим суммы:


, ,


иначе:



(каждая сумма есть след матрицы ). Тогда при справедливы формулы Ньютона:



откуда получаем:

при

при



при



Следовательно, коэффициенты характеристического многочлена можно легко определить, если известны суммы .

Таким образом, схема раскрытия характеристического многочлена состоит в следующем:

  1. вычисляют степени


определяют - суммы элементов главных диагоналей матриц ;

по вышеприведенным формулам Ньютона находим коэффициенты .

Видоизмененный метод Леверрье, предложенный Фаддеевым, заключается в вычислении последовательности матриц по следующей схеме:



1.3.1Основные пункты алгоритма метода Леверрье-Фаддеева

Ввод исходной матрицы , где n - размерность матрицы.

Вычисление коэффициентов .

Решение характеристического уравнения (определение ). В качестве метода решения характеристического уравнения выбран уединения корней уравнения и метод хорд.

Задание начальных единичных векторов .

Вычисление собственного вектора , соответствующего .

Нормировка вектора .

  1. Конец алгоритма.

При решении данной задачи использовались и некоторые вспомогательные процедуры, - например процедура возведения в степень.


1.4Численное решение задачи нахождения собственных значений матриц методом Леверрье-Фаддеева


Используя метод Леверрье-Фаддеева, найти собственные числа матрицы, а так же наибольший собственный вектор.

.

Решение

Определяем коэффициенты характеристического уравнения посредством построения последовательности матриц.

,

,



Результаты дальнейших вычислений примут вид:

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

Итак, используя метод итераций, определить первое наибольшее собственное значение и первый собственный вектор матрицы

.

Решение

Выбираем начально-свободный вектор



Вычисляем



Дальнейшие вычисления можно свести в Таблицу1.


Таблица 1.

A2,6 1,2 -0,11,2 2,1 1,6-0,1 1,6 0,8Y01.001.001.00Y13.704.902.304.133.764.05Y215.2718.419.313.993.903.80Y360.8671.8835.383.963.903.88Y4240.96280.59137.223.943.913.90Y5949.491097.95534.633.933.923.91Y63732.754300.492089.483.933.923.91Y714656.7916853.498179.093.923.923.92

Дальнейшие итерации можно прекратить. Собственное значение (наибольшее) . Нормированный собственный вектор .


2.Приложение


2.1Структурная схема алгоритма метода Леверрье-Фаддеева


Процедура Trace формирования "следа" матрицы AMatrix


Процедура VInter формирования последовательности матриц Bmatrix



Структурная схема процедуры AConsistance


Структурная схема метода хорд для решения характеристического уравнения


Процедура уединения корней характеристического уравнения.

2.2 Листинг программы на алгоритмическом языке "Pascal"


{Метод Лаверрье-Фаддеева }

{Метод нахождения собственных чисел матриц}

{$M 1024,0,0}{Освобождение памяти для потомка}

uses Dos,Crt;N=10;=15;=2;=3;=7;=10;=3;TMatrix=array[1..N,1..N] of real;=array[1..N] of real;

{Процедура решает задачу ввода порядка исходной матрицы}

procedure Read_Range(var Range:integer);

writeln('Блок ввода данных');

write('Введите порядок исходной матрицы A_Matrix=');

read(Range);

end;

{Процедура считывания исходной матрицы}

procedure InputMatrix(var AMatrix:TMatrix;Range:integer);i,j,cols,rows:integer;:=Range;:=Range;('Введите исходную матрицу');i:=1 to cols doj:=1 to rows do(OutPutI+ScaleI*i,OutPutJ+ScaleJ*j);(AMatrix[i,j]);;;PlotSameMatrix(var CEquival:TMatrix;AMatrix:TMatrix;Range:integer);i,j:integer;i:=1 to Range doj:=1 to Range do[i,j]:=AMatrix[i,j];;

ClrScr;

end;

{Процедуры форматированного вывода/печати матриц AMatrix}

procedure Coord_AMatrix(var AMatrix:TMatrix;Range:integer);i,j,k:integer;i:=1 to Range doj:=1 to range do(OutPutI+ScaleI*i,OutPutJ+ScaleJ*j);i=j then TextColor(DiagonColor) else TextColor(MainTextColor);(AMatrix[i,j]:4:2);;;

{==========================================================================}Coord_VMatrix(var VMatrix:TMatrix;Range:integer);i,j:integer;i:=1 to Range doj:=1 to range do(OutPutI+ScaleI*i,OutPutJ+ScaleJ*j);(VMatrix[i,j]:4:2);;;

{Суммирование диагональных элементов (след матрицы)}

function Trace(Range:integer;AMatrix:TMatrix):real;i,N:integer;_sum:real;_sum:=0;:=0;:=Range;i:=1 to N do_sum:=diag_sum+AMatrix[i,i];:=Diag_sum;;;

{Промежуточная матрица V}VInter(var VMatrix:TMatrix;BMatrix,AMatrix:TMatrix;Range:integer;:real);i,j,m,i0:integer;;(MainTextColor);( 'Промежуточная матрица Bn');;i:=1 to Range doj:=1 to Range doi=j then BMatrix[i,j]:=AMatrix[i,j]-PkBMatrix[i,j]:=AMatrix[i,j];[i,j]:=BMatrix[i,j];_VMatrix(VMatrix,Range);;;

end;

{Процедура формирования матрицы A (последовательности матриц)}

procedure AConsistance(var AMatrix:TMatrix;CEquival,V:TMatrix;Range:integer);i,j,k:integer;;i:=1 to Range doj:=1 to Range do[i,j]:=0;;k:=1 to Range doi:=1 to Range doj:=1 to Range do[k,i]:=AMatrix[k,i]+CEquival[k,j]*V[j,i];;_AMatrix(AMatrix,Range);;

end;

{==========================================================================}

{Промежуточная функция возведения в степень}

function pow(x:real;y:integer):real;x=0 then pow:=0;x>0 then pow:=exp(y*ln(x));(x<0) and ((y mod 2)=0) then pow:=exp(y*ln(-x));(x<0) and ((y mod 2)<>0) then pow:=-exp(y*ln(-x));;

{Окончательная функция}f(x:real;i:integer;PVec:TVec;Range:integer):real;k:integer;:=1;Range=4 then f:=pow(x,4)-PVec[k]*pow(x,3)-PVec[k+1]*pow(x,2)

PVec[k+2]*x-PVec[k+3];Range=3 then f:=pow(x,3)-PVec[k]*pow(x,2)-PVec[k+1]*x-PVec[k+2];;

{Derivative -вторая производная}F_deriv(x:real;i:integer;PVec:TVec;Range:integer):real;k:integer;:=1;Range=4 then F_deriv:=12*pow(x,2)-6*PVec[k]*x-PVec[k+1]*2;Range=3 then F_deriv:=6*x-2*PVec[k];;

{Реализация метода хорд для решения характеристического уравнения}

procedure ChordMethood(var X,Y:real;x1,x2,eps:real;i,Range:integer;PVec:TVec);Ya,Yb,Yk:real;,Xn:real;:integer;:=f(x1,i,PVec,Range);:=f(x2,i,PVec,Range);:=F_deriv(x1,i,PVec,Range);{Вторая производная}Ya*Y>0 then:=x1;Yk:=Ya;X:=x2; Y:=Yb;:=x2;Yk:=Yb; X:=x1;Y:=Ya;;:=X;X:=Xn-(Y/(Y-Yk))*(Xn-Xk);:=f(X,i,PVec,Range);abs(X-Xk)>=eps;('Lambda = ',X:5:4);('root Y= ',Y);;

end;

{Реализация метода уединения и уточнения коренй посредством метода хорд}

procedure Root_limit(var alpha,beta:real;var LVec:TVec;var RootNum:integer;,Range:integer;PVec:TVec);step_h=0.09;,x2,y1,y2:real;,Yb,Yk,Y:real;,Xn,X:real;:real;:integer;:=0;:=alpha;:=x1+step_h;:=f(x1,i,PVec,Range);x2<beta do:=f(x2,i,PVec,Range);y1*y2<0 then(MainTextColor);

writeln('Корень лежит в этих пределах:[',x1:5:4,';',x2:5:4,']');

{Процедура уточнения корней характеристического уравнения}

ChordMethood(X,Y,x1,x2,eps,i,Range,PVec);:=k+1;[k]:=X;:=x2;:=x1+step_h;1:=y2;

end;

RootNum:=k;{Число действительных корней характеристического уравнения}

end;

{===================Тело программы=========================================}

var AMatrix,CEquival,BMatrix,VMatrix:TMatrix;

X_SelfVec,LVec,U_EMatrix:TVec;_CharacteristicParam,Pk,Pn,Lambda,Max:real;{Параметр p характеристического уравнения матрицы},k,k1,i,j,num:integer;,m:integer;,Rows:integer;:TVec;

{Параметры характеристического уравнения уравнения}

Ya,Yb,Yk:real;,Xn,x1,x2:real;,Y:real;,beta,eps:real;:integer;;(MainTextColor);:=0;

Pk:=0;

Read_Range(Range);{Процедура считывает порядок матрицы}

InputMatrix(AMatrix,Range);{Считываем исходную матрицу}

{==========================================================================}

PlotSameMatrix(CEquival,AMatrix,Range);

{Блок вычисления коэффицентов характеристического уравнения матрицы}

ClrScr;

TextColor(MainTextColor);

writeln('Коэффиценты характеристического уравнения');

for k:=1 to Range-1 do:=Trace(Range,AMatrix)/k; {Pk - коэффицент характкристич. уравнения}[k]:=Pk;('Pk_',k,'=',Pk:9:4);;(VMatrix,BMatrix,AMatrix,Range,Pk);(AMatrix,CEquival,VMatrix,Range);(39,1);('Матрица A',k+1,'.');;;:=Trace(Range,AMatrix)/Range;[k+1]:=Pn; {Вектор параметров P}

writeln('P_',Range,'=',Pn:9:2);;;('Вектор коэффицентов P');k:=1 to Range do(OutPutI+ScaleI*k,OutPutJ);(MainTextColor);

write(PVec[k]:8:3);;

readln;

{==================Блок вычисления собственных чисел матрицы===============}

ClrScr;(MainTextColor);('**********************');('Ведите пределы, в которых располагаются корни уравнения.');

write('Enter alpha= ');(alpha);('Enter beta= ');(beta);('Enter eps=');(eps);_limit(alpha,beta,LVec,RootNum,i,Range,PVec);;(MainTextColor);('Вектор собственных чисел');k:=1 to RootNum do(OutPutI+ScaleI*k,OutPutJ);(LVec[k]:8:4);;;.


Литература


  1. Воробьева Г.Н., Данилова А.Н. Практикум по вычислительной математике: Учеб. Пособие для техникумов. - М.: Высш. Школа, 1990.
  2. Гловацкая А.П. Методы и алгоритмы вычислительной математики. Учеб. Пособие для вузов. - М.: Радио и связь, 1999.
  3. Численные методы. Учебник для техникумов и вузов. М.: Высшая школа, 1976.

Теги: Нахождение собственных значений методом Леверрье  Курсовая работа (теория)  Математика
Просмотров: 17026
Найти в Wikkipedia статьи с фразой: Нахождение собственных значений методом Леверрье
Назад