2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 00:10 
Доброго времени суток!
Пожалуйста, помогите разобраться в следующей задачке.
Имеется уравнение с граничными условиями
$% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGceaqabeaacqqHuo
% arcqaHvpGAcaGGOaGaamiEaiaacYcacaWG5bGaaiykaiabg2da9iab
% ew9aQjaacIcacaWG4bGaaiilaiaadMhacaGGPaGaey4kaSIaeqy1dO
% 2aaWbaaSqabeaacaaIZaaaaOGaaiikaiaadIhacaGGSaGaamyEaiaa
% cMcacaGGSaGaaGPaVlaaykW7caaMc8UaaGPaVlaaykW7caaIWaGaey
% izImQaamiEaiaacYcacaWG5bGaeyizImQaaGymaaqaaiabew9aQjaa
% cIcacaWG4bGaaiilaiaaicdacaGGPaGaeyypa0Jaci4CaiaacMgaca
% GGUbGaeqiWdaNaamiEaiaacUdaaeaacqaHvpGAcaGGOaGaaGimaiaa
% cYcacaWG5bGaaiykaiabg2da9iGacohacaGGPbGaaiOBaiabec8aWj
% aadMhacaGG7aaabaGaeqy1dOMaaiikaiaadIhacaGGSaGaaGymaiaa
% cMcacqGH9aqpciGGZbGaaiyAaiaac6gacaaIYaGaeqiWdaNaamiEai
% aacUdaaeaacqaHvpGAcaGGOaGaaGymaiaacYcacaWG5bGaaiykaiab
% g2da9iGacohacaGGPbGaaiOBaiaaikdacqaHapaCcaWG5bGaai4oaa
% aaaa!90A4!
\[
\begin{array}{l}
 \Delta \varphi (x,y) = \varphi (x,y) + \varphi ^3 (x,y),\,\,\,\,\,0 \le x,y \le 1 \\ 
 \varphi (x,0) = \sin \pi x; \\ 
 \varphi (0,y) = \sin \pi y; \\ 
 \varphi (x,1) = \sin 2\pi x; \\ 
 \varphi (1,y) = \sin 2\pi y; \\ 
 \end{array}
\]
$
В задаче требуется использовать равномерную сетку 301;301 (на самом деле это не обязательно).
Я не мало чего перепробовал, но никак не могу получить удовлетворительного результата.
Благодарю за помощь!

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 07:06 
Аватара пользователя
Что именно пробовали, чем результат не удовлетворяет?

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 09:43 
Схема крест приводит к нелинейным уравнениям, если только сетка густая, поэтому обычные приёмы типа сведения к матричному уравнению здесь не подходят, по крайней мере, мне они не очевидны. Самое примитивное это методы релаксации, но я не уверен, что они могут дать правильные результаты. Я понимаю под релаксацией следующее : берём нулевое приближение, затем прогоняем его некоторое количество раз через схему крест соотвествующую данному уравнению, можно ещё внедрять в схему какой-н. коэффициент, который, якобы, ускоряет сходимость. Пробовал чебышёвское ускорение - решается параболическая задача вида $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeyOaIy7aaS
% baaSqaaiaadshaaeqaaOGaamyDaiaacIcacaWG4bGaaiilaiaadMha
% caGGSaGaamiDaiaacMcacqGH9aqpcqqHuoarcaWG1bGaaiikaiaadI
% hacaGGSaGaamyEaiaacYcacaWG0bGaaiykaiabgUcaRiaadAeacaGG
% OaGaamyDaiaacIcacaWG4bGaaiilaiaadMhacaGGSaGaamiDaiaacM
% cacaGGPaGaaiilaiaaykW7caWG1bGaaiikaiaadIhacaGGSaGaamyE
% aiaacYcacaaIWaGaaiykaiabg2da9iaadwhadaWgaaWcbaGaaGimaa
% qabaGccaGGOaGaamiEaiaacYcacaWG5bGaaiykaaaa!6180!
\[
\partial _t u(x,y,t) = \Delta u(x,y,t) + F(u(x,y,t)),\,u(x,y,0) = u_0 (x,y)
\]
$, начальные условия которой есть нулевое приближение исходной задачи, затем решается задача Коши. При достижении равновесия получается нужное решение, т.к. правая часть обращается нуль.
Метод минимизации невязки я плохо понял и видимо не правильно реализовал.

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 09:57 
Аватара пользователя
Вы что-то пробовали применять и получили какие-то результаты?
Что именно не нравится?

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 10:25 
Я пробовал применять метод релаксации, получил неправильные результаты и, вообще, подозреваю, что этот метод неприменим. Чебышевское ускорение пробовал, но опять же, не верно... Подобрал функцию, удовлетворяющую граничным условиям, взял её в качестве нулевого приближения, а далее использовал итерационную процедуру $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyDamaaDa
% aaleaacaWGTbGaaiilaiaad6gaaeaacaWGPbGaey4kaSIaaGymaaaa
% kiabg2da9iaadwhadaqhaaWcbaGaamyBaiaacYcacaWGUbaabaGaam
% yAaaaakiabgUcaRmaalaaabaGaeqySdegabaGaaGinaaaacaGGOaGa
% amyDamaaDaaaleaacaWGTbGaey4kaSIaaGymaiaacYcacaWGUbaaba
% GaamyAaaaakiabgUcaRiaadwhadaqhaaWcbaGaamyBaiaacYcacaWG
% UbGaey4kaSIaaGymaaqaaiaadMgaaaGccqGHRaWkcaWG1bWaa0baaS
% qaaiaad2gacqGHsislcaaIXaGaaiilaiaad6gaaeaacaWGPbGaey4k
% aSIaaGymaaaakiabgUcaRiaadwhadaqhaaWcbaGaamyBaiaacYcaca
% WGUbGaeyOeI0IaaGymaaqaaiaadMgacqGHRaWkcaaIXaaaaOGaeyOe
% I0IaaGinaiaadwhadaqhaaWcbaGaamyBaiaacYcacaWGUbaabaGaam
% yAaaaakiaacMcacqGHRaWkdaWcaaqaaiaadsgacaWG4bWaaWbaaSqa
% beaacaaIYaaaaaGcbaGaaGinaaaacaWGvbGaaiikaiaadwhadaqhaa
% WcbaGaamyBaiaacYcacaWGUbaabaGaamyAaaaakiaacMcaaaa!77A9!
\[
u_{m,n}^{i + 1}  = u_{m,n}^i  + \frac{\alpha }{4}(u_{m + 1,n}^i  + u_{m,n + 1}^i  + u_{m - 1,n}^{i + 1}  + u_{m,n - 1}^{i + 1}  - 4u_{m,n}^i ) + \frac{{dx^2 }}{4}U(u_{m,n}^i )
\]
$
параметр альфа подбирал в интервале [1,2).

-- Сб май 23, 2009 11:28:48 --

при этом $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyDamaaDa
% aaleaacaWGTbGaaiilaiaad6gaaeaacaWGPbGaey4kaSIaaGymaaaa
% kiabgkHiTiaadwhadaqhaaWcbaGaamyBaiaacYcacaWGUbaabaGaam
% yAaaaaaaa!41D5!
\[
u_{m,n}^{i + 1}  - u_{m,n}^i 
\]
$ должно обратиться в нуль рано или поздно.

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 10:48 
Orange в сообщении #216398 писал(а):
при этом $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyDamaaDa
% aaleaacaWGTbGaaiilaiaad6gaaeaacaWGPbGaey4kaSIaaGymaaaa
% kiabgkHiTiaadwhadaqhaaWcbaGaamyBaiaacYcacaWGUbaabaGaam
% yAaaaaaaa!41D5!
\[
u_{m,n}^{i + 1}  - u_{m,n}^i 
\]
$ должно обратиться в нуль рано или поздно.

Скорее поздно, чем рано. А точнее -- никогда. Вы с какой точностью хотите получить результат?

При сетке 300 на 300 точность Вашей схемы -- порядка десяти в минус пятой. Соответственно: чтобы её исчерпать методом именно релаксации, понадобится порядка ста миллионов итераций.

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 10:56 
Так я не понимаю, мы называем методом релаксации всё что связанно, так сказать, с "релаксацией" начального приближения, или же отличаем от всего этого дела, например, метод чебышевского ускорения.
Просто, Вы сослались на утверждение
Цитата:
при этом $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyDamaaDa
% aaleaacaWGTbGaaiilaiaad6gaaeaacaWGPbGaey4kaSIaaGymaaaa
% kiabgkHiTiaadwhadaqhaaWcbaGaamyBaiaacYcacaWGUbaabaGaam
% yAaaaaaaa!41D5!
\[
u_{m,n}^{i + 1}  - u_{m,n}^i 
\]$
должно обратиться в нуль рано или поздно.

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 11:09 
Я говорил только за метод релаксации. Но в любом случае -- процедура итерационная, и ноль можно получить формально лишь за бесконечное количество шагов. Отсюда и вопрос: какой точности Вы добивались?... и как долго ждали?...

(кстати, для чебышёвских итераций и для метода релаксации скорость сходимости одного порядка -- $\sim(1-Ch))^n.$ А для простых итераций -- на порядок хуже, т.е. для Вашей сетки -- ещё примерно в 300 раз медленнее)

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 12:22 
Нуль мне, конечно, не нужен. Достаточно будет точности в третьем знаке после запятой.
Проблема с этим методом в том, что я не могу его реализовать правильно, либо чего-то недопонимаю.
Беру за начально приближение $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyDaiaacI
% cacaWG4bGaaiilaiaadMhacaGGSaGaaGimaiaacMcacqGH9aqpcaWG
% 1bWaaSbaaSqaaiaaicdaaeqaaOGaaiikaiaadIhacaGGSaGaamyEai
% aacMcacqGH9aqpciGGZbGaaiyAaiaac6gacaGGOaGaaGOmaiabec8a
% WjaadIhacaWG5bGaaiykaiabgUcaRiaaikdaciGGJbGaai4Baiaaco
% hacaGGOaGaaiikaiaadIhacqGHsislcaaIXaGaaiykamaalaaabaGa
% eqiWdahabaGaaGOmaaaacaGGOaGaamyEaiabgkHiTiaaigdacaGGPa
% GaaiykaiGacogacaGGVbGaai4CaiaacIcadaWcaaqaaiabec8aWbqa
% aiaaikdaaaGaamiEaiaacMcaciGGJbGaai4BaiaacohacaGGOaWaaS
% aaaeaacqaHapaCaeaacaaIYaaaaiaadMhacaGGPaaaaa!6CA9!
\[
u(x,y,0) = u_0 (x,y) = \sin (2\pi xy) + 2\cos ((x - 1)\frac{\pi }{2}(y - 1))\cos (\frac{\pi }{2}x)\cos (\frac{\pi }{2}y)
\]
$, оно удовлетворяет граничным условиям, подставляю его в $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyDamaaDa
% aaleaacaWGTbGaaiilaiaad6gaaeaacaWGPbGaey4kaSIaaGymaaaa
% kiabg2da9iaadwhadaqhaaWcbaGaamyBaiaacYcacaWGUbaabaGaam
% yAaaaakiabgUcaRmaalaaabaGaeqySdegabaGaaGinaaaacaGGOaGa
% amyDamaaDaaaleaacaWGTbGaey4kaSIaaGymaiaacYcacaWGUbaaba
% GaamyAaaaakiabgUcaRiaadwhadaqhaaWcbaGaamyBaiaacYcacaWG
% UbGaey4kaSIaaGymaaqaaiaadMgaaaGccqGHRaWkcaWG1bWaa0baaS
% qaaiaad2gacqGHsislcaaIXaGaaiilaiaad6gaaeaacaWGPbGaey4k
% aSIaaGymaaaakiabgUcaRiaadwhadaqhaaWcbaGaamyBaiaacYcaca
% WGUbGaeyOeI0IaaGymaaqaaiaadMgacqGHRaWkcaaIXaaaaOGaeyOe
% I0IaaGinaiaadwhadaqhaaWcbaGaamyBaiaacYcacaWGUbaabaGaam
% yAaaaakiaacMcacqGHRaWkdaWcaaqaaiaadsgacaWG4bWaaWbaaSqa
% beaacaaIYaaaaaGcbaGaaGinaaaacaWGvbGaaiikaiaadwhadaqhaa
% WcbaGaamyBaiaacYcacaWGUbaabaGaamyAaaaakiaacMcaaaa!77A9!
\[
u_{m,n}^{i + 1}  = u_{m,n}^i  + \frac{\alpha }{4}(u_{m + 1,n}^i  + u_{m,n + 1}^i  + u_{m - 1,n}^{i + 1}  + u_{m,n - 1}^{i + 1}  - 4u_{m,n}^i ) + \frac{{dx^2 }}{4}U(u_{m,n}^i )
\]
$, прогоняю это уравнение через все внутренние узлы сетки, затем для каждогу узла высчитываю разницу $% MathType!MTEF!2!1!+-
% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn
% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr
% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9
% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x
% fr-xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqyTdu2aa0
% baaSqaaiaad2gacaGGSaGaamOBaaqaaiaadMgacqGHRaWkcaaIXaaa
% aOGaeyypa0JaamyDamaaDaaaleaacaWGTbGaaiilaiaad6gaaeaaca
% WGPbGaey4kaSIaaGymaaaakiabgkHiTiaadwhadaqhaaWcbaGaamyB
% aiaacYcacaWGUbaabaGaamyAaaaaaaa!49D9!
\[
\varepsilon _{m,n}^{i + 1}  = u_{m,n}^{i + 1}  - u_{m,n}^i 
\]
$ если эта разница меня удовлетворяет (я, к примеру, сравниваю среднее арифметическое ошибок в каждой точке с желаемой точностью в 0.001), значит достигнута желаемая точность, в противном случае вся процедура повторяется.

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 12:28 
Orange в сообщении #216422 писал(а):
если эта разница меня удовлетворяет (я, к примеру, сравниваю среднее арифметическое ошибок в каждой точке с желаемой точностью в 0.001), значит достигнута желаемая точность,

Неверно!! При этом вы достигните в лучшем случае точности порядка 0,3. Т.е. фактически ничего не достигнете. Для оценки погрешности разность соседних приближений надо дополнительно делить на $(1-q)$, где $q$ -- знаменатель геометрической прогрессии, со скоростью которой сходится метод. При ваших данных будет $q\sim 0.997$ или ещё хуже.

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 12:40 
И как же мне сосчитать q?
Или же воспользоваться предложенным значением???
И это единственная ошибка???

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 12:49 
Не знаю, единственная или нет, но что благодаря ей Вы останавливаетесь преждевременно и на чём-то совсем непохожем на решение -- это точно.

Моё значение брать, конечно, не нужно -- оно в достаточной степени среднепотолочное. Вполне надёжно оценить знаменатель можно так. Для каждой тройки вычисляйте отношение норм разностей соседних приближений. И усредняйте эти отношения по нескольким последним шагам (ну, скажем, по десятку).

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 12:51 
Ещё проблема. У меня на четвёртой итерации, начиная с некоторого момента, функция u начинает катастрофически возрастать по модулю. С чем это может быть связано не подскажите?

-- Сб май 23, 2009 13:55:06 --

Цитата:
Для каждой тройки вычисляйте отношение норм разностей соседних приближений.

А что, простите, означает "для каждой тройки"???

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 13:06 
Orange в сообщении #216427 писал(а):
Ещё проблема. У меня на четвёртой итерации, начиная с некоторого момента, функция u начинает катастрофически возрастать по модулю. С чем это может быть связано не подскажите?

С неустойчивостью, естественно. Метод релаксации не является абсолютно устойчивым. Вы неудачно выбрали параметр релаксации. Поуменьшайте его до тех пор, пока неустойчивость не исчезнет.

Orange в сообщении #216427 писал(а):
А что, простите, означает "для каждой тройки"???

$$q_n={\|\vec u_n-\vec u_{n-1}\|\over\|\vec u_{n-1}-\vec u_{n-2}\|}.$$

По ходу вычислений усредняйте $q_n$ по нескольким последним $n$. По скольки -- не очень принципиально. Лишь бы наблюдаемые результаты усреднений вели себя достаточно стабильно.

 
 
 
 Re: Численные методы. Квазилинейное эллиптическое уравнение.
Сообщение23.05.2009, 13:51 
Крест не очень хорошо себя ведет. Рекомендую расщепление с ресаксацией для этой задачи - т.е. так же как у вас, но на каждом шаге по времени делается два "прохода" - один по пространственной переменной $x$ и второй по пространственной переменной $y$. Там обычные прогонки одномерные можно использовать - все очень хорошо работает. Думаю здесь есть -
http://window.edu.ru/window_catalog/pdf ... 6&p_page=6
http://www.nsu.ru/education/cmet/node58.html

 
 
 [ Сообщений: 18 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group