Уравнение Пуассона численно

svetik5623190

Всем привет!
Помогите пожалуйста кто может ссылками или конкретными схемами решения,
а лучше написанными прогами на Си - наверняка у кого-то завалялись . Пожалуйста, очень нужно!
Надо сдавать срочняком прогу, свёл всё к решению уравнения Пуассона в квадрате:
Лапласиан u = f,
u на границе = 0.
u - неизвестная функция двух вещественных переменных на единичном квадрате. f известна.
Всё остальное написал, реализовал, осталось "ядро" - решалка для уравнения Пуассона, которую буду применять в своей вычислительной схеме в качестве "сторительного блока". Думал она простая, но оказалось всё не так банально, в итоге я не рассчитал время, запланированное на выполнение работы и могу пролететь со сдачей проги.
Времени на всё-провсё час-полтора. Надо успеть. Заранее огромное спасибо!

svetik5623190

сам по мере возможностей всегда помогал товарищам из стади, отвечал на вопросы. Первый раз практически самому что-то нужно, неужели никто мне не поможет?...

kirs

вроде есть точные формулы, только не помню их.
Может кто из форумчан подскажет?

olegikristina

У нас в этом семестре на праке по ЭВМ было решение этих уравнений, даже в чуть более широком смысле - на границе произвольно задается функция. Моя программа работала немного через Ж, но я её сдал, она работала, сходилась к решению, но скорость сходимости была не та, которая ожидалась, короче я свой вариант могу послать. Мыло в студию, я не из ГЗ.

svetik5623190

Моё мыло yandex.ru, есть в профиле.
Я уходил на зачёт, но препод прибежал и убежал, так что ещё актуально

vovatroff

Постройте простую конечно-разностную схему для лапласиана второго порядка с учетом граничных условий (для обработки наружных узлов сетки). В итоге получится система неоднородных уравнений вида Au = f, где f - известные значения функции источника (правой части u - неизвестные
значения решения u(x,y) во внутренних узлах сетки. Решаете эту линейную систему, находите u.
Фактически нужно лишь ручками вбить в матрицу A ненулевые элементы на нужные места, и вызвать библиотечную подпрограмму для решения линейной системы. Кстати, она будет ленточная, поэтому при густой сетке разумно задействовать специальные солверы (solver) для ленточных матриц.

svetik5623190

Постройте простую конечно-разностную схему для лапласиана второго порядка с учетом граничных условий (для обработки наружных узлов сетки). В итоге получится система неоднородных уравнений вида Au = f, где f - известные значения функции источника (правой части u - неизвестные
значения решения u(x,y) во внутренних узлах сетки. Решаете эту линейную систему, находите u.
Фактически нужно лишь ручками вбить в матрицу A ненулевые элементы на нужные места, и вызвать библиотечную подпрограмму для решения линейной системы. Кстати, она будет ленточная, поэтому при густой сетке разумно задействовать специальные солверы (solver) для ленточных матриц.
Спасибо, это я понимаю Минусы:
- задача двумерная, поэтому массив неизвестных двумерный. Нужно перенумеровать их, поэтому и будет ленточная матрица. При разумных шагах сетки метод Гаусса сразу сдохнет (сами посчитайте поэтому им решать уж точно нельзя
- прогать самому не хочется, ясно же что вещь стандартная
- было мало времени. Сейчас уже всё равно, зачёт уже прошёл, так что у меня теперь весь вечер.
Спасибо всем приславшим программы, буду разбираться!

vovatroff

При разумных шагах сетки метод Гаусса сразу сдохнет (сами посчитайте поэтому им решать уж точно нельзя
Знаю.
Для ленточных матриц есть экономичные алгоритмы.
См. Lapack.

Lene81

Может, лучше по базису разложить? Например, по плоским волнам? Тогда все решение будет сводиться к прямому и обратному преобразованию Фурье, для чего есть эффективные алгоритмы типа FFT2D

vovatroff

Возможно, но стоило бы предварительно сравнить сложности обоих алгоритмов - конечно-разностного и дискретного ФП.
Но, я так понял, человек ищет не идеи, а готовые рецепты.
У меня готовых рецептов нету, и времени решать за него его задачу, к сожалению, тоже.

Lene81

Возможно, но стоило бы предварительно сравнить сложности обоих алгоритмов - конечно-разностного и дискретного ФП.
Но, я так понял, человек ищет не идеи, а готовые рецепты.
Дык тут-то сплошные готовые рецепты: www.netlib.org - готовые программы для FFT + минимум алгебры (умножить/разделить).

soldatiki

Всем привет!
привет. У меня есть проги с прошлого года, можно там чего-нибудь посмотреть. Код документирован
Заходи как-нибудь, поразбираемся. Буду например, в четрверг и пятницу. Wellcome.

muk78

   Так, уравнение Пуассона вроде ж совсем просто. В случае решения конечно-разностным методом, полученную систему решай методом Якоби(частный случай метода простой итерации т.е. u1(i,j)=0.25*(u(i-1,j)+u(i+1,j)+u(i,j-1)+u(i,j+1)-h*h*f(i,j. Понятно, что так пересчитываешь только внутренние точки. После каждого такого цикла проверяешь норму невязки max(по i, j)|u1(i,j)-u(i,j) |, если норма меньше заданного эпсилон то stop, иначе u=u1 и опять пересчет и проверка и т.д.

svetik5623190

Большое спасибо всем откликнувшимся и приславшим проги. Правда большое спасибо.
К сожалению, я не осилил в них разобаться (
Проще оказалось написать свою, используя разложение в ряды Фурье.
Оставить комментарий
Имя или ник:
Комментарий: