Промышленный лизинг Промышленный лизинг  Методички 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [ 89 ] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110

subroutine sy(il,iu,вв,dd,аа,сс) dimension aa(1),bb(1),cc(1),dd(1)

С...

с...subroutine sy solves tridiagonal system by

c.il = subscript of first equation

c...iu = subscript of last equation

c...bb = coefficient behind diagonal

С .dd = coefficient on diagonal

c...aa = coefficient ahead of diagonal

c...cc = element of constant vector

c...

c...establish upper triangular matrix c...

lp = il+1 do 10 i = lp,iu r = bb(i)/dd(i-1) dd(i) = dd(I)-r*aa(i-1) 10 cc(i) - cc(i)-rvcc(i-1) c...

c...back substitution

c...

cc(iu) = cc(IU)/dd(iu) do 20 i = LP,IU J = lU-I+IL 20 cc(j) (cc(j)-aa(j)cc(j+1))/dd(j) c...

c...solution stored in cc c. . .

return end

Текст подпрограммы SY



приложение В

Подпрограмма решения системы уравнений с блочной трехдиагональной матрицей

Здесь описаны подпрограммы решения системы уравнений с блочной трехдиагональной матрицей, разработанные Чакра-варти (Sukumar R. Chakravarthy) в исследовательском центре компании «Рокуэлл Интернейшнл». Подпрограмма NBTRIP предназначена для решения системы уравнений с блочной трехдиагональной матрицей вида

Ai Bj Ci


(B.1)

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

Ai Bi Ci


Aiu Bju

При каждом / блоки A, В и С являются матрицами размера NXNy где Л -любое целое число, большее 1. Отметим, что при = 1 для решения системы уравнений можно воспользоваться алгоритмом прогонки, приведенным в приложении А. Вектор D



Все аргументы имеют тот же смысл, что и в подпрограмме NBTRIP. Однако если ORDER больше 5, то в подпрограмме необходимо изменить размерности массивов AD и CD (размерность этих массивов должна быть не меньше, чем ORDER ** 2, что указано в комментариях к тексту подпрограммы),

В Правой части уравнения при каждом / имеет длину Л. Суммарное число точек, для которых матрица определена (обозначим это число точек через N1), равно

NI = iIU-IL+l), (В.З)

Матрицы Л, В и С имеют размерности: A{N, N, N1), B{N, N, N1), C{N, Ny N1), a вектор D - размерность D{N, N1). Обращение к подпрограмме NBTRIP имеет вид

САЬЬНВТН1Р(Л, В, С, D, /L, IU, ORDER).

Соответствующие аргументы определяются следующим образом:

А - блочная матрица, расположенная под главной диагональю,

В - блочная матрица, расположенная на главной диагонали,

С -блочная матрица, расположенная над главной диагональю, D - вектор правых частей,

IL - минимальное значение /, для которого матрица определена,

IU - максимальное значение /, для которого матрица определена,

ORDER- N {ORDER должно быть целым числом, большим 1).

Вектор X решения системы уравнений записывается подпрограммой на место вектора D. Обращение к подпрограмме PBTRIP имеет вид

CALLPBTRIP(, В, С, D, /L, IU, ORDER),



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [ 89 ] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110