webdevel2
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребят, помогите, пожалуйста! Может кто-нибудь уже писал функцию вычисления обратной матрицы на фортране 90? работаю в ____командной_строке______!!!!!!!!! И еще такой вопрос. У меня есть программа block_alg.f, содержащая следующий текст: program block_alg integer, parameter:: M=12 real A(1:M,1:M) real myfunc(M,M) open (2, file='mymatr.txt') ! открываем файл, который содержит ! матрицу 12*12 read (2,*) A ! считываем матрицу в переменную A print *, myfunc(A,M) ! данная строчка должна выводить матрицу, ! которая является результатом функции myfunc, ! (входные параметры - квадратная матрица A ! и размерность матрицы M) end real function myfunc(A,N) ! реализация функции (реализует векторный ! алгоритм Холецкого) !аргумент А - входная квадратная матрица !аргумент N - размерность integer N real myfunc(N,N) real G(N,N) real A(1:N,1:N) G=0 open(1, file='mymatr.txt') read (1,*) A do j = 1,N A(j:N,j) = A(j:N,j) - MATMUL(A(j:N,1:j-1),A(j,1:j-1)) A(j:N,j) = A(j:N,j)/sqrt(A(j,j)) enddo do j=1,N G(j:N,j) = A(j:N,j) enddo myfunc = G end function myfunc Как правильно передать параметры в функцию и как правильно объявить локальные переменные функции? В общем, объясните, как правильно реализовать функцию? Второе: посмотрите код и скажите пожалуйста, правильно ли я объявляю функцию, которая возвращает матрицу размерности M? Если нет, то как правильно? Заранее спасибо! |