ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2025

Просмотров: 236

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

20*106Па

5*106Па

4*106Па

10*106Па

Рисунок 2.Трехосное напряженное состояние элемента тела.

Если исходить из того, что разрушение произойдет при максимальном напряжении, то необходимо знать величину наибольшего главного напряжения, которое соответствует наибольшему собственному значению матрицы напряжений. Для нахождения этого напряжения воспользуемся методом итерации Ниже приведена программа для ЭВМ, с помощью которой итерационная процедура осуществляется до тех пор, пока разность между собственными значениями, вычисленными в последовательных итерациях, не станет менее 0,01%. В программе использованы две подпрограммы —GMPRDиз пакета программ для научных исследований фирмыIВМ, служащая для перемножения матриц иNORML, нормирующая собственные векторы по наибольшему элементу.

{**********************************************************************}

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

{**********************************************************************}

DIMENSION S(3,3),X(3),R(3)

S(1,1) = 10.E06

S(1,2) = 5.ЕО6

S(2,1) = S(1,2)

S(1,3) = 6.E06

S(3,1) = S(1,3)

S(2,2) = 20.E06

S(2,3) = 4.E06

S(3,2) = S(2,3)

S(3,3) = З0.Е06

X(1) = 1.

Х(2) = 0.0

Х(3) = 0.0

XOLD = 0.0

I = 0

WRITE(6 100)

WRITE(6 101)

WRITE(6 102)

WRITE(6 100)

WRITE(6 104) I,X(1),X(2),X(3)

DO 1 1=1,50

CALL GMPRD (S, X, R, 3, 3, 1)

DO 2 J=1,3

2 X(J) = R(J)

CALL NORML(XLAM,X)

WRITE(6,103) I,XLAM,X(1),X(2),X(3)

IF(ABS((XOLD-XLAM)/XLAM).LE.0.0001) GO TO 3

  1. XOLD = XLAM

3 WRITE(6,100)

100 FORMAT (1X 54C'-''))

  1. FORMAT (2X ‘ITERATION’, ЗХ ‘ITERATION’, 11X,‘EIGENVECTOR')

  2. FORMAT (3X 'NUMBER", 6X ,'(N/M**2)’, 5X, ‘X(1)’,

6X,'X(2)',6X,’X(3)’)

103 FORMAT (1X,I5,7X,E12.5,3F10.5)

104 FORMAT (1X,I5,19X,3F10.5)

STOP

END

{**********************************************************************}

SUBROUTINE NORML(XL,X)

DIMENSION X(3)

{**********************************************************************}


Подпрограмма norml.

Эта подпрограмма находит наибольший из трех элементов собственного вектора и нормирует собственный вектор по этому наибольшему элементу.

{**********************************************************************}

# FIND THE LARGEST ELEMENT

XBIG = X(1)

IF(X(2).GT.XBIG)XBIG=X(2)

IF(X(3).GT.XBIG)XBIG=X(3)

# Нормирование по XBIG

X(l) = X(1)/XBIG

X(2) = X(2)/XBIG

X(3) = X(3)/XBIG

XL = XBIG

RETURN

END

{**********************************************************************}

Результат работы программы получаем в виде:

Номер

Итерации

Собственное

Значение

( N / M ** 2 )

Собственный вектор

X (1)

X (2)

X (3)

0.

1.00000

0.

0.

0.10000 Е 08

1,00000

0.50000

0.60000

0.26000Е 08

0.61923

0.66923

1.00000

0.36392Е 08

0.42697

0.56278

1.00000

0.34813Е 08

0.37583

0.49954

1.00000

0.34253Е 08

0.35781

0.46331

1.00000

0.34000Е 08

0.34984

0.44280

1.00000

0.33870Е 08

0.34580

0.43121

1.00000

0.33800Е 08

0.34362

0.42466

1.00000

0.33760Е 08

0,34240

0.42094

1.00000

0.33738Е 08

0.34171

0.41884

1.00000

0.33726Е 08

0.34132

0.41765

1.00000

0.33719Е 08

0,34110

0.41697

1.00000

0.33714Е 08

0.34093

0.41658

1.00000

0.33712Е 08

0.34091

0.41636

1.00000


Отметим, что для достижения требуемой точности потребовалось 14 итераций.

Определение наименьшего собственного значения методом итераций

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

А-1АX=А-1X.

Если обе части этого соотношения умножим на 1/, то получим

1/ Х = A-1X.

Ясно, что это уже иная задача на собственное значение, для кото­рой оно равно 1/, а рассматриваемой матрицей является A-1. Максимум 1/, достигается при наименьшем . Таким образом, описанная выше итерационная процедура может быть использо­вана для определения наименьшего собственного значения новой системы.

Определение промежуточных собственных значений методом итераций

Найдя наибольшее собственное значение, можно определить следующее за ним по величине, заменив исходную матрицу мат­рицей, содержащей лишь оставшиеся собственные значения. Используем для этого метод, называемый методом исчерпывания. Для исходной симметричной матрицы A с известным наиболь­шим собственным значением 1 и собственным вектором X1 мож­но воспользоваться принципом ортогональности собственных векторов, т. е. записать

ХiT Хj =0 при i<>j и ХiT Хj =1 при i=j.

Если образовать новую матрицу A* в соответствии с формулой

A* =A-1Х1 Х1T,

то ее собственные значения и собственные векторы будут связаны соотношением

А*Xi =iXi.

Из приведенного выше выражения для матрицы A* следует, что

A* Хi = AХi -Х1 Х1TXi.

Здесь при i = 1 свойство ортогональности позволяет привести правую часть к виду

A Х1 - 1 Х1.

Но по определению собственных значений матрицы A это выра­жение должно равняться нулю. Следовательно, собственное значение 1 матрицы A* равно нулю, а все другие ее собственные значения совпадают с собственными значениями матрицы A. Таким образом, матрица A* имеет собственные значения 0, 2, 3,. . ., n и соответствующие собственные векторы Х1, Х2, Хз,. . . .... Хn. В результате выполненных преобразований наибольшее собственное значение 1 было изъято, и теперь, чтобы найти сле­дующее наибольшее собственное значение 2, можно применить к матрице A* обычный итерационный метод. Определив 2 и Х2, повторим весь процесс, используя новую матрицу A**, получен­ную с помощью A*, 2 и Х2. Хотя на первый взгляд кажется, что этот процесс должен быстро привести к цели, он имеет сущест­венные недостатки. При выполнении каждого шага погрешности в определении собственных векторов будут сказываться на точ­ности определения следующего собственного вектора и вызы­вать накопление ошибок. Поэтому описанный метод вряд ли применим для нахождения более чем трех собственных значений, начиная с наибольшего или наименьшего. Если требуется полу­чить большее число собственных значений, следует пользоваться методами преобразования подобия.



4. Определение собственных значений методами преобразований подобия

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

Метод Якоби

Метод Якоби позволяет привести матрицу к диагональному виду, последовательно, исключая все элементы, стоящие вне глав­ной диагонали. К сожалению, приведение к строго диагональному виду требует бесконечно большого числа шагов, так как образо­вание нового нулевого элемента на месте одного из элементов матрицы часто ведет к появлению ненулевого элемента там, где ранее был нуль. На практике метод Якоби рассматривают, как итерационную процедуру, которая в принципе позволяет доста­точно близко подойти к диагональной форме, чтобы это преобра­зование можно было считать законченным. В случае симметрич­ной матрицы A действительных чисел преобразование выполня­ется с помощью ортогональных матриц, полученных в результате вращении в действительной плоскости. Вычисления осуществ­ляются следующим образом. Из исходной матрицы Аобразуют матрицу A1 ==Р1АР1T.При этом ортогональная матрицаР1 выбирается так, чтобы в матрицеА1появился нулевой элемент, стоящий вне главной диагонали. Затем изА1с помощью второй преобразующей матрицыР2,образуют новую матрицуA2. При этомР2,выбирают так, чтобы вA2появился еще один нулевой внедиагональный элемент. Эту процедуру продолжают, стремясь, чтобы на каждом шаге в нуль обращался наибольший внедиагональный элемент. Преобразующая матрица для осуществления указанной операции на каждом шаге конструируется следующим образом. Если элементаklматрицыАт-1имеет максимальную величину, тоРтсоответствует

Pkk = Pll = cos ,

Pkl = - Plk = sin ,

Pii = 1 при i <> k, l, Pij = 0 при i <> j.


Смотрите также файлы