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

Алгоритм решения БДЗ / пример решения БДЗ

.pdf
Скачиваний:
3
Добавлен:
12.01.2024
Размер:
322.57 Кб
Скачать

1

1. (a) Представить слагаемые и результат в виде нормализованного числа с плавающей точкой двойной точности: ( 1)s 21023 e 1:f, где 1:f записано в двоичном виде. (б) Если результат неточный (не умещается целиком в мантиссе), то указать относительную погрешность ошибки. Исходные данные в десятичной системе счисления.

683; 6640625 2120 + 1177; 0703125 2173

Решение. Переведём слагаемые в двоичную систему и преобразуем их затем к нормализованному виду

( 1)s 21023 e 1:f:

683; 6640625 2120 + 1177; 0703125 2173 = 1010101011:1010101 2120 + 10010011001:0001001 2173 =

2129 1:0101010111010101 2183 1:00100110010001001 =

 

( 1)121152 1023

1:0101010111010101

2129

1037

+

( 1)021206 1023

1:00100110010001001

2183

1055

=

( 1)021206 1023

1:00100110010001001

2183

1055

 

абс = разряды какого порядка не поместилось в 52 бита мантиссы =

2129

1039

 

 

отн = абс=2183

2 54

10 16

2. Написать последовательность инструкций Matlab, формирующих указанную матрицу. Около каждой инструкции указать промежуточный результат в виде матрицы. Разрешается использовать матричные функции (eye, repmat, flipud и др.). Использовать циклы нельзя.

Входные данные:

 

 

Нужно получить:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 cos2

 

cos2

2

cos2

3

 

cos2

n

1

 

cos

 

cos

2

 

cos

3

 

 

cos

n

 

 

 

B ..

n

 

n

 

n

 

 

n

C

Целое n > 10

n

..

n

..

n

..

..

n

 

B .

 

.

 

 

.

 

 

.

.

 

 

C

 

B

 

 

 

 

 

 

 

 

 

 

 

C

 

B cosn

cosn 2

cosn 3

 

cosn n

C

 

B

n

 

n

 

n

 

n

C

 

@

 

 

 

 

 

 

 

 

 

 

 

A

n = 10;

01

1 2 n

A = repmat([1:n], n, 1);

 

B

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

A = B: : : : : : : : : : : : :C

 

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

A =

1

2

 

n

: : : : :cos: : : :n: :1

 

 

0cos: : : :n: : : cos: : : : n: : : :

 

 

 

 

 

 

2

 

 

n

 

A = cos(A*pi/n);

 

Bcos

 

cos

2

 

 

 

cos

n

C

 

 

 

 

 

 

 

 

 

B

n

 

n

 

 

 

 

 

n

 

C

 

 

 

@

 

 

 

 

 

1

 

 

 

A

 

Решение.

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

B = repmat([1:n]’, 1, n);

B = B:2: : :2: : : : : : : :2:C

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

n

n

 

n

 

 

 

2 n 1

 

 

0

2

 

 

 

2

 

 

2

 

 

 

 

cos

 

cos

 

2

 

 

cos

n

 

 

A = A.ˆB;

 

 

 

n

 

 

 

 

 

n

 

 

 

 

 

n

 

A =

B:cos: : : :n: : : :cos: : : : n: : : : : : : : :cos: : : : :n: :C

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

B

n

 

 

n 2

 

 

 

n n C

 

 

B

 

n

 

 

 

 

 

n

 

 

 

 

n

C

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

Bcos

 

 

cos

 

 

 

 

 

 

cos

 

 

 

 

C

2

3. (а) Локализовать корни уравнения (для каждого корня zi указать отрезок [ai; bi], содержащий только один этот корень zi). Для каждого корня (б) построить итерационный процесс xn+1 = '(xn), сходящийся к корню и (в) указать начальное значение x0. Указание: локализацию проводить перебором интервалов

[ai; bi] или средствами математического анализа.

x3 + 3x2 1 = 0

Решение. Табличным способом выделим отрезки, на концах которых функция f(x) имеет разные знаки

 

 

 

 

 

 

 

 

x

3 2 1 0 1 2 3

 

 

 

 

 

 

 

 

sign f(x)

+ +

 

+ + +

 

 

 

 

 

 

 

Таким образом, корни исходного уравнения лежат на отрезках [ 3; 2], [ 1; 0] и [0; 1], для каждого

из которых построим свой итерационный процесс.

 

 

 

 

 

 

 

 

 

Для x 2 [ 3; 2] разделим исходное уравнение на x2. В результате получим равносильное уравнение

 

 

 

 

 

1

 

 

 

 

 

 

 

1

 

x = '(x), '(x) =

 

3. Итерационный процесс для нахождения первого корня: xn+1 =

 

3. Поскольку

x2

xn2

xj 0

[j 3;

2].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'0

(x) =

 

2

 

6 41

< 1 для x 2 [ 3; 2], то сходимость имеет место для всех начальных приближений

x3

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для двух других отрезков исходное уравнение перепишем в виде x2(x+3) 1 = 0. Если x0 2 [ 1; 0], то

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

определим итерационный процесс xn+1 =

p

 

; если x0

2

[0; 1], то xn+1 =

p

 

. Можно показать, что

xn+3

xn+3

в процессе итераций соответствующие отрезки отображаются в себя, поэтому сходимость построенных

 

1

 

1

 

3

итерационных процессов следует из оценки j'0(x)j =

 

< 1.

2

px+3

 

 

 

 

 

 

 

 

 

 

 

 

4. Известно, что интервалу [a; b] принадлежит только корень x уравнения (другие корни интервалу не принадлежат). (а) Построить итерационный процесс Ньютона xn+1 = xn f(xn)=f0(xn) и (б) обосновать какую из границ интервала [a; b] можно принять за x0. Указание: в пункте (б) выяснить знаки производных f0(x) и f00(x) и использовать соответствующую теорему.

sin(ln x) = 0; x 2 [22; 24]

Решение. Построим итерационный процесс xn+1 = xn

f(xn)

 

= xn+1 = xn

xn sin(log(xn))

 

f0(xn)

 

cos(log(xn))

Определим знаки производных на отрезке [22; 24]:

 

 

 

 

 

 

 

 

f0(x) =

cos(log(x))

6 0:0454 < 0; f00(x) =

cos(log(x))

 

sin(log(x))

> 0:0018 > 0

x

x2

 

x2

Так как f0 f00 < 0, то берем левую границу интервала x0 = 22.

5. (а) Построить интерполяционный многочлен Лагранжа для функции f(x) по узлам xi. (б) Оценить сверху погрешность jRn(x)j приближения функции многочленом.

sin(arctan x) x0 = 0; x1 = =2; x2 =

Решение. Строим многочлен Лагранжа по следующей таблице

x

0

=2

 

 

 

 

 

sin(arctan x)

sin(arctan 0)

sin(arctan =2)

sin(arctan )

 

 

 

 

3

P2(x) = 0:1488x2 + 0:7707x

Найдем погрешность по формуле R2(x) =

f000(

!3(x) =

 

f000(

(x 0)(x =2)(x ):

 

 

3!

 

 

 

 

3!

 

 

f000(x) =

18 x2

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

15 x4

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

3

 

(x2

 

7

 

 

 

 

(x2 + 1)2

 

(x2 + 1)2

+ 1)2

 

j

R

(x) =

jf000( )j

 

j

!

 

(x)

j 6

 

3

 

 

1:4917

 

0:7459

 

 

6

 

2

j

3!

 

 

 

3

 

 

 

 

 

 

 

 

 

 

6. Заданную функцию будут интерполировать на отрезке [a; b] по чебышёвским узлам с заданной точностью jRn(x)j < ". Требуется (а) определить требуемое для заданной точности " количество узлов (т.е. степень интерполяционного многочлена плюс 1) и (б) вычислить значения всех узлов и отметить их на действительной оси Ox (если узлов окажется много, ограничиться вычислением значений наименьших

10 узлов).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

на отрезке [ 2

; 32 ] с точностью

" = 10 2

 

 

 

 

f(x) =

p

 

+ cos x

 

 

 

 

1 + x

 

 

 

 

Решение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оценим погрешность многочлена Лагранжа для Чебышевских узлов:

 

 

 

 

 

 

 

 

 

jRn(x)j 6

Mn+1

 

(b a)n+1 21 2(n+1)

 

 

 

 

 

 

 

 

 

(n + 1)!

 

 

 

 

 

 

 

Оказывается, что при n = 5 справедливо f(5) =

 

sin(x)

 

 

945

 

и

Mn+1

(b

 

a)n+1

 

21 2(n+1)

 

0:0058.

32 (x+1)

11

(n+1)!

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

Выпишем Чебышёвские узлы xk = b+a

+ b a cos

(2k 1)

:

 

 

 

 

 

 

 

 

 

 

2

2

2n

 

 

 

 

 

 

 

x1

= 3:1416 + 1:5708 cos

9

= 1:6477, x2 = 3:1416 + 1:5708 cos

7

= 2:2183, x3

= 3:1416 + 1:5708 cos

5

=

 

10

 

 

10

 

 

 

 

 

 

 

 

 

10

 

3:1416, x4 = 3:1416 + 1:5708 cos

3

= 4:0649, x5 = 3:1416 + 1:5708 cos

1

= 4:6355

 

 

 

 

 

 

 

10

 

 

 

 

 

10

 

 

 

 

7. Данные некоторого физического эксперимента представлены в таблице. Характер зависимости y(x)

заранее точно неизвестен. Есть предположения, что зависимость может быть линейной, квадратичной или кубической. (а) Методом среднеквадратического приближения построить три типа зависимостей y(x) (т.е. аппроксимирующие многочлены первой, второй и третьей степени). (б) Для каждого типа

 

 

 

 

 

 

1

 

 

 

n

зависимотей вычислить среднеквадратическое отклонение q

n+1

 

i=0(y(xi) yi)2. (в) Выбрать мини-

мальное с.к.о. и указать соответствующий ему тип зависимости,

т.е. наиболее вероятный в проведённом

 

P

 

эксперименте.

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

1

 

2

 

3

 

 

4

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

0:1

2:3

 

4:1

 

7:3

10:9

 

 

Решение.

Пусть вначале зависимость линейная: x(t) = a + bx. По методу среднеквадратического приближения получаем: P1(x) = 2:7000x 0:5000.

Среднеквадратическое отклонение

1

= v

1

( 0:1 (2:7000 0 0:

 

2

 

 

 

 

 

 

 

2

 

 

 

 

= 0:5020

 

u

 

 

 

 

 

 

5000))2 + (2:3

 

 

 

 

 

 

 

0:5000))2 + (4:1

 

 

 

0:5000))2+

 

 

u

 

 

 

 

 

 

 

(2:7000

1

 

 

 

(2:7000

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

" (7:3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#

 

 

 

5

(2:7000 3

 

0:5000))

+ (10:9

 

(2:7000

 

4

 

 

0:5000))

 

 

 

 

 

Аналогично для квадратичной зависимости: P2(x) = 0:2714x2 + 1:6143x + 0:0429 и 2 = 0:2138. Аналогично для кубической зависимости: P3(x) = 0:0833x3 0:2286x2 + 2:3310x 0:0571 и 3 = 0:1604

Так как 3 наименьшее, следовательно, зависимость кубическая.

4

8. (а) Методом неопределённых коэффициентов составить формулу для вычисления указанной производной по значениям функции в указанных узлах. (б) Раскладывая y(xi) в ряд Тейлора, определить порядок p погрешности O(hp) полученной формулы.

y00(x1) = c0y(x0) + c1y(x1) + c2y(x2) + c3y(x3) + O(hp): x0 x1 x2 x3

|

 

{z }

|

 

{z }

|

 

{z }

 

 

h

 

 

h

 

 

h

Решение.Приблизим функцию y(x) многочленом Лагранжа по узлам x0, x1, x2, x3:

 

 

 

 

3

L3(k)(x)

 

y(x) P3(x) =

Xk

 

 

:

3

 

 

yk L(k)(xk)

 

 

 

 

=0

 

 

 

Продифференцируем полученное равенство:

 

 

 

 

 

 

 

 

3

 

d2

 

L(k)(x)

3

y(x)00 P300(x) =

yk

 

 

"

 

 

# =

ykck(x);

dx2

L(k)

(xk)

X

 

 

 

3

 

 

Xk

 

 

 

 

3

 

 

 

k=0

 

 

 

 

 

 

 

=0

где значение ck(x) не зависит от функции y(x). Нас интересует y100, поэтому положим x = x1:

 

3

 

 

 

 

 

 

y100

Xk

 

 

 

 

 

ykck(x1):

 

 

=0

 

 

 

 

 

 

Далее вместо ck(x1) = const будем писать просто ck.

 

 

 

 

 

Вспомним, что многочлен Лагранжа P3(x) является точным приближением, когда функция y(x) есть многочлен степени 6 3. В частности, P3(x) точно аппроксимирует функции

z = 1; z = x x0; z = (x x0)2; z = (x x0)3

(выбор именно этих многочленов обусловлен удобством дальнейших расчётов).

 

 

 

 

 

 

 

 

3

Несложно показать, что, если подобрать числа ck

таким образом, чтобы z100 =

zkck было точ-

 

 

 

 

 

 

 

 

k=0

ным равенством (для выбранных четырёх многочленов z), то это будет значение ck(xP) для многочлена

Лагранжа в точке x = x1.

 

 

 

 

 

 

 

 

Найдём производные:

z

1

x x0

(x x0)2

 

(x x0)3

. Для каждой колонки запишем z100 =

z00

0

0

2

 

6(x x0)

3

 

 

 

 

 

 

 

 

 

 

 

P zkck:

 

 

 

 

 

 

 

 

k=0

0 = c0 1 + c1 1 + c2 1 + c3 1;

0 = c0(x0 x0) + c1(x1 x0) + c2(x2 x0) + c3(x3 x0);

2 = c0(x0 x0)2 + c1(x1 x0)2 + c2(x2 x0)2 + c3(x3 x0)2; 6(x1 x0) = c0(x0 x0)3 + c1(x1 x0)3 + c2(x2 x0)3 + c3(x3 x0)3:

Узлы xi, i = 0; 1; 2; 3 равноотстоящие с шагом h, поэтому x1 x0 = h, x2 x0 = 2h, x3 x0 = 3h:

0 = c0 + c1 + c2 + c3;

0 = c1 + 2c2 + 3c3;

2 = c1h2 + 4c2h2 + 9c3h2;

6 = c1h2 + 8c2h2 + 27c3h2:

 

 

 

 

 

 

 

 

 

 

 

 

 

5

Решая систему, получим:

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

1

 

 

 

 

c0 =

 

; c1 =

 

 

; c2

=

 

; c3

= 0:

h2

h2

h2

Окончательно y100

1

(y0 2y1 + y2).

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

Имеем:

1

 

 

 

 

 

 

 

 

 

 

y100

 

2y1 + y2) + O(hp);

 

 

 

=

 

(y0

 

 

 

h2

 

где порядок p нужно определить. Для этого разложим yi, i = 0; 2 в ряд Тейлора в окрестности точки x1 до члена h4 (сейчас точно неясно до какого члена нужно раскладывать, но, если понадобится, разложение всегда можно продолжить):

y(x

) = y(x

) + (x

 

 

x )y0

(x

) +

(x0 x1)2

y00(x )+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

0

1

1

 

 

 

2!

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

(x0 x1)3

y000

(x ) +

(x0 x1)4

yIV(x ) + O((x

0

x

)5);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3!

 

1

4!

 

 

 

 

1

 

1

 

y(x

) = y(x

) + (x

 

 

x )y0

(x

) +

(x2 x1)2

y00(x )+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

2

1

1

 

 

 

2!

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

(x2 x1)3

y000

(x ) +

(x2 x1)4

yIV(x ) + O((x

2

x

)5);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3!

 

1

4!

 

 

 

 

1

 

1

 

В более компактной записи:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y0 = y1 hy10

+ h2y100=2 h3y1000=6 + h4y1IV=24 + O(h5);

 

 

 

 

 

 

 

 

 

 

 

y2 = y1 + hy10

+ h2y100=2 + h3y1000=6 + h4y1IV=24 + O(h5):

 

 

 

 

 

Подставим полученные значения в формулу для численной производной:

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

h4

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

(y0

2y1 + y2) =

 

h2y100 +

 

y1IV + O(h5) = y100 +

 

 

y1IV + O(h3) :

 

 

 

 

 

 

h2

h2

12

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|

 

 

 

{z(

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2)

 

 

 

 

 

Так как четвёртая производная в общем случае отлична от нуля, то порядок погрешности равен 2.

9. Даны формула численного дифференцирования и таблично заданная функция y(x) (данные в таблице могут содержать погрешность не более ). Определить оптимальное значение шага hопт, когда достигается максимально возможная точность данной формулы, а неустойчивость численного дифференцирования ещё себя не проявляет.

ф-ла y00 =

1

(y0

 

2y1 + y2);

функ. y(x) = sin x на отрезке [ =2; ]; погр. = 10 7.

2

1

h

 

 

 

 

 

 

 

 

 

 

 

Решение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формула численной производной с шагом h:

 

 

 

 

 

 

 

 

 

 

 

 

y100

=

1

(y0 2y1 + y2):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

В действительности из-за погрешности компьютер вычисляет

 

 

 

 

 

 

y00

1

(~y

 

2~y

+ y~ );

y

= y

i

:

 

 

 

 

 

 

 

 

 

1 h2

0

 

1

2

где ei

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

Рассмотрим погрешность

 

 

 

y100 h2 (y0

2y1 + y2) +

h2 (y0 2y1 + y2) h2 (~y0 2~y1 + y~2) 6

=

y00(x1) h2 (~y0 2~y1 + y~2) =

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

y0

 

 

 

y~0

 

 

 

 

 

 

2y1

 

 

2~y1

 

 

 

y2

 

 

y~2

 

 

 

 

 

 

 

 

 

 

6 y100

 

 

(y0

2y1

+ y2) +

 

 

 

 

 

 

+

 

 

 

 

 

 

 

+

 

 

 

 

 

6

 

 

 

 

 

 

h2

 

h2

 

 

h2

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

IV

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M4

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( )

 

 

 

2

 

 

 

 

 

2

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

j

 

 

 

 

 

 

j

h

 

+

 

 

 

+

 

+

 

 

6

 

 

h

 

+

 

= (h);

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

h2

h2

h2

12

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|

 

 

{z

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

см. разложение в лекции №5

где M4 = max jyIV(x)j 6 1.

[x0;x2]

Минимизируем ошибку (h):

hopt : 0(x) =

M4h

 

8

= 0

)

6

h3

hopt = 4

M4

= r

 

 

 

1

 

 

 

0;047:

r

 

 

 

 

 

 

 

7

 

 

 

48

4 48

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10. Получить (письменно) приближённое значение интеграла I по квадратурной формуле S(h) сначала с шагом h1, а затем с шагом h2. Используя метод Рунге, указать насколько значение S(h2) отличается от истинного значения интеграла I.

I =

Z1

n

2 x sin x dx; S(h) = h i=1 f(xi) (ф-ла правых прямоуг.); h1 = 1=5; h2 = 1=12:

 

 

X

Решение. Используя формулу правых прямоугольников, получим:

S(1=5) = 15 (1;2 sin 1;2 + 1;4 sin 1;4 + 1;6 sin 1;6 + 1;8 sin 1;8 + 2 sin 2) 1;5338;

1

 

13

13

14

 

14

15

15

16

 

 

16

 

17

 

 

17

 

18

 

18

 

19

 

 

 

19

 

20

 

20

 

S(1=12) =

 

 

sin

 

+

 

sin

 

 

+

 

sin

 

 

 

+

 

 

sin

 

 

+

 

 

 

sin

 

 

+

 

 

sin

 

 

+

 

 

sin

 

 

+

 

sin

 

+

12

12

12

12

12

12

12

12

12

12

12

12

12

12

12

12

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

21

22

22

23

23

24

 

 

 

 

24

1;4804:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

sin

 

 

+

 

sin

 

+

 

sin

 

+

 

sin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

12

12

12

12

12

12

12

 

 

Для оценки погрешности S(1=12) воспользуемся методом Рунге. Справедлива формула:

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Za

f(x) dx = S(h) + O(hp) = S(h) + chp + O(hp+1);

c = const:

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z f(x) dx

 

S(1=5) + c(1=5)1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

aS(1=12) + c(1=12)1

Откуда

S(1=5) S(1=12)

 

 

 

 

 

 

 

c

 

 

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1=12)1 (1=5)1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S(1=5)

 

12)

 

 

 

 

1;5338

 

1;4804

 

 

 

 

погрешность =

j

I

 

S(1=12)

j j

c(1=12)1

j

S(1=

(1=12)1

 

 

 

 

 

(1=12)1

 

0;038:

(1=12)

1 1

(1=12)

1

 

1

 

 

 

 

 

 

(1=5)

 

 

 

 

 

 

(1=5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

11. Предложить способ вычисления несобственного интеграла на компьютере. Указание: использовать один из методов, рассмотренных на лекции или семинаре.

 

 

 

 

1

 

ln x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z0

 

 

dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 + x2

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение. Интеграл является несобственным, так как x

lim

 

 

ln x2

 

=

1. Заметим, что для любого

> 0

!

0+0 1+x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прав.

 

 

 

 

 

 

 

x 1

 

 

 

 

 

 

 

x ln x = lim

ln x

Лопит.

 

 

 

 

 

 

 

 

 

 

 

 

lim

 

=

 

 

 

 

lim

 

 

 

 

= 0:

 

 

 

 

 

 

 

x 1

 

 

x!0+0

 

x!0+0 x

 

 

 

 

 

x!0+0

 

 

 

 

1 ln x

dx =

1

(1 + x2 x2) ln x

dx =

 

 

1 ln x dx

 

1

x2 ln x

dx

 

 

 

 

 

 

 

 

Z0 1 + x2

 

 

Z0

 

 

Z0

 

1 + x2

 

 

 

 

 

 

Z0

 

 

 

 

1 + x2

 

Первый интеграл вычисляется явно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Z0

ln x dx = x ln xj01 Z0

x

 

dx = 1:

 

 

 

 

 

 

 

x

 

 

 

 

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

12. Для заданной матрицы вычислить подчинённую норму матрицы для следующих векторных норм:

jjxjj1

= i

jxij, jjxjj2

= r

 

 

 

i

xi2.

 

P

 

P

 

 

01

1 3 2

BC

B

3

3

4

C

1

9

7

@

 

 

 

A

Решение.

 

 

n

jjAjj1 =

j

jaijj! =

 

max

Xi

 

 

 

 

=1

= max (j 1j + j3j + j1j; j3j + j 3j + j9j; j2j + j4j + j7j) = 15:

q

jjAjj2 = max i(A>A). Найдём матрицу

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

11

 

3

17

1

 

 

 

 

 

 

 

 

 

 

 

 

 

B = A>A =

B

3

 

99

57

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

17

 

57

69

C

 

 

И её собственные значения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

E =

11

 

3

 

17

 

=

 

3 + 179 2 5132 + 4356:

 

 

 

j

 

 

j

 

 

3

99

 

57

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

57

69

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из уравнения

j

 

 

 

j

= 0 получаем

1

 

 

143;43, 2

 

34;69 и 3

 

0;88. Выбираем максимальное с.з.

 

B

 

E

 

 

 

 

 

 

1 и получаем jjAjj2 =

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 11;96.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ yi = cos xi + 1:

8

13. Правая часть СЛАУ Ax = f содержит погрешность, норма которой равна jj fjj1. Оценить относи-

тельную погрешность нормы решения

jj xjj1

. Указание: воспользоваться оценкой

jj xjj1

6 (A)

jj fjj1

.

A = 0 6

 

jjxjj1

 

 

0 7;2

 

jjxjj1

 

jjfjj1

6

8 1; f =

1; jj fjj1 = 0;6

 

 

 

B

7

3

8

C

B

7;1

C

 

 

 

 

5

1

 

 

3

6;7

 

 

 

B

 

 

 

 

C

B

 

C

 

 

 

@

 

 

 

 

 

 

A

@

 

A

 

 

 

Решение.

jjfjj1 = maxfj 7; 1j; j7; 2j; j6; 7jg = 7;2:

jjAjj1 = maxfj 7j + j 3j + j 8j; j6j + j 6j + j 8j; j 5j + j1j + j 3jg = 20:

A 1 =

0

0:3537

0:1159

0:6341

1

 

B

0:1585

0:1037

0:1463

C

 

0:1463

0:1341

0:3659

 

B

 

 

 

C

 

@

 

 

 

A

jjA 1jj1 = maxfj 0:1585j+j0:1037j+j0:1463j; j 0:3537j+j0:1159j+j0:6341j; j0:1463j+j 0:1341j+j 0:3659jg = 1;1037:

jj xjj1

6

(A)

jj fjj1

=

 

A

 

A 1

 

jj fjj1

 

20

 

1;1037

 

0;6

1;84:

 

 

 

 

 

 

 

 

jj

jj1jj

 

 

 

7;2

jjxjj1

 

jjfjj1

 

 

jj1 jjfjj1

 

 

 

14. Для задачи построить разностную схему с заданным порядком аппроксимации.

(

u00(x) + u(x) = cos x + 1;

желаемый порядок аппроксимации p = 2.

u(1) = 2; u0(3) 3u(3) = 1;

Решение. Как видно из граничных условий, решение ищется на отрезке [1; 3]. Разобьём этот отрезок на n равных частей. Длина каждого частичного отрезка равна h = (3 1)=n. Введём в рассмотрение сетку

! = fx0; x1; : : : ; xng, где x0 = 1; x1 = 1 + h; x2 = 2 + 2h; : : : ; xn 1 = 3 h; xn = 3. Рассмотрим также

сеточную функцию yi = y(xi), определённую только в узловых точках xi, i = 0; 1; : : : ; n.

Требуется построить систему линейных уравнений с неизвестными yi, где yi u(xi). Совокупность

таких yi будет численным решением краевой задачи.

Погрешность аппроксимации должна по условию задачи иметь порядок 2 (т.е., например, уменьшение

шага h вдвое должно уменьшать погрешность решения jyi u(xi)j в четыре раза).

Заменим в уравнении производную разделённой разностью (см. лекцию 5) u00(xi) yi 1 2y2i+yi+1 .

h

Исходное дифференциальное уравнение перейдёт в разностное

u00(x) + u(x) = cos x + 1 ! yi 1 2yi + yi+1 h2

Убедимся, что получен второй порядок аппроксимации. В разностное уравнение вместо сеточной функции подставим точное решение, т.е. заменим yi на ui = u(xi). Кроме этого разложим ui 1 в ряд Тейлора в окрестности точки xi

 

h2

 

 

h3

h4

ui 1 = ui hui0 +

 

ui00

 

ui000 +

 

uIV( ); 2 [xi 1; xi]; + 2 [xi; xi+1]:

2

3!

4!

После сокращения имеем

 

h2

 

 

 

 

 

 

 

 

 

 

ui00

 

 

[uIV( ) + uIV( +)] + ui = cos xi + 1:

12

9

Вычитая из последнего равенства исходное дифференциальное уравнение, получаем невязку n(1) =h122 [uIV( ) + uIV( +)] = h62 uIV( ) = O(h2), где 2 [ ; +]. Получен требуемый порядок аппроксимации.

Очевидно, замена граничного условия u(1) = 2 на y0 = 2 не имеет погрешности аппроксимации.

В правом граничном условии нельзя заменить u0(3) левой разделённой разностью, так как u0(3) =

yn yn 1

+ O(h1). Выделим в O(h1) главный член. Из формулы Тейлора в окрестности xn = 3 имеем

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

u(3 h) = u(3) hu0(3) +

 

 

 

u00(3) + O(h3);

 

2

откуда

 

 

 

u(3) u(3 h)

 

 

 

h

 

 

 

 

 

 

u0(3) =

 

+

u00(3) + O(h2):

 

 

 

 

 

 

 

 

 

 

h

 

 

2

 

 

 

 

Из исходного уравнения следует, что u00(3) + u(3) = cos(3) + 1. Таким образом,

 

 

u(3) u(3 h)

+

h

[cos(3) + 1

 

u(3)] + O(h2)

 

3u(3) = 1:

 

 

h

 

 

 

2

 

 

 

 

 

 

 

Невязка для правого граничного условия равна O(h2), что даёт второй порядок аппроксимации.

Окончательный ответ это система из n + 1 линейного уравнения с неизвестными y0; y1; : : : ; yn

>

8

y

i 1

2y

+ y

i+1

+ yi = cos xi + 1; где i = 1; 2; : : : ; n 1 и xi = 1 + ih;

 

 

h2i

 

>

 

 

 

 

 

 

 

 

 

 

> y0 = 2;

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

< yn

 

yn

 

1

+ h2 [cos(3) + 1 yn] 3yn = 1:

>

 

 

 

h

 

>

>

>

:

15. Для решения (начальной или краевой) задачи, где x 2 [0; 2], предложена разностная схема. Определить, аппроксимирует ли разностная схема задачу. Если аппроксимация имеет место, найти её порядок.

Указание: использовать разложение в ряд Тейлора.

 

2yh0

 

 

 

 

8 y2

 

 

u0

+ u = x

 

yi+1

yi 1

+ yi = ih

( u0

(0) = 1; u(2) = 0;

<

 

 

 

= 1; yn = 0 (где xn = 2)

Решение. Рассмотрим разностное уравнение

:

 

2h

 

 

 

 

yi+1 yi 1

+ yi

= ih:

 

 

2h

 

 

 

 

 

Раскладывая ui+1 в окрестности ui и подставляя в последнее уравнение, а затем вычитая исходное уравнение, получим невязку 1 = O(h1).

Рассмотрим первое краевое условие в разностном виде

y2 y0 = 1 2h

Раскладывая u2 в окрестности u0 и подставляя в последнее уравнение, а затем вычитая исходное краевое

условие, получим невязку

2 = O(h1).

Рассмотрим второе краевое условие в разностном виде

 

 

 

yn = 0:

В этом случае невязка

3 равна нулю.

lim max

fj

1j; j

2j; j 3jg = 0, то аппроксимация имеет место. Порядок аппроксимации равен

Так как h!0

maxf1; 1g = 1.

10

16. Проверить выполнимость достаточных условий применимости метода прогонки для решения СЛАУ

Ax = f. Если эти условия выполняются, решить систему методом прогонки (вычислять можно на компьютере, но в решении указать значения всех прогоночных коэффициентов i, i).

0 7

10

1

0

0

1

0 4

1

A = B

11

7

0

0

0

 

 

1

C

0

 

10 20 6

0

C; f = B 5

B

 

 

 

 

 

 

 

C

B

 

 

C

B

 

 

 

 

 

 

 

C

B

 

 

C

B

0

0

10

18

 

7

C

B

6

C

B

0

0

0

6

 

C

B

 

9

C

B

 

13

C

B

 

C

B

 

 

 

 

 

 

 

C

B

 

 

C

@

 

 

 

 

 

 

 

A

@

 

A

Решение. Преобразуем первое и последнее уравнения системы, чтобы она приобрела вид:

0

1

{1

 

 

 

 

 

 

 

 

 

 

B

a1

a

c

 

b

 

 

 

 

 

 

B

c1

b1

 

 

 

 

 

 

 

 

 

2

 

 

2

 

2

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

B

 

 

..

.

..

.

 

..

.

 

B

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

an 1

 

cn

1

B

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

B

0

 

 

 

 

 

 

 

 

{2

 

B

 

 

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

|{z

0

bn 1

1

1

 

y0

 

1

0

1

1

0

y1

 

 

 

 

f1

CB

y2

 

C

B

f2

C

CB

 

 

 

C = B

 

C

C .

 

C

B

 

 

 

.

 

C

CB .

 

 

 

 

.

 

CB .

 

C

B

 

 

 

.

 

C

CB

 

 

 

C

B

 

 

 

 

 

C

CB yn

1

C

B

 

fn 1

C

CB

 

 

C

B

 

 

 

C

CB

 

 

 

C

B

 

 

 

 

 

C

CB

yn

 

C

B

 

2

C

CB

 

 

 

C

B

 

 

C

A@

 

 

 

A

@

 

 

 

 

 

A

}|

 

{z

 

 

 

}

|

 

 

 

{z

 

 

}

0

 

A

 

 

 

 

 

1

y

 

 

f

7

10

1

0

0

0

 

4

1

 

1

0;64 0

0

0

C; f = B

0;09

C

A = B 0

10 20

6

0

 

5

B

 

 

 

 

 

 

 

C

B

 

 

C

B

 

 

 

 

 

 

 

 

C

B

 

 

C

B

0

0

10

18

 

7

C

B

 

6

C

B

0

0

0 0;46

1

C

B

 

0;69

C

B

 

C

B

 

C

B

 

 

 

 

 

 

 

 

C

B

 

 

C

@

 

 

 

 

 

 

 

 

A

@

 

A

Проверим условия применимости метода прогонки:

 

 

 

 

 

 

 

 

 

 

 

 

aj 6= 0;

bj 6= 0;

 

 

 

 

jcjj > jajj + jbjj; j = 1; 2; : : : ; n 1 (диагональное преобладание),

 

 

 

 

j{1j 6 1; j{2j < 1:

 

 

 

 

j10j > j7j + j 1j;

j20j > j 10j + j6j;

j18j > j10j + j 7j;

 

 

j 0;64j 6 1;

j0;46j < 1:

 

 

 

Следовательно, метод прогонки применим.

 

 

 

 

 

 

 

 

 

 

Далее воспользуемся формулами

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 = {1;

1 = 1:

 

 

 

 

 

bj

 

 

 

 

aj j + fj

j = 1; 2; : : : ; n 1:

j+1 =

 

;

j+1 =

 

;

cj jaj

cj jaj

 

 

yn = ({2 n + 2)=(1 {2 n)

 

 

 

yj = j+1yj+1 + j+1;

j = n 1; n 2; : : : ; 0;

 

Соседние файлы в папке Алгоритм решения БДЗ