Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Тарасевич Ю.Ю. - Численные методы на Mathcad

.pdf
Скачиваний:
108
Добавлен:
16.03.2015
Размер:
796.56 Кб
Скачать

5.2. Решение уравнений в частных производных.

Введение

Одним из методов решения дифференциальных уравнений в частных производных является метод сеток. Идея метода заключается в следую- щем. Для простоты, ограничимся случаем только функции двух перемен- ных, и будем полагать, что решение уравнения ищется на квадратной об- ласти единичного размера. Разобьем область сеткой. Шаг сетки по оси x и по оси y, вообще говоря, может быть разный. По определению частная про-

изводная равна

u(x, y) = lim

u(x +

x, y) − u(x)

u(x + x, y) − u(x)

 

 

 

 

x

x

x→0

x

 

 

 

Если рассматривать функцию только в узлах сетки, то частную произ-

водную можно записать в форме

 

 

ui +1, j ui, j

 

 

 

u(x, y)

 

 

x

 

h

 

 

 

 

где узел (i, j)

соответствует точке (x, y) . Полученное выражение назы-

вается правой конечной разностью. Название связано с тем, что для вы- числения производной в точке используются значение функции в этой точ- ке и точке, лежащей правее. Очевидно, что сходное выражение можно было бы получить, используя точку, лежащую слева.

u(x, y) ui, j ui−1, j

x h

Такое выражение называется левой конечной разностью. Можно по- лучить центральную конечную разность, найдя среднее этих выражений.

Теперь получим выражения для вторых производных.

2u(x, y)

ui+1, j − 2ui, j + ui −1, j

x2

h2

 

В данном случае для нахождения производной мы использовали сим- метричные точки. Однако, очевидно, можно было бы использовать точки с несимметричным расположением.

5.2.1. Уравнения гиперболического типа

В качестве примера рассмотрим решение волнового уравнения (уравне- ния гиперболического типа).

2U

=

1 2U

x2

 

v2

t2

Уравнение будем решать методом сеток. Запишем уравнение в конеч-

ных разностях

51

 

 

 

 

 

ui +1, j - 2ui, j

+ ui−1, j

=

1 ui, j +1 - 2ui, j + ui, j

 

 

 

 

 

 

 

 

 

h2

 

 

 

v2

 

 

τ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полученное уравнение позволяет выразить значение функции u в мо-

мент времени

j +1 через значения функции в предыдущие моменты време-

ни.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

i, j+1

= v2 æ

τ

ö2

(u

i+1, j

- 2u

+ u

) + 2u

i, j

- u

i, j −1

 

 

 

 

 

 

ç ÷

 

 

 

i, j

 

i −1, j

 

 

 

 

 

 

 

 

 

è h

ø

 

 

 

 

 

 

 

 

 

 

 

Такая разностная схема называется явной, так как искомая величина

получается в явном виде. Она устойчива, еслиτ £ h v .

 

Зададим начальные условия: смещение струны U в начальный и после-

дующий моменты времени описывается синусоидальной функцией.

n

 

20

 

 

j

0.. n

i

0.. 100

 

 

 

 

 

 

 

 

 

U

 

sin

π . i

 

 

U

 

 

U

 

 

 

 

 

 

 

 

 

i , 0

 

 

 

50

 

 

i , 1

 

i, 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Совпадение смещений при j=0 и j=1 соответствует нулевой начальной

скорости.)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зададим граничные условия: на концах струны смещение равно 0 в лю-

бой момент времени U0, j

 

0

 

U100, j

0

 

 

 

 

 

Будем полагать коэффициент a

 

1

 

 

k

 

0.02

i

1.. 99

 

 

j

1.. n

1

 

 

 

 

 

l

0.. 100

 

 

 

Записываем уравнение в конечных разностях, разрешенное относитель-

но Ui, j +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U

 

 

a

2. .

 

 

 

.

 

 

U

 

 

.

 

U

 

 

 

1

k U

i

1, j

 

2 U

 

1, j

 

2 U

 

1

i , j

 

 

 

 

 

i , j

 

i

 

 

i , j

i, j

Представляем результат на графике

 

 

 

 

 

 

 

Ul, 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ul, 10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ul, 15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ul, 20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

 

 

 

52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.2.2. Уравнения параболического типа.

 

 

Еще один пример использования конечных разностей уравнение диф-

фузии.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

= D

2u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

x2

 

 

 

 

 

 

Это уравнение параболического типа. Явная разностная схема для этого

уравнения имеет вид

 

 

τ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

 

= D

(u

 

− 2u

 

+ u

 

 

) + u

 

(5.3)

 

 

 

 

 

i, j+1

 

h2

i +1, j

 

 

i, j

 

i−1, j

 

i, j

 

Эта разностная схема устойчива, если τ ≤

h2 . Для краткости в даль-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2D

 

 

нейшем мы будем обозначать весь множитель, стоящий перед скобкой, как

κ.

 

 

 

 

 

 

 

κ

 

 

 

 

 

 

 

 

 

 

Задаем коэффициент

 

 

 

.15

 

 

 

 

 

 

 

и диапазон изменения пространственной и временной координат:

 

t

 

0.. 29

x

1.. 49

 

 

 

 

 

 

 

 

 

 

 

 

Задаем начальные и граничные условия

 

 

 

 

 

f0, x

0

 

 

 

f0, 0

0

 

 

 

f0, 50

 

0

f0, 25

1

Уравнение в конечных разностях имеет вид

 

 

 

 

f

 

f

κ.

f

1

2.f

f

 

1

 

 

 

 

 

 

t

1, x t, x

 

 

t, x

 

t, x

t, x

 

 

 

 

 

 

Представляем результаты на графике. (Для большей наглядности изо-

бражена только центральная часть)

 

 

 

 

 

 

 

 

 

 

x

 

15.. 35

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f0 , x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f4 , x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f9 , x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f19, x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f29, x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 15

 

 

 

20

 

 

 

 

 

25

 

 

 

30

35

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

53

Основное достоинство явных методов их простота зачастую сводит- ся на нет достаточно жесткими ограничениями на величину шага. Явные схемы обычно устойчивы при столь малых шагах по времени, что они ста- новятся непригодными для практических расчетов. Этого существенного недостатка позволяют избежать неявные схемы. Свое название они получи- ли потому, что значения искомой функции на очередном временном шаге не могут быть явно выражены через значения функции на предыдущем ша- ге.

Рассмотрим применение неявной схемы на примере уравнения тепло-

проводности

u

= c

2u

(5.4)

t

x2

 

 

Запишем неявную разностную схему для этого уравнения

ui, j +1 - ui, j

=

c

(ui+1, j +1 - 2ui, j +1 + ui−1, j +1 )

(5.5)

τ

h2

Здесь первый индекс соответствует пространственной, а второй вре- менной координате. В отличие от явной схемы, для вычисления в правой части уравнения используются значения функции на том же самом времен-

ном шаге. Вводя обозначение μ = chτ2 , уравнение (5.5) можно переписать в

виде

(1+ 2μ)ui, j +1 - μ(ui+1, j+1 + ui−1, j +1 ) = ui, j

(5.6)

или в матричной форме

æ1+

-μ

ç

-μ

1+ -μ

ç

ç

 

L

ç

 

1+

ç

 

ç

 

-μ

è

 

где u(0,t) = α, u(t,1) = β .

 

öæ

u

ö

æ u

 

+ μα ö

 

 

֍

1, j +1

÷ ç

1, j

 

÷

 

 

֍

u2, j+1

÷ ç

 

u2, j

÷

 

 

֍

M

÷

= ç

 

 

M

÷

(5.7)

-μ

֍

 

÷

ç

 

un−1, j

÷

 

÷çun−1, j +1

÷ ç

 

÷

 

1+

֍

un, j+1

÷

ç

 

 

 

÷

 

øè

ø èun, j + μβ ø

 

Задаем количество узлов сетки (в данном случае оно одинаково для обеих переменных) n := 30

i := 0.. n

 

 

 

 

 

 

j := 0.. n

k := 0.. n - 1

m := 1.. n - 1

Задаем значения параметров a := 0

b := 1 m := 5

 

и начальное распределение температуры в области

 

ui , 0 := sin

æ

i ö

+

i

 

 

 

 

 

 

 

 

 

è

n ø

n

 

 

 

 

 

 

 

Формируем матрицы уравнения (5.7)

 

 

u0, j := a

 

 

un, j := b

 

 

54

Ai , i := 1 + 2×m

A m , m−1 := -m

A m−1, m := -m

mai := 0

ma0 := m×a

mbi := 0

mb0 := m×b

Находим решение системы

u áj+1ñ

:= A− 1×(u ájñ + ma + mb)

u

5.2.3. Решение уравнений Лапласа и Пуассона.

Для решения уравнений Пуассона 2u + 2u = F(x, y) и Лапласа (част- ∂x2 y2

ный случай, когда F(x, y) = 0 ) – уравнений эллиптического типа предна-

значена функция relax(a, b, c, d, e, f, u, rjac), реализующая метод релакса- ции. Фактически, эту функцию можно использовать для решения эллипти-

ческого уравнения общего вида

A

2u

+ 2B

2u

+ C

2u

+ a

u

+ b

u

+ cu = F (x, y),

x2

xy

y2

x

y

 

 

 

 

 

 

D = AC B2 > 0,

которое может быть сведено к уравнению в конечных разностях

 

ai, j ui+1, j + bi, j ui −1, j + ci, jui, j+1 + di, jui, j−1 + ei, jui, j = fi, j

В

частности,

для

уравнения

Пуассона

коэффициенты

ai, j = bi, j = ci, j = di, j = 1, ei, j = −4 .

Идея метода релаксации заключается в следующем. Если нет источни- ков (уравнение Лапласа), то значение функции в данном узле на текущем шаге k +1 определяется как среднее значение функции в ближайших узлах

на предыдущем шаге k

 

 

 

 

 

 

 

 

uk +1

=

1

(uk

+ uk

+ uk

+ uk

)

(5.8)

4

i, j

 

i−1, j

i +1, j

i, j−1

i, j +1

 

 

55

При

наличии

 

источников

разностная

 

схема

имеет

вид

 

uk +1

=

1

(uk

+ uk

+ uk

+ uk

) −

h2

f

 

 

(5.9)

 

4

 

 

 

 

i, j

 

i−1, j

i+1, j

i, j −1

i, j+1

4

 

i, j

 

 

Метод релаксации сходится достаточно медленно, так как фактически он использует разностную схему (5.3) с максимально возможным для дву-

мерного случая шагом τ = h2 . 4

В методе релаксации необходимо задать начальное приближение, то есть значения функции во всех узлах области, а так же граничные условия.

Функция relax возвращает квадратную матрицу, в которой:

1)расположение элемента в матрице соответствует его положению внут- ри квадратной области,

2)это значение приближает решение в этой точке.

Эта функция использует метод релаксации для приближения к реше- нию.

Вы должны использовать функцию relax, если Вы знаете значения ис- комой функции u(x, y) на всех четырех сторонах квадратной области.

Аргументы:

a, b, c, d, e квадратные матрицы одного и того же размера, содержа- щие коэффициенты дифференциального уравнения.

f – квадратная матрица, содержащая значения правой части уравнения в

каждой точке внутри квадрата

u квадратная матрица, содержащая граничные значения функции на краях области, а также начальное приближение решения во внутренних точках области.

rjac Параметр, управляющий сходимостью процесса релаксации. Он может быть в диапазоне от 0 до 1, но оптимальное значение зависит от де- талей задачи.

n

 

24

i

 

0.. n j

 

0.. n

 

 

 

 

 

 

Задаем правую часть уравнения Пуассона два точечных источника

Mi, j

 

0

M6, 8

 

10

 

 

M10, 8

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задаем значения параметров функции relax

 

4.a

ai, j

 

1

 

 

b

 

a

c

 

a

 

d

 

a f

 

M e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задаем граничные условия и начальное приближение нули во всех

внутренних точках области

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ui, j 0

 

 

ui , n

1

 

 

ui, 0

1

 

 

 

u0, j

 

1

 

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

un, j

 

1

 

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Находим решение Z

 

 

relax( a, b , c, d , e, f, u , 0.95)

 

 

 

 

 

 

 

 

 

 

и представляем его графически в виде поверхности и линий уровней.

56

Z

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5

 

0.5

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

1

1.5

0.5

 

 

0.5

 

 

 

11.5

 

 

 

0

0.5

 

4.5

1 0

 

 

 

1

2

0.5 2.5

3

2

1

0

1.5

 

1 1.5

 

 

 

0.5

 

 

 

 

 

 

 

 

 

 

 

0.5

0.5

 

0

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1

0.5

 

 

0

 

 

0.5

1

Z

 

 

 

 

 

 

 

 

Если граничные условия равны нулю на всех четырех сторонах квадра- та, можно использовать функцию multigrid.

Z multigrid( M , 3)

Алгоритм метода достаточно громоздкий, поэтому рассматривать его мы не будем.

57

Глава 6. Статистические расчеты на Mathcad

6.1. Генерация чисел, распределенных равномерно.

Mathcad дает возможность обрабатывать статистическую информацию. Создадим с помощью датчика случайных чисел rnd последовательность, подчиняющуюся равномерному распределению.

n

 

999

i

 

0 .. n

xi

 

rnd( 10)

 

 

 

 

 

 

Представим последовательность чисел графически

10

xi 5

0 0

500

1000

Вычислим среднее значение

i

 

Xmean

 

mean( x ) Xmean = 4.966 ,

 

 

стандартное отклонение

Xst

 

stdev( x )

Xst = 2.885 ,

 

 

и дисперсию σ

 

var( x )

σ = 8.323

 

 

 

 

 

Проверим, насколько хорошо подчиняются наши числа закону равно-

мерного распределения, построив гистограмму.

Определим интервалы для

группировки данных: Nmax 5 k 0 .. Nmax. И подсчитаем, сколько раз

попадают числа из нашей последовательности в каждый из интервалов intervalk

0

2

4

6

8

10

i 0 .. Nmax 1 f hist ( interval , x )

58

fi

208

194

193

211

194

Числа fi показывают, сколько раз числа из массива x попадают в каж-

дый из определенных нами интервалов 0–2, 2–4, 4–6, 6–8, 8–10 Внимание! В массиве f элементов на 1 меньше, чем в массиве interval. Определим границы для построения гистограммы.

Fmax

 

 

max( f)

 

 

 

1

 

 

 

 

 

IntMax

 

 

max( interval )

IntMin

 

min( interval )

 

1

 

 

 

 

 

 

 

fi

0

5

10

interval i

Внимание! При построении гистограммы следует использовать трасси- ровку типа bar, при этом столбцы центрируются относительно начала ин- тервала. Для центрирования столбцов относительно середины интервала

используйте трассировку step.

Повторим построение гистограммы, используя большее число интерва- лов.

Nmax

 

10

 

 

k

 

0 .. Nmax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

0 .. Nmax

 

1

intervalk

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

 

hist ( interval , x )

Fmax

 

 

max( f)

 

 

 

1

 

 

IntMax

 

 

max( interval )

IntMin

 

 

min( interval )

 

1

 

 

 

 

 

 

 

 

59

fi

interval i

fi

100

108

98

96

96

97

111

100

108

86

Числа fi показывают, сколько раз числа из массива x попадают в каж-

дый из определенных нами интервалов 0–1, 1–2, 2–3, 3–4, 4–5, 5–6, 6–7, 7– 8, 8–9, 9–10

6.2. Генерация случайных чисел, распределенных по нормальному закону.

Для преобразования равномерно распределенных случайных чисел в числа, распределенные по нормальному закону, воспользуемся преобразо- ванием:

N

 

999

 

 

 

M

 

 

10

 

S

 

 

10

i

 

0 .. N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S.

 

 

 

 

 

).2 ).sin( 2.π .rnd( 1 ) )

x1i

 

 

M

 

 

 

( (

 

ln( rnd( 1 ) )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Представим числа на графике

 

 

 

 

 

 

 

 

Nmax

 

 

 

ceil ( max ( x1 ) )

Nmin

 

floor( min( x1 ) )

 

 

 

 

 

 

 

 

Nall

 

Nmax

 

 

 

 

 

Nmin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

60