ВУЗ:
Составители:
Пример_1: Требуется проверить правильность записи
оператора A(w)=(Λ
2
v)ρ.
Заносим в поля скорости и плотности какие-нибудь
пробные значения, например v
x
=x
2
y
3
, v
y
=x
3
-y
2
, ρ=xy. После
этого сравниваем результат A(w) с результатом
непосредственного дифференцирования: 3x
2
y
4
+x
4
-3xy
2
.
Варьируя шаг сетки и число узлов, следует убедиться в
том, что локальная погрешность действительно ведёт себя
как O(h
2
). Полезно также повторить тест для различных
пробных функций. Если тест не прошёл, следует упростить
вид пробных функций (например, взять их зависящими
только от x или только от y), закомментировать часть
конечно-разностного оператора, постепенно локализовать
и устранить ошибку.
Пример_2:
Требуется проверить правильность решения
параболического уравнения
u
^
-u
τ
-(Λ
_
aΛ)u
^
=f.
Задаёмся некоторыми пробными функциями u=u(x,y,t) и
a=a(x,y), например u=x
2
y+(x-y)/(1+t)
3
, a=x
2
+y
2
.
Непосредственным дифференцированием получаем f(x,y,t)=-
3(x-y)/(1+t)
4
-6x
2
y-2x/(1+t)
3
-2y
3
-2y[x
2
-1/(1+t)
3
]. Проводя
численное решение уравнения с такими f(x,y,t) и a(x,y),
сравниваем полученные значения u(x,y,t) c указанным
выше точным решением, проверяем погрешность по h и τ.
Проверки такого типа на первый взгляд элементарны,
однако могут сэкономить много сил и нервов.
И главный совет:
V.От простого к сложному.
При первом запуске на счёт никогда не запускайте сразу
всю программу целиком. Почти наверняка она тут же
обрушится. Начинать отладку следует с небольшой части,
проверка кода которой посильна для человеческих
возможностей. Отладив её, постепенно подключайте следующие
блоки. Метод дробных шагов весьма гибок в этом отношении и
легко позволяет вести
отладку программы по частям. Учтите,
что контроль значений переменных намного упрощается при
выборе сеток с малым числом узлов (5-10), отладив
программу на которых можно переходить к густым сеткам.
п.3.Вычислительные неустойчивости.
Неустойчивость счёта является проблемой, с которой
непременно сталкивается всякий вычислитель. Сложность
борьбы с нею состоит в том, что её
источник бывает трудно
локализовать. В отличие от проверки аппроксимации пробными
функциями, устойчивость нельзя проконтролировать до запуска
программы на счёт; выявление источника её нарушения
возможно лишь по косвенным признакам. С другой стороны,
Пример_1: Требуется проверить правильность записи 2 оператора A(w)=(Λ v)ρ. Заносим в поля скорости и плотности какие-нибудь пробные значения, например vx=x2y3, vy=x3-y2, ρ=xy. После этого сравниваем результат A(w) с результатом непосредственного дифференцирования: 3x2y4+x4-3xy2. Варьируя шаг сетки и число узлов, следует убедиться в том, что локальная погрешность действительно ведёт себя как O(h2). Полезно также повторить тест для различных пробных функций. Если тест не прошёл, следует упростить вид пробных функций (например, взять их зависящими только от x или только от y), закомментировать часть конечно-разностного оператора, постепенно локализовать и устранить ошибку. Пример_2: Требуется проверить правильность решения ^ u-u _ параболического уравнения -(ΛaΛ)u^ =f. τ Задаёмся некоторыми пробными функциями u=u(x,y,t) и a=a(x,y), например u=x2y+(x-y)/(1+t)3, a=x2+y2. Непосредственным дифференцированием получаем f(x,y,t)=- 3(x-y)/(1+t)4-6x2y-2x/(1+t)3-2y3-2y[x2-1/(1+t)3]. Проводя численное решение уравнения с такими f(x,y,t) и a(x,y), сравниваем полученные значения u(x,y,t) c указанным выше точным решением, проверяем погрешность по h и τ. Проверки такого типа на первый взгляд элементарны, однако могут сэкономить много сил и нервов. И главный совет: V.От простого к сложному. При первом запуске на счёт никогда не запускайте сразу всю программу целиком. Почти наверняка она тут же обрушится. Начинать отладку следует с небольшой части, проверка кода которой посильна для человеческих возможностей. Отладив её, постепенно подключайте следующие блоки. Метод дробных шагов весьма гибок в этом отношении и легко позволяет вести отладку программы по частям. Учтите, что контроль значений переменных намного упрощается при выборе сеток с малым числом узлов (5-10), отладив программу на которых можно переходить к густым сеткам. п.3.Вычислительные неустойчивости. Неустойчивость счёта является проблемой, с которой непременно сталкивается всякий вычислитель. Сложность борьбы с нею состоит в том, что её источник бывает трудно локализовать. В отличие от проверки аппроксимации пробными функциями, устойчивость нельзя проконтролировать до запуска программы на счёт; выявление источника её нарушения возможно лишь по косвенным признакам. С другой стороны,
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »