[FORTRAN] метод Гаусса
а зачем тебе метод гаусса? QR уже не рулит что ли?
А что такое QR?
А есть ли что-нибудь попроще? Там оно как-то сложно устанавливается, a если скачать текст нужной мне процедуры, то там внутри есть еще ссылки на другие процедуры...
Тебе чего вообще надо? Может, тебе вообще хватит в Матлабе написать скрипт на три строчки?
[code]
subrtoutine gauss(A,b,x,n)
...
end subroutine gauss
[\code]
Но если не найду, придется писать самому или LAPACK устанавливать.
Тебе надо решение СЛАУ и метод Гаусса? Или метод Гаусса нужен только чтобы решать СЛАУ?
Переформулирую: какую проблему ты решаешь, в рамках которой возник этот вопрос?
Подойдет любой метод, не только Гаусса, решающий СЛАУ общего вида небольшой (n<36) размерности.
точное решение задачи об упругом изгибе слоистой пластинки.отлично. Берешь Матлаб и делаешь не напрягаясь.
Если решение не подходит, сообщай дополнительные детали.
Спасибо, конечно, но нужно на фортране.
Я так спрашиваю не просто из любопытства, а чтобы сократить тебе количество проблем.
Пока что складывается впечатление, что тебе задали какое-то задание в университете, тебе надо сдать и забыть. И требование Фортрана пришло оттуда же.
Понятия не имею, как это делается на фортране, но есть замечательная книга Numerical recipes in C. Ну так вот, ее клон для фортрана тоже существует.
либо изменяют входную матрицу
используются невырожденные матрицы невысокого ранга (n<36)И чего в этом такого страшного? Нужна исходная матрица - сделай дубликат.
А есть ли что-нибудь попроще? Там оно как-то сложно устанавливается, a если скачать текст нужной мне процедуры, то там внутри есть еще ссылки на другие процедуры...Куда уж проще, ссылки типа dgesv.f plus dependencies для кого сделаны?
Для данной задачи проще, пожалуй, только мат. пакеты (Matlab и т. п. но этот вариант тебя не устраивает.
И что с ним дальше делать, я не знаю.
P.S. Всем спасибо. Постараюсь все-таки сам написать, времени на поиск уже потратил больше, чем ушло бы на написание.
Волшебные буковки PK в начале файла как-бы намекают, что это zip-архив.
Волшебные буковки PK в начале файла как-бы намекают, что это zip-архив.Еще более прозрачный намек на это есть на странице, которая открывается по приведенной мной ссылке.
например, по формулам Крамера.оффтоп, но все же:
самое смешное, что численные алгоритмы нахождения определителя как раз приводят матрицы к треугольному виду, а затем находят произведение диагональных элементов, а вовсе не вычисляют его рекурсивно, как можно было бы подумать, т.к. это оказывается дольше. так что формула крамера в численных методах не актуальна.
По делу:
коли ты занялся программированием на фортране, мой тебе совет - переходи на *nix, ибо научный фортрановский софт чуть менее чем полностью написан под *nix и средства его сборки *nix-специфичны. Во всяком случае с установкой lapack проблем не будет.
ЗЫ А почему в самом деле фортран?
Волшебные буковки "man file" как бы намекают, что это знание лишнее.
---
"Не изобретай велосипеды, их уже изобрели за тебя."
Leo
Гугл нашел мне несколько вариантов, но они либо некорректно работают (делят на ноль либо изменяют входную матрицу.А как еще? либо он строки переставляет и делает выборку по максимальным элементам, либо на ноль иногда делит:)
Коль ты на С пишешь, как вариант - напиши Гаусса на С и вызови в фортране...
Еще есть куча других алгоритмов, например, QR или отражения...
Оставить комментарий
onyxis
Помогите, пожалуйста, найти нормальный стабильно работающий метод Гаусса на фортране. Самому мне его написать достаточно тяжело - язык начал изучать только недавно, раньше писал на C. Гугл нашел мне несколько вариантов, но они либо некорректно работают (делят на ноль либо изменяют входную матрицу.В идеале хотелось бы видеть подпрограмму вида subrouitene gauss(A,b,x,n которая не меняет параметры A,b,n и результат возвращает в x. Какой именно метод Гаусса мне нужен (т.е. с выбором опорного элемета по столбцуб или по всей матрице или вообще без выбора такого) - неважно, так как используются невырожденные матрицы невысокого ранга (n<36). Также подойдет любой код, позволяющий стабильно решать СЛАУ общего вида с невырожденной матрицей, например, по формулам Крамера.
Если кто-нибудь видел подобный код, пожалуйста, скажите, где его можно взять.