Оператор Лапласа
тут есть:
Боголюбов А.Н., Кравцов В.В. Задачи по математической физике. М: Изд-во МГУ, 1998.
(книга для 3 курса физфака, курс мат. методов в физике)
Боголюбов А.Н., Кравцов В.В. Задачи по математической физике. М: Изд-во МГУ, 1998.
(книга для 3 курса физфака, курс мат. методов в физике)
Самарского книги глянь. Название не помню
Самарский "Численные Методы Мат. Физики."
, например
, например
Спасибо за книжки!
Если прогу не найду, придется читать и писать...
..А может все-таки у кого-то таки завалялась програмка?
Если прогу не найду, придется читать и писать...

..А может все-таки у кого-то таки завалялась програмка?
курсавая на 3ом курсе фф по твоей теме.
но у большинства было в круге
но у большинства было в круге
да без разницы где! 
мне бы хоть какую-нибудь, там уж я переделаю..

мне бы хоть какую-нибудь, там уж я переделаю..
В прямоугольнике оно решается явным методом с помощью FFT,
а в цилиндре гармоники Лапласа не синусы, а функции Бесселя, с которыми х что поделаешь
а в цилиндре гармоники Лапласа не синусы, а функции Бесселя, с которыми х что поделаешь

ну у меня есть
только за правильность
не ручаюсь хотя ошибок не видел еще
кстати C#
только за правильность
не ручаюсь хотя ошибок не видел еще
кстати C#
Подскажите плз кто-нибудь какие-нибудь хорошие ф-ции для граничных условий, чтобы получалось разумное решение! (чтобы на них можно было прогу протестить)
Подставляешь любую функцию в уравнения, получаешь правую часть. Решаешь уравнение с этой правой частью 
Только в пробной функции должны присутствовать как старшие, так и младшие гармоники Лапласа, т.к. одни методы хорошо сходятся на младших, другие – на старших

Только в пробной функции должны присутствовать как старшие, так и младшие гармоники Лапласа, т.к. одни методы хорошо сходятся на младших, другие – на старших

Ужос ужос. Никто так внятно и не ответил.
Так вот, мега явный метод.
Так вот, мега явный метод.
Два квадратных массива, U и Ut. На очередном шаге вначале считается внутренность Ut как Ut[i][j] =
(U[i - 1][j] - 2 * U[i][j] + U[i + 1][j]) / (hx*hx) +
(U[i][j - 1] - 2 * U[i][j] + U[i][j + 1]) / (hy*hy)
Потом считаются новые значения U[i][j] = U[i][j] + Ut[i][j] * dt (опять таки для внутренних точек прямоугольника (кстати форма фигуры может быть произвольной.
Потом для внешних точек подставляется краевое условие.
Это было для кр.усл. первого рода. Для второго - всё немного сложнее. Для третьего - хз.
Метод сходится если dt < h*h, кажется. Точно не помню.
я думаю задача ставится так
то есть она стационарная и никакого dt там нет
вот решение методом переменных направлений
k-номер итерации
повторять до нужной точности
tau1, tau2 -параметры
сходится при всех tau1>0 tau2>0
//d-оператор Лапласа
dU=-f,
U(x,a)=s1(x);
U(x,b)=s2(x);
U(c,y)=s3(y);
U(d,y)=s4(y);
то есть она стационарная и никакого dt там нет
вот решение методом переменных направлений
пусть dU=L1(U)+L2(U)
сначала решается методом прогонки(по i) уравнение по
первому направлению для каждого j:
{U^(k+1/2)|i,j - U^(k)|i,j } / tau1 = L1(U^(k+1/2|i,j + L2(U^(k|i,j + f|i,j
j=1..N2-1
потом прогонка(по j) по второму для каждого i:
{U^(k+1)|i,j - U^(k+1/2)|i,j} / tau2 = L1(U^(k+1/2|i,j + L2(U^(k+1|i,j + f|i,j
i=1..N1
L1 и L2 - разностные операторы второго порядка
L1(U)|i,j = {U|i-1,j - 2U|i,j + U|i+1,j} / (dx1 * dx1)
L2(U)|i,j = {U|i,j-1 - 2U|i,j + U|i,j+1} / (dx2 * dx2)
k-номер итерации
повторять до нужной точности
tau1, tau2 -параметры
сходится при всех tau1>0 tau2>0
кстати откуда ты сначала собрался взять U|i,j ?
в етом ведь как раз и состоит задача
в етом ведь как раз и состоит задача
А. Тут типа речь о laplas(U) = 0, да? Я типа писал решение для нестационарной задачи вида
dU/dt = laplas(U). Типа уравнение колебаний мембраны.
dU/dt = laplas(U). Типа уравнение колебаний мембраны.
да кстати чо то автор не написал чо за уравниние у него
ЗЫ ур-ние колебаний d^2U/(dt)^2=laplas(U)
у тебя теплопроводность
ЗЫ ур-ние колебаний d^2U/(dt)^2=laplas(U)
у тебя теплопроводность
=) точно. А я ещё думал, зачем же мне массив Ut =) Если чуть-чуть подпадчить формулы, то получатся колебания, вот!
Спасибо всем большое за помощь!
п.с. Мне тут принесли прогу с решением, вроде работает, не могли бы вы подсказать что это за метод в ней? Когда он сходится и т.п.?
п.с. Мне тут принесли прогу с решением, вроде работает, не могли бы вы подсказать что это за метод в ней? Когда он сходится и т.п.?
int solute
{
int i, j;
double *tmp;
// [a, c] x [b, d]
// a----c
// | |
// b----d
double a = 0;
double b = 0;
double c = 1;
double d = 1;
double h = 0.01;
double eps = 0.01;
N1 = (intc - a)/h + 2;
N2 = (intd - b)/h + 2;
u = (double*)malloc(N1*N2*sizeof(double;
next_u = (double*)malloc(N1*N2*sizeof(double;
for (i = 0; i < N2; i++)
for (j = 0; j < N1; j++)
u[i*N1 + j] = next_u[i*N1 + j] = 0;
for (j = 0; j < N1; j++) {
u[j] = next_u[j] = psi3(a + h*j);
u[(N2-1)*N1 + j] = next_u[(N2-1)*N1 + j] = psi4(a + h*j);
}
for (i = 0; i < N2; i++) {
u[i*N1] = next_u[i*N1] = psi1(b + h*i);
u[i*N1 + (N1-1)] = next_u[i*N1 + (N1-1)] = psi2(b + h*i);
}
while (1) {
for (i = 1; i < N2-1; i++)
for (j = 1; j < N1-1; j++)
next_u[i*N1 + j] = 0.25*(u[(i-1)*N1 + j] + u[(i+1)*N1 + j]
+ u[i*N1 + (j-1)] + u[i*N1 + (j+1)] - h*h*f(a + h*j, b + h*i;
tmp = u;
u = next_u;
next_u = tmp;
if (norm(u, next_u) < eps*eps)
break;
}
return 0;
}
уравнение стационарное (так это кажется называется когда не времени:) однородное.
dU=0 c данными граничными условиями
dU=0 c данными граничными условиями
не знаю чо за метод
но он явный а значит сходимость у него так себе
вообще итерационные методы выглядят так
но он явный а значит сходимость у него так себе
вообще итерационные методы выглядят так
B{U^(k+1)-U^(k)}/tau+AU^(k)=f
B,A - матрицы причем AU=f
tau - bnthfw gfhfvtnh а то что в программе у тя не подходит под описание етоКакие все умные, бля!
Это метод Якоби, Аркадий.
И прошу Вас, не могли бы вы включить в текст, выкладываемый на форуме, лицензионное соглашение, подписанное Вами в момент принятия программы (внутрь).
Да, я Батор, да, я самый блять умный.
Это метод Якоби, Аркадий.
И прошу Вас, не могли бы вы включить в текст, выкладываемый на форуме, лицензионное соглашение, подписанное Вами в момент принятия программы (внутрь).
Да, я Батор, да, я самый блять умный.
Сорри, забыл.. 
исправляюсь:
***************
*Олег Андреев (с)*
***************
great thanks to him.
п.с. Инет стоит, даже не пошатнется


исправляюсь:
***************
*Олег Андреев (с)*
***************
great thanks to him.
п.с. Инет стоит, даже не пошатнется

вот метод Якоби
U^(k+1)-U^(K)+AU^(k)=f
никак не могу понять как из этого
получается то чо у тя в проге написано
не мог бы объяснить, может я гдето не прав...
U^(k+1)-U^(K)+AU^(k)=f
никак не могу понять как из этого
получается то чо у тя в проге написано
не мог бы объяснить, может я гдето не прав...
ok все понял
смотреть здеся самарский гулин стр 137
смотреть здеся самарский гулин стр 137
Оставить комментарий
migel
Подскажите пожалуйста где можно найти про то как решать задачу для оператора Лапласа в прямоугольнике? (даны краевые условия)Мне надо написать прогу которая это делает..
Или может у кого-нибудь есть уже готовое что-то похожее?...
Вроде я слышал на м\м такое пишут на 4м курсе..