Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы (пособие).pdf
Скачиваний:
84
Добавлен:
16.05.2015
Размер:
965.85 Кб
Скачать

 

38

 

| Это достигается повторным обращением

если

| к датчику случайных чисел

μ ≤ f (λ)

то

m := m +1

все

 

кц | Конец цикла подсчета числа попаданий. | Теперь m = m(n) .

Q = ymax (b a) mn

Кон

6. Составить алгоритм вычисления приближенных значений

первообразной

x

в заданных точках xi = a + hi , где

F ( x) = ò f (ξ)dξ

h = (b a) n -

a

 

шаг сетки, i = 0,1, , n . Приближенные значения

первообразной во всех точках должны вычисляться с погрешностями, не превышающими заданного положительного числа ε . Для вычисления значений интегралов с заданной

точностью

использовать готовый

алгоритм, построенный в

примере 3.

 

 

 

 

 

 

 

 

 

 

 

Решение:

 

 

 

 

 

 

 

 

 

 

Исходными данными для алгоритма являются значения a, b, n,

ε и функция

f (x) . Приближенные значения первообразной Fi в

точках xi

вычисляются по схеме:

 

 

 

 

 

F0 = 0 ,

Fi

= Fi−1 + Qi , i =1,2, , n .

 

 

 

 

x

Здесь

Qi

-

приближенные

значения

интегралов

òi f (ξ)dξ ,

 

 

 

 

 

 

 

 

 

 

 

 

xi−1

вычисляемые

с

погрешностями,

не

превышающими

ε n . Для

вычисления этих интегралов используем алгоритм из примера 3.

Запишем алгоритм на алгоритмическом языке.

 

алг Табулирование первообразной (арг вещ a, b, ε , цел n, рез

вещ таб F[0: n] )

 

 

 

 

 

 

 

 

 

нач вещ x, h, Q, цел i

 

 

 

 

 

 

 

h = (b a)

n | Вычисление шага сетки

 

 

 

 

F[0] := 0

| Задание начального значения первообразной

 

нц для i

от 1

до n

| Начало цикла вычисления

 

 

 

 

 

 

 

| значений первообразной

 

x := a + hi

 

 

|

x := xi

. При этом

 

.

 

 

 

 

 

 

xi 1 = x h

 

 

Метод Симпсона с автоматическим выбором шага (x-h, x, εn , Q)

39

F[i] = F[i −1] + Q

кц | Конец цикла вычисления значений первообразной

кон

7.Подготовить все необходимое для вычисления

приближен-ного

значения

несобственного

интеграла

 

+∞

x

 

 

 

I =

0ò

(4 +

 

+ x2 )

dx с погрешностью, не превышающей ε = 2

×10−3 .

x

Решение:

Будем выбирать значение величины b исходя из требования:

+∞

 

 

 

 

 

 

 

ε

 

 

 

 

 

 

 

 

 

 

 

x

3

bò

(4 +

 

 

+ x2 )

dx

2

=10.

x

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

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(4 +

 

 

+ x2 )

(x2 )

= x

 

2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

+∞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+∞

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ò

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx £ ò

x

2 dx = lim

 

 

òx

2 dx =

 

 

 

 

(4 +

 

 

 

 

 

 

 

 

 

2

)

 

 

 

 

 

 

 

x + x

 

 

 

 

 

 

 

 

 

b

 

 

 

b

 

 

 

 

 

A→+∞ b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(-2)

 

A

 

 

 

æ

 

2

 

2

ö

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

lim

 

 

 

 

 

 

 

 

 

 

 

=

lim ç

 

 

 

-

 

 

÷ =

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A→+∞

 

 

 

x

 

b

 

 

 

 

A→+∞è

 

b

 

 

A

ø

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для

определения

значение

 

величины b получается

неравенство: 2b £ 10001 . Решая его, получим: b ³ 4 ×106 .

Искомое приближенное значение несобственного интеграла представляет собой приближенное значение определенного интеграла

 

b

 

 

 

 

 

 

4×106

 

 

 

 

 

 

 

 

 

x

 

 

x

 

0ò

 

 

0ò

 

 

Q =

(4 +

 

 

+ x2 )

dx =

(4 +

 

+ x2 )

dx

x

x

с погрешностью, не превышающей ε2 =10−3 . Для его вычисления можно использовать любую квадратурную формулу.

8.Подготовить все необходимое для вычисления

приближен-ного значения несобственного интеграла

1

 

 

ln x

 

 

с

I = ò

 

 

 

dx

1

+ 2x

2

 

0

 

 

 

погрешностью, не превышающей ε = 2 ×10−3 .

Решение:

Будем выбирать значение величины c (0 < c < 1) исходя из требования:

40

c

 

 

ln x

 

 

 

ε

=10−3 .

 

 

 

 

 

ò

 

 

 

dx

£

1

+ 2x

2

2

0

 

 

 

 

Как известно, модуль интеграла не превышает интеграла от модуля:

 

c

ln x

 

 

 

 

c

 

ln x

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ò

 

dx

ò

 

 

 

 

 

 

dx ò

 

ln x

 

dx = −òln x dx =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1+2x

 

 

 

 

0 1

+2x

 

 

 

 

0

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( x ln x x)

 

cd

 

 

 

 

= − lim

 

 

òln x dx = − lim

 

=

 

 

 

 

 

 

 

 

 

d →0+0

 

 

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

d →0+0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(d ln d d + c c ln c) = c c ln c

 

 

 

 

=

 

 

lim

.

 

 

 

 

d→0+0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Здесь использовано, что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(ln d )

 

 

 

 

 

lim d ln d

=

lim

ln d

=

lim

=

 

 

 

 

 

 

 

 

 

 

 

 

ö¢

 

 

 

1

 

 

æ 1

 

 

 

 

d →0+0

 

 

 

 

 

 

 

 

 

d

→0+0

 

 

 

 

d →0+0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

 

 

 

ç

 

 

 

 

÷

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

è

ø .

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

lim

 

d

 

 

 

=

 

 

lim (- d )

= 0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d →0+0 - 1

 

 

 

 

d

→0+0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для определения значения величины с получается

неравенство:

c c ln c

1

 

.

 

 

 

Решить это неравенство точно

1000

 

 

 

 

невозможно.

Исследуем

 

 

 

 

 

 

функцию

 

 

 

ϕ(с) = c c ln c .

Найдем

при

0 < c < 1. Следовательно,

функция

ϕ (с) = 1− ln c −1 = − ln c > 0

ϕ(с) = c c ln c возрастает при

lim ϕ(c) = 0

, а ϕ(1) =1.

0 < c < 1. Кроме того, c→0+0

Таким образом, наше неравенство решение имеет. Будем искать его подбором. Вычислим несколько значений этой функции при разных значениях с. Для этого можно использовать электронную таблицу Excel или систему программирования Паскаль. Желательно, чтобы искомое значение с было побольше. Таким путем подбирается по возможности наибольшее значение с, удовлетворяющее решаемому неравенству: с = 0,00009.

Искомое приближенное значение несобственного интеграла представляет собой приближенное значение определенного интеграла

1

ln x

 

1

 

 

ln x

 

 

Q = ò

 

 

dx = ò

 

 

 

 

dx

1+ 2x

2

1

+ 2x

2

c

 

0,00009

 

 

с погрешностью, не превышающей ε2 =10−3 . Для его вычисления можно использовать любую квадратурную формулу.

9. Составить алгоритм для вычисления приближенного значения двойного интеграла òòΩ f (x , y)dxdy , где Ω − область,

41

ограниченная линиями: x = a , x = b , y = ϕ1( x) , y = ϕ2 ( x) (ϕ1( x) < ϕ 2 ( x)) . При построении кубатурной формулы использовать метод повторного

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

Решение:

Исходными данными для алгоритма являются значения a, b, m, функции f ( x, y) , ϕ1( x) , ϕ2 ( x) . Вначале вычисляются hx и xi :

hx

=

b a

,

 

 

xi

= a + ihx ,

,

 

 

i = 0,1, , m.

 

 

 

 

 

 

 

Затем вычисляются ni :

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

é

 

 

æ x

 

 

+ x

ö

 

 

æ x

i−1

+ x

öù

 

 

 

 

 

ϕ2

ç

 

i

−1

 

 

 

i

÷

-ϕ1ç

 

 

 

i

÷

ú

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ê

 

 

 

è

 

 

2

 

 

ø

 

 

è

 

 

 

2

 

 

 

 

 

 

 

 

ê

 

 

 

 

 

 

 

 

 

 

 

 

 

øú

+1, i =1,2, m .

ni = ê

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hx

 

 

 

 

 

 

 

 

 

 

 

ú

ê

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ú

 

 

 

 

 

ë

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

û

 

 

 

 

 

После этого вычисляются hy i и yi

j :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

æ x

i−1

+ x

ö

 

 

 

 

æ x

i−1

+ x ö

 

 

 

 

 

ϕ2

ç

 

 

 

 

i

÷

- ϕ1

ç

 

 

 

 

 

 

 

i

÷

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

hyi

=

 

 

 

 

è

 

 

 

 

2

 

 

ø

 

 

 

 

è

 

 

 

 

 

 

ø , i =1, , m ,

 

 

 

 

 

 

 

 

 

 

 

 

 

ni

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

æ x

 

 

 

+ x

ö

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i−1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi j = ϕ1

ç

 

 

 

 

 

i

 

÷

+

j × hyi ,

j = 0,1, , ni , i =1, , m .

 

 

 

 

 

 

 

 

 

è

 

 

 

 

2

 

 

 

 

ø

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Затем вычисляется приближенное значение интеграла Q :

 

 

 

 

 

 

 

 

 

 

m

 

 

 

ni

 

æ xi 1

+ xi

 

 

 

yi j −1 + yi j ö

 

Q

= hx åhy i

å f çç

 

 

 

 

 

 

 

,

 

 

 

 

÷÷ .

 

 

 

 

2

 

 

 

2

 

 

 

 

 

 

 

 

i=1

 

 

 

j =1

è

 

 

 

 

 

 

 

 

ø

С целью экономии оперативной памяти и в связи с тем, что

значения m и ni

заранее

 

 

не

 

известны, мы

не будем вводить

массивов. Обойдемся простыми переменными без индексов. Введем переменные xi, xxi, yij, yyij, ni, hyi, которые в соответствующих циклах будут принимать значения xi , xi−1, yi j , yi j−1 , ni , hy i . Кроме того, введем переменную S для вычисления внутренней суммы.

Запишем алгоритм на алгоритмическом языке.

алг Вычисление двойного интеграла (арг вещ a, b, цел m,

рез вещ Q)

нач вещ xi, xxi, yij, yyij, hyi, S, hx , цел i, j, ni

hx :=(b-a)/m; Q:=0 | Вычисление шага сетки по оси x.

| Задание начального значения суммы | (приближенного значения интеграла)

нц для i от 1 до m | Начало цикла для вычисления | внешней суммы.

xi:=a+ih

x

;

xxi:=xi-h

x

| xi :

 

 

x

,

 

 

 

 

 

 

 

 

=

 

i

 

é

 

 

 

æ xxi + xi ö

-ϕ1

æ xxi + xi öù

 

 

êϕ2

ç

2

÷

ç

 

2

÷ú

 

 

 

 

 

 

è

ø

 

è

 

ø

 

 

 

ni := ê

 

 

 

 

 

 

 

 

 

 

 

 

ú

+1

 

 

 

 

 

 

hx

 

 

 

 

ê

 

 

 

 

 

 

 

 

 

ú

 

 

ê

 

 

 

 

 

 

 

 

 

 

 

ú

 

 

ë

 

 

 

 

 

 

 

 

 

 

 

û

 

 

ϕ2

æ xxi + xi ö

 

æ xxi + xi ö

 

 

 

ç

2

÷

-ϕ1ç

 

2

÷

 

 

 

hyi :=

 

 

è

ø

 

è

 

ø

 

 

 

 

 

 

 

 

ni

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

42

xxi := xi−1 = xi hx .

|ni := ni .

|hyi := hyi .

S:=0 | Задание начального значения для внутренней

|суммы.

 

 

 

 

 

нц для j от 1 до ni

| Начало цикла для вычисления

 

æ xxi + xi ö

 

| внутренней суммы.

yij := ϕ1

+ j × hyi , |

yij := yi j

ç

2

÷

 

è

ø

 

 

 

 

,

 

|

 

yyij := yij hyi

 

 

 

yyij := yi 1 j

= yi j hyi

æ xxi + xi

,

yyij + yij ö

 

S := S + f ç

2

 

2

÷

 

è

 

 

ø

 

кц | Конец цикла для вычисления внутренней суммы

S := Shy ; Q := Q + S

кц | Конец цикла для вычисления внешней суммы.

Q :=Qhx

кон

4.2. Практическая работа № 5. Численные методы решения обыкновенных дифференциальных уравнений и систем

Для студентов специальности «Математическое обеспечение и администрирование информационных систем» отведено 4 часа практических занятий, а для студентов специальности «Программное обеспечение вычислительной техники и

автоматизированных систем» − 2 часа.

План занятий:

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