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

КузнецовЧисМетЛабР

.pdf
Скачиваний:
16
Добавлен:
05.06.2015
Размер:
234.79 Кб
Скачать

3 ИНТЕРПОЛЯЦИЯ ФУНКЦИИ КУБИЧЕСКИМИ СПЛАЙНАМИ

11

3.Постройте графики функции и сплайна на отрезке [c; d], который больше отрезка [a; b] на три шага сетки с каждого конца.

4.Оцените визуально, по графикам на экране, абсолютные и относительные погрешности аппроксимации и экстраполяции.

5.Сравните визуально погрешности аппроксимации сплайном и многочленом Лагранжа.

Совет. Изобразите на одной координатной плоскости все три графика.

3.2Варианты параметров задачи

a = 0, b = 10 + , n = 11

f= ( x2 + 2x 25)=(x3 + ), если 3,

f= (73x2 2x + 32)=(4x3 + x + 7), если 4 7,

f= ( x3 3x2 + 149)=(x4 + 8 ), если 8 15,

f= ( x3 + 3x2 276)=(x2 + 2 ), если 16 30.

3.3Сплайны

Пусть на отрезке [a; b] имеется сетка x0 = a, x1, . . . , xn = b. Сплай-

ном или сплайн-функцией порядка k называется k 1 раз дифференцируемая функция, которая на каждом отрезке xj 1; xj сетки есть

многочлен Sj степени не выше k и которая в узлах сетки совпадает

с заданной сеточной функцией y0, . . . , yn. Сплайн первого порядка называется кусочно-линейной аппроксимацией, а сплайны порядков

2 и 3 параболическими и кубическими.

Предложение 1 При k > 0 каждая сеточная функция имеет сплайн. Сплайны нулевой сеточной функции образуют (k 1)- мерное векторное пространство.

Многочлены искомого сплайна можно последовательно построить, начав с крайнего левого отрезка. На нем можно взять любой мно-

гочлен S1 (например, линейный), совпадающий с функцией в концах. К этому многочлену на отрезке [x1; x2] пристраивается сумма

S2 = P1 + a1(x x1)k, в которой P1 многочлен степени k 1, имеющий заданные k 1 производную (включая нулевую) в точке x1,

а число a1 находится из условия S2(x2) = y2. Ясно, что эта проце-

дура однозначно продолжается до правого конца отрезка. Сплайн нулевой сеточной функции зависит от произвольного многочлена Q

степени k 2, так как в этом случае S1 = (x x0)(x x1)Q.

12

Глава I. ЛАБОРАТОРНЫЕ РАБОТЫ

Спрашивается, как же определить сплайн однозначно? Можно позаботиться о нескольких производных сплайна на концах отрезка. Например, приравнять их к разностным производным сеточной функции.

Пример. Аппроксимировать кубическими сплайнами функцию x5 на отрезке 0 x 4 с шагом h = 2. Оценить погрешность.

S1 = 16x

S2 = 32 + 16(x 2) + a(x 2)3; a = (45 32 16 2)=8 = 120. Базисные сплайны нулевой сеточной функции S10 = (S11; S12) и

S20 = (S21; S22) имеют вид:

S11

= x(x 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

S12

= (ax + b)(x 2)(x 4),

 

 

 

 

 

 

 

 

 

 

 

 

 

(S120 (2) = 2(2a + b) = 2, S1200 (2) = 2b = 2)

 

 

 

 

 

 

a = 1, b = 1.2

 

 

 

 

 

 

 

 

 

 

 

 

 

S21

= x(x 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

S22

= (cx + d)(x 2)(x 4)

 

 

 

 

 

 

 

 

 

 

 

 

 

(S220 (2) = 2(2c + d) = 0, S2200 (2) = 2d = 4)

 

 

 

4

 

 

c = 1, d = 2.

 

 

 

 

 

 

 

 

 

 

 

 

Находим норму невязки.

[0;2]

j

 

 

 

1j

j

 

 

1j

p

 

 

f

S

S

(2= 5) = 17:1

 

max

 

 

= f

 

 

max jf S2j = jf S2j(3:25) = j362:6 32 20 234:4j = 76:2:

[2;4]

Здесь корень 3:25 алгебраического уравнения 5x4 16 360(x 2)2 = 0 приходится искать графически и приближенно.

= jjf Sjj = 76:2, jjfjj = 1024, = 76:2=1024 = 0:075 = 7:5%

Вывод из вычислений: приближение неплохое, вероятно его можно улучшить с помощью сплайнов S10 и S20.

Лабораторная работа № 4. Решение нелинейной системы

4.1Условие задачи

1. Составьте алгоритм решения системы уравнений f(x; y) = 0

g(x; y) = 0 в подходящей окрестности начала координат методом Ньютона.

Совет. Найдите прямоугольник, каждую пару противоположных сторон которого пересекает кривая нулей одной из функций f; g.

2. Запрограммируйте этот алгоритм.

4 РЕШЕНИЕ НЕЛИНЕЙНОЙ СИСТЕМЫ

13

3.Найдите абсолютные и относительные погрешности полученного решения после совершения максимально возможного числа итераций.

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

4.2Варианты параметров задачи

f= x3 + y2 2y + ; f = y3 + x2 2x + 1, если 3,

f= x5 + 7y2 3y + ; f = y5 + 7x2 3x + + 5, если 4 7,

f = x5 18y2 +45y + ; f = y5 18x2 +45x+ +8, если 8 15,

f= x7 3y2 + ; f = y7 3x2 + + 2, если 16 30.

4.3Нелинейные уравнения и системы

Метод простой итерации для нелинейной системы вида

x = f(x)

(I.11)

имеет вид итерационного процесса x(n) = f(x(n 1)), x(0) = x0, где x0какое-нибудь значение переменной x. Последовательность x(n) со

скоростью геометрической прогрессии сходится к решению в шаре

jx x0j M=(1 ), если jf(x0) x0j M и jf(x) f(y)j jx yj,

0 < < 1, когда x и y находятся в этом шаре. Погрешность на шаге n измеряется величиной:

= M n=(1 )

Метод Ньютона применяется, когда линейная часть векторного уравнения f(x) = 0 обратима. Он сводится к методу простой итерации. Разложим функцию с помощью ее первого дифференциала: f(x) = f(y) + f0(y)(x y) + g(x; y), где g(x; y) = o(x y). Так как

матрица f0 обратима, то уравнение f(x) = 0 можно переписать в пригодном для применения метода простой итерации виде:

x = y (f0(y)) 1(f(y) + g(x; y))

Здесь параметр y может быть выбран равным x и тогда g(x; x) = 0,

но может и остаться начальным приближением y = x(0). Получаем два алгоритма.

x(n+1) = x(n) (f0(x(n))) 1f(x(n))

x(n+1) = x(0) (f0(x(0))) 1 g(x(n); x(0)) + f(x(0)) ;

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

14

Глава I. ЛАБОРАТОРНЫЕ РАБОТЫ

Исследование сходимости и оценка погрешности переносятся сюда из метода простой итерации. Метод Рунге оценки погрешности здесь принимает вид

 

 

 

 

 

= jx(n+1) x(n)j

 

.

 

Пример. Найти методом Ньютона корень многочлена x2

+2x

15. Оценить погрешность.

 

 

x

n+1

= x

n

(f0(x

)) 1f(x )

 

 

 

 

n

1 n 2

 

 

xn+1

= xn (2(xn + 2)) (xn + 2xn 15); x0

= 0;

 

x1 = 3:75; x2 = 3:18; x3 = 3:04; x4 = 3:008:

 

 

Погрешность достаточно мала.

 

 

Лабораторная работа № 5. Метод ломаных Эйлера

5.1Условие задачи

1.Составьте алгоритм решения задачи Коши (методом ломаных Эйлера):

y00 + 104(1 + 2)2y = 0; y(0) = sin ;

y0(0) = 100(1 + 2) cos :

Решение ищется на отрезке [0; a], конец a которого параметр программы.

2.Запрограммируйте этот алгоритм.

3.Найдите аналитическое решение задачи.

Совет-ответ. y = sin cos(100(1 + 2)x) + cos sin(100(1 + 2)x).

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

5.Оцените абсолютные и относительные погрешности полученного решения методом Рунге и сравнением с точным решением. Оценки проведите и визуально, по графикам и программно при значениях параметра a из списка: 0:1, 1, 10, 100, . . . .

5.2 Обыкновенные дифференциальные уравнения

 

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

 

y0 = f(x; y); y(x0) = y0;

(I.12)

6 МЕТОД РУНГЕ КУТТЫ

15

где y вектор-функция y = y(1); : : : , номер компоненты вектора

взят в скобки, так как индексом без скобок будет обозначаться номер сеточного узла. Численным решением ее может быть сеточная функция x0; x1; : : : ; y0; y1; : : : . Методы нахождения численных решений различаются по точности, которая, естественно, оценивается лишь в точках сетки, а также еще по многим характеристикам, из которых упомянем трудоемкость и устойчивость. Для неизвестных значений сеточной функции составляется по задаче разностная схема. Так называется система уравнений из которой эти неизвестные находятся. Слово "разностная" здесь говорит о том что система уравнений составлена для решения дифференциальной задачи и дифференциал аппроксимируется разностью. Разностные схемы бывают явные и неявные в зависимости от того, выражается ли в системе yj через

y с меньшими номерами или нет. Явные схемы проще решаются, но правильно составленные неявные схемы лучше приближают точное решение. Рассматриваются только сетки с постоянным шагом h.

5.3Метод ломаных Эйлера

Приращение функции на шаге приравнивается к ее дифференциалу в начальной точке сеточного интервала. Явная схема метода Эйлера имеет вид:

yj+1 = yj + hf(xj; yj)

Погрешность метода имеет первый порядок по h нена методом Рунге:

=

max( y

y

h; jj

) = max(

y

 

j

j h=2; 2j

 

j; k j

 

h=2; 2j (k)

Лабораторная работа № 6. Метод Рунге Кутты

6.1Условие задачи

(I.13)

иможет быть оце-

yh; j (k)j):

1.Составьте алгоритм решения задачи Коши (методом Рунге Кутты четвертого порядка):

y00 + 104(1 + 2)2y = 0; y(0) = sin ;

y0(0) = 100(1 + 2) cos :

Решение ищется на отрезке [0; a], конец a которого параметр программы.

2. Запрограммируйте этот алгоритм.

16

Глава I. ЛАБОРАТОРНЫЕ РАБОТЫ

3.Найдите аналитическое решение задачи.

Совет-ответ. y = sin cos(100(1 + 2)x) + cos sin(100(1 + 2)x).

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

5.Оцените абсолютные и относительные погрешности полученного решения методом Рунге и сравнением с точным решением. Оценки проведите и визуально, по графикам и программно при значениях параметра a из списка: 0:1, 1, 10, 100, . . . .

6.Сравните результат с решением методом ломаных Эйлера.

6.2Алгоритмы Рунге Кутты порядка r

r = 1 Y1 = y + p1k1 = y + hf(x; y)

r = 2 k1 = hf(x; y)

k2 = hf(x + h=2; y + k1=2) Y2 = y + k2;

r = 3 k1 = hf(x; y)

k2 = hf(x + h=2; y + k1=2) k3 = hf(x + h; y k1 + 2k2)

1

Y3 = y + 6(k1 + 4k2 + k3)

r = 4 k1 = hf(x; y)

k2 = hf(x + h=2; y + k1=2) k3 = hf(x + h=2; y + k2=2) k4 = hf(x + h; y + k3)

1

Y4 = y + 6(k1 + 2k2 + 2k3 + k4)

Очевидно, метод Рунге Кутты порядка 1 это метод Эйлера. Эти алгоритмы легко переписываются в форме разностных схем,

например, при r = 4: x = xj, y = yj, y(x + h) = yj+1

1

yj+1 = yj + 6(k1 + 2k2 + 2k3 + k4):

Пример. Решить задачу Коши методом Рунге Кутты четвертого порядка с шагом h = 1. Найти решение в 3 точках. Оценить погрешность.

7 КРАЕВАЯ ЗАДАЧА ДЛЯ ОБЫКНОВЕННОГО УРАВНЕНИЯ

17

 

 

 

 

 

y0 =

3 y

6 x;

y(0) = 1

 

 

 

 

 

 

x + 1

 

Первый шаг.

 

 

 

 

 

 

 

 

k1 = 3

 

 

 

 

 

 

 

 

 

 

 

k2 = 3(1 + 1:5)=1:5 3 = 2

 

 

k3 = 3(1 + 1)=1:5 3 = 1

 

 

k4 = 3(1

+ 1)=2

 

6 =

 

3

 

 

 

 

1

 

 

 

 

 

 

 

Y4 = 1 +

 

 

(3 + 4 + 2 3) = 2

 

 

6

 

 

Второй шаг.

 

 

 

 

 

 

 

 

k1 = 3 2=2 6 = 3

 

 

 

 

 

 

k2 = 3(2 1:5)=2:5 6 1:5 = 8:4

 

 

k3 = 3(2 4:2)=2:5 6 1:5 = 11:64

 

k4 = 3(2 1 11:64)=3 6 2 = 21:64

 

 

Y4 = 2 +

 

 

( 3 16:8 23:28 21:64) = 8:79

 

6

 

Для оценки погрешности найдем точное решение:

 

y = 2(x + 1)3 + 6(x + 1)2 3(x + 1)

 

Ответ: y1

= 1, y2

= 2, y3 = 8:79;

y(0) = 1, y(1) = 2, y(2) = 9;

0 = (0; 0; 0:21), = 0:21=9 = 0:023 = 2:3%:

Решение находится с удивительной для такого шага точностью. Пример. Решить ту же задачу методом Эйлера.

y2 = 1 + 3=1 = 4, y3 = 4 + 3 4=2 6 = 4 . Ясно, что это решение неудовлетворительно.

Лабораторная работа № 7.

Краевая задача для обыкновенного уравнения

7.1Условие задачи

1. Составьте алгоритм решения краевой задачи:

y00 + 104(1 + 2)2y = 0; 0 < x < 1 y0(0) = sin ;

y0(1) + y(1) = cos :

2.Запрограммируйте этот алгоритм.

3.Найдите аналитическое решение задачи.

Совет. y = C1 sin cos(100(1 + 2)x) + C2 cos sin(100(1 + 2)x).

4.Найдите численное решение задачи, выбрав один из разностных алгоритмов, подходящий шаг и точность представления данных, стремясь минимизировать погрешность. Например,

18

Глава I. ЛАБОРАТОРНЫЕ РАБОТЫ

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

5.Численно исследуйте устойчивость решения задачи по правой части и граничным условиям.

6.Постройте графики точного решения, численного решения и возмущенных решений.

7.2Линейные краевые задачи

Формулировку такой задачи можно записать в виде: y0 + A(x) y = f(x); a x b; By(a) + Cy(b) = g:

Здесь y = (yj) = (y1; : : : ; yn) и f = (fj) = (f1; : : : ; fn) n-векторы,

A = (aij) квадратная n n-матрица, B и C прямоугольные m n-матрицы, g числовой m-вектор.

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

1. Найдем частное решение y0 уравнения, решая задачу Коши с условием y0(a) = 0. Метод решения выбирается по принципу от простого к более сложному до удачи.

2. Находим фундаментальную матрицу Z(x) уравнения, решая задачу Коши для соответствующего однородного уравнения:

Z0 + A(x) Z = 0; a x b; Z(a) = 1M :

Здесь 1M единичная матрица.

3. Подставляем искомое решение, взятое в виде y = y0 + Zu в краевые условия задачи:

(BZ(a) + CZ(b))u = g By0(a) Cy0(b)

Получаем для неизвестного числового вектора u систему линейных уравнений.

4. Решаем эту систему и получаем ответ:

i)Если u единственно, то y = y0 + Zu.

ii)Если система неопределена, то ее общее решение имеет вид

u = u0+c1u1+ +ckuk, где u0 ее частное решение, (uj) базисные решения соответствующей однородной системы и снова y = y0 + Zu с этим u.

iii) Если система не имеет решения, то и краевая задача не имеет решения.

8 ЗАДАЧА ШТУРМА ЛИУВИЛЛЯ

19

Лабораторная работа № 8. Задача Штурма Лиувилля

8.1Условие задачи

1.Составьте алгоритм решения задачи Штурма Лиувилля:

y00 + 104(1 + 2)2y = y; 0 < x < 1 y0(0) y(0) = 0;

y0(1) (1 + 2)y(1) = 0:

2.Запрограммируйте этот алгоритм.

3.Найдите аналитическое решение задачи и вычислите первые пять собственных значений и собственных функций.

4.Найдите численное решение задачи первые пять собственных значений ( k) и собственных функций (yk).

5.Численно проверьте взаимную ортогональность собственных функций.

6.Численно исследуйте зависимость точности решения yk от точности задания собственного числа k.

7.Численно разложите по полученной системе функцию 1=(x + 1)

играфически сравните разложение с функцией.

8.Постройте графики собственных функций и их зависимости от малых возмущений собственных чисел.

8.2 Самосопряженная задача Штурма Лиувилля

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

P [y] = y00 + q y = y; x 2 (a; b)

(I.14)

Q1 [y] = y0(a) + y(a) + y0(b) + y(b) = 0

Q2 [y] = { y0(a) + y(a) + y0(b) + y(b) = 0

Неизвестна в задаче не только собственная функция y(x), но и соб-

ственное число . Для самосопряженности этой задачи относительно скалярного произведения

Z b

(y; z) = y(x)z(x) dx

a

необходимо подчинить коэффициенты ее граничных операторов некоторому условию. Будем предполагать, что оно выполнено.

Тогда искомые собственные числа j будут обладать следующими свойствами, несомненно полезными для их отыскания. Все они

20

Глава I. ЛАБОРАТОРНЫЕ РАБОТЫ

вещественны, дискретны, ограничены снизу и не более чем двукратны, а их множество не имеет предельных точек. Следовательно, их можно упорядочить по возрастанию: 1 < 2 < : : : . Собственные функции yj в этом случае образуют полную ортогональную систе-

му, которая используется для разложения по ним прочих функций. При этом вклад собственной функции в разложение уменьшается с ростом ее номера. Само разложение функции z, которое называется ее рядом Фурье, имеет вид:

z= a1y1 + a2y2 + : : : ;

аего коэффициенты находятся из соотношений: (z; yj) = aj(yj; yj).

8.3Метод стрельбы или пристрелки

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

1. Для каждого вещественного с некоторым шагом находим базисные решения u1, u2 задачи Коши для уравнения (I.14) с одними

и теми же начальными данными: u1(a) = 1, u01(a) = 0, u2(a) = 0, u02(a) = 1.

2. Подставляем u = c1u1 + c2u2 в краевые условия и получаем систему линейных однородных уравнений для постоянных c1; c2.

3. Вычисляем определитель этой системы, как функцию от . 4. Находим корни этой функции.

5. Для каждого корня находим из системы постоянные c1c2 и собственную функцию y = u = c1u1 + c2u2. Может случиться, что

константы найти нельзя (если все четыре коэффициента системы равны нулю), это означает, что корень двукратный и, значит, обе

функции u1 и u2 собственные. В этом случае их следует ортогонализировать и приписать к последовательности собственных функций.

Другой вариант алгоритма применим в случае, когда одно из краевых условий относится лишь к одному концу интервала (a; b), пусть

оно имеет вид y0(a) + y(a) = 0, а второе Q[y] = 0.

1. Для каждого вещественного с некоторым шагом находим решение u задачи Коши для уравнения (I.14), подчиненное первому

условию, полагая либо u(a) = 1, либо u0(a) = 1.

2.Подставляем это решение во второе условие и получаем точку на графике функции 7!Q[u( )].

3.Находим корни этой функции 1 < 2 < : : : . Им отвечают собственные функции y1; y2; : : : решения задачи Коши из п. 1.