библиотека lapack в кодовых блоках, граничное значение - PullRequest
0 голосов
/ 28 июня 2018

Я студент из Германии, в настоящее время делаю магистерскую диссертацию. В своей магистерской работе я пишу код на Фортране в виде блоков кода. В моем коде я использую некоторые функции LAPACK.

Мне нужна помощь в добавлении библиотеки LAPACK в программное обеспечение для блоков кода. Я много искал в интернете, но ничего не смог найти. Будет лучше, если вы предоставите мне все ссылки на исходные коды предыдущего вопроса.

В моем коде мне нужно решить следующую систему уравнений: {K}{p} = {m}

Где

  • {K} = Матрица
  • {p} = вектор
  • {m} = вектор

У меня есть все элементы вектора {m} и матрица {K}, и у меня есть некоторые известные значения вектора {p}. Это краевая задача.

Теперь я хочу выяснить только неизвестные значения элементов вектора {p}.

Какую функцию использовать?
Я просмотрел руководство LAPACK, доступное онлайн, но не смог найти.

1 Ответ

0 голосов
/ 28 июня 2018

Ну, вы не так подробно изучили документацию :) Вы ищете решатели линейного уравнения. http://www.netlib.org/lapack/lug/node38.html

Пожалуйста, укажите немного больше о complex / real double / float. плохо поставлено? Слишком или недостаточно определено или квадратично? Если квадратичный, то симметричный или верхний треугольный? Пластинчатые?

Существует множество различных алгоритмов, которые можно рассмотреть. Время выполнения / стабильность / поведение конвергенции сильно различаются в зависимости от K. Наиболее стабильным будет [x]gelsd. Это алгоритм «разделяй и властвуй» с помощью SVD, который дает вам подходящее обобщение обратного уравнения Мура-Пенроуза. Но это, безусловно, самый медленный алгоритм.

Кстати, http://www.netlib.org/lapack/lug/node27.html, описывает все общие решения.

Если у вас уже есть некоторые значения вашего p, вы хотели бы пойти по другому пути, чем прямая инверсия. Вам намного лучше, если вы используете итеративный метод, такой как сопряженная задача наименьших квадратов градиента с регуляризацией. Подробно это обсуждается в Stoer, Bullirsch, Введение в численный анализ, глава 8.7 (Метод градиентного сопряжения Гестенса и Штифеля).

В сети есть несколько реализаций. Один вы найдете в библиотеке, которую я написал во время моей докторской диссертации: https://github.com/kvahed/codeare/blob/master/src/optimisation/CGLS.hpp

...