есть прога (объединенная из двух подрограмм, взятых из примера из библиотеки IMSL (прикрепляю), которая использует функции LSLTO и LSLTC для решения (Ах = b) теплицевой матрицы, плюс еще тут время выводится (выполнение программы + вывод значений на экраны (функция WRRRN, но в итоге она не нужна, я ее для наглядности вставила)).
Нужно каким-то образом усложнить прогу (сделать матрицу огромного размера, сделать, чтоб много матриц маленького размера считались, ну и все в таком духе), чтоб она считалась 40 секунд минимум, и занимала память 400 Мб (память, рассчитывается вручную, по типу один элемент матрицы это 2 байта, на 400 Мб надо задать матрицу много*много). Нужно, чтоб вся память использовалась (например, все элементы матрицы были задействованы в расчете). И нельзя матрицу забить тупо нулями, должны быть значения.
program programma
REAL :: START_TIME, FINISH_TIME
CALL CPU_TIME (START_TIME)
CALL UNIT1
CALL UNIT2
CALL CPU_TIME (FINISH_TIME)
PRINT *, 'TIME = ', FINISH_TIME - START_TIME
PAUSE
END
SUBROUTINE UNIT1
INTEGER IPATH, N
PARAMETER (N=3)
REAL A(2*N-1), B(N), X(N)
data A /2.0, -3.0, 2.7, 5.5, 3.8/
data B /16.0, -50.0, 5.0/
IPATH = 1
CALL LSLTO (N, A, B, IPATH, X)
CALL WRRRN ('X', 1, N, X, 1, 0)
END SUBROUTINE UNIT1
SUBROUTINE UNIT2
PARAMETER (N=4)
COMPLEX A(2*N-1), B(N), X(N)
DATA A/(2.0,2.0), (-3.0,0.0), (1.0,4.0), (6.0,-2.0), (0.2,1.0), (4.0,2.0), (3.0,-4.0)/
DATA B/(6.0,0.3), (-29.0,-6.0), (7.0,1.0), (-10.0,1.0)/
IPATH = 1
CALL LSLTC (N, A, B, IPATH, X)
CALL WRCRN ('X', 1, N, X, 1, 0)
END SUBROUTINE UNIT2
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |