Министерство образования Российской Федерации
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им. И.М. ГУБКИНА
Каф...
65 downloads
652 Views
584KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования Российской Федерации
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им. И.М. ГУБКИНА
Кафедра прикладной математики и компьютерного моделирования
Э.П. Чен-Син, Л.Н. Панюшева
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО КУРСУ КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ
МОСКВА 2004
Министерство образования Российской Федерации
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им. И.М. ГУБКИНА
Кафедра прикладной математики и компьютерного моделирования
Э.П. Чен-Син, Л.Н. Панюшева
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО КУРСУ КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ Допущено Учебно-методическим объединением вузов Российской Федерации по нефтегазовому образованию в качестве учебного пособия для подготовки бакалавров и магистров по направлению 553600 “Нефтегазовое дело”, а также для подготовки дипломированных специалистов по специальностям 090600 “Разработка и эксплуатация нефтяных и газовых месторождений”, 090700 “Проектирование, сооружение и эксплуатация газонефтепроводов и газонефтехранилищ” и 090800 “Бурение нефтяных и газовых скважин” направления 650700 “Нефтегазовое дело”
МОСКВА 2004
УДК 681.3:622.691.4+681.3:622.692.4 Чен-Син Э.П., Панюшева Л.Н. Методические указания к лабораторным работам по курсу Компьютерное моделирование: Учебное пособие. – М.: РГУ нефти и газа, 2004. –92 с. В данном пособии приводятся задания к лабораторным работам по вариантам в виде технологических задач, требующих решения на компьютере с применением известных численных методов. Для облегчения усвоения материала и лучшего понимания сути применяемых методов решения каждая тема предваряется описанием метода и примерами расчетов. Авторы выражают благодарность профессору Лурье М.В. за помощь в подборе предлагаемых студентам технологических задач. Пособие ориентировано на студентов, изучающих проблемы транспорта нефти и газа, но может с успехом быть использовано и студентами других специальностей, изучающих применение численных методов для решения проблем нефтегазового дела. Утверждено Советом факультета А и ВТ в качестве учебного пособия. Рецензенты – Е.В. Гливенко, д.т.н., проф. каф. ПМ и КМ РГУ нефти и газа им. И.М. Губкина, Т.М. Александриди, проф. каф. АСУ МАДИ
© Российский государственный университет нефти и газа им. И.М. Губкина, 2004
3
1. Погрешности вычислений 1.1. Основные определения и свойства Все вычисления, проводимые при решении какой-либо задачи, страдают приближенностью. Это происходит потому, что используемые в этих вычислениях величины несут в себе неточность измерения, определяемую единицей измерения прибора, а также потому, что в процессе вычисления могут производиться округления величин, приводящие также к накоплению погрешности вычисляемых величин. Это надо обязательно учитывать, чтобы всегда иметь представление о величине ошибки полученного результата. Различают два вида погрешностей – абсолютную и относительную. Абсолютная погрешность некоторой величины равна разности между ее истинным значением и приближенным значением, полученным в результате измерения или вычисления. Относительная погрешность – это отношение абсолютной погрешности к модулю приближенного значения величины. Таким образом, если а – приближенное значение величины х, то выражения для абсолютной и относительной погрешностей запишутся соответственно в виде Δх=х-а, δх=Δх/| а | Но так как истинное значение величины х обычно неизвестно, то за величину абсолютной погрешности значения а принимают предельную погрешность Δа, равную верхней оценке модуля абсолютной погрешности, т.е.
Δx ≤ Δa . В этом случае истинное значение х находится в интервале (а – Δа, а +Δа). Аналогично поступают с относительной погрешностью. Исходя из полученных определений погрешностей, можно доказать несколько свойств их, полезных для оценок погрешностей величин, полученных в результате арифметических операций над приближенными значениями.
4
(В приводимых ниже формулах договоримся оценку абсолютной погрешности величины а обозначать Δа, а оценку относительной погрешности этой же величины как δа.) Вот эти свойства: 1. Оценка абсолютной погрешности суммы или разности двух приближенных величин равна сумме оценок их абсолютных погрешностей
Δ(a ± b) = Δa + Δb 2. Если k – точное значение сомножителя некоторой приближенной ве-
личины а, то оценка абсолютной погрешности произведения ka равна умноженной на k оценке абсолютной погрешности данной величины Δ(ka) = k ⋅ Δa 3. Оценка относительной погрешности произведения или частного двух приближенных величин равна сумме оценок их относительных погрешностей
δ (ab) = δa + δb δ ( a / b ) = δa + δb 4. Оценка относительной погрешности приближенной величины, возведенной в степень, равна произведению оценки относительной погрешности этой величины на показатель степени
δ ( a k ) = k ⋅ δa 5. Если k – точное значение сомножителя некоторой приближенной величины, то оценка относительной погрешности произведения равна оценке относительной погрешности данной величины
δ (ka) = δa 6. Оценка относительной погрешности приближенной величины равна отношению
оценки
ее
абсолютной
приближенного значения этой величины
погрешности
к
модудю
5
δa = Δa / a 7. Если известна оценка относительной погрешности величины, то оценку абсолютной погрешности ее можно найти, умножив оценку относительной погрешности на модуль приближенного значения величины Δa = δa ⋅ a
1.2. Пример Пусть необходимо вычислить значение величины y ,а также оценить погрешность этого вычисления. При этом известны оценки абсолютных погрешностей используемых в вычислении величин Дано: y =
a+b , x (1 − x) 2
a = 25.2, Δa = 0.1 b = 10.24, Δb = 0.02 x = 0.5, Δx = 0.1 Тогда проделаем следующие расчеты:
Δ(a + b) = 0.1 + 0.02 = 0.12 δ (a + b) = Δ(a + b) / a + b = 0.12 / 35.44 = 0.003386 δ ( x 2 ) = 2 ⋅ δx = 2 ⋅ Δx / x = 2 ⋅ 0.1 / 0.5 = 0.4 Δ(1 − x) = Δ(1) + Δx = 0 + 0.1 = 0.1 δ (1 − x) = Δ (1 − x) / 1 − x = 0.1 / 0.5 = 0.2 a+b δ( 2 ) = δ (a + b) + δ ( x 2 ) + δ (1 − x) = x (1 − x) = 0.003386 + 0.4 + 0.2 = 0.603386 1 2 25.2 + 10.24 y= = 283.52 = 16.838052 0.5 2 (1 − 0.5) Δy = δy ⋅ y = 0.301693 ⋅ 16.838052 = 5.0799224
δ ( y ) = ⋅ 0.603386 = 0.301693
6
1.3. Лабораторная работа №1 Оценка погрешностей результата вычислений
Оценить абсолютную и относительную погрешности результатов вычисления выражений ( V, S, Y ), если известны оценки абсолютных погрешностей измерения участвующих в выражениях величин:
V = π Dd 2
№
2
4
D
S=
1 π D 4−d 4 64
d
D
d
Y=
a
a−b m(20 − a ) 3
b
m
1
54 (±0.5)
8.23 (±0.01)
36.5(±0.1)
26.35(±0.05) 10.82
2.786(±0.006)
0.28(±0.06)
2
56 (±0.3)
3.27 (±0.02)
41.4(±0.2)
31.75(±0.03) 9.37
3.108(±0.003)
0.46(±0.02)
3
72 (±0.5)
7.34 (±0.01)
52.6(±0.1)
48.39(±0.01) 11.45 ( ±0.01)
4.431(±0.002)
0.75(±0.03)
4
31 (±0.3)
7.34 (±0.01)
36.5(±0.1)
21.35(±0.05) 11.82
2.785(±0.005)
0.26(±0.03)
5
32 (±0.7)
7.34 (±0.01)
41.4(±0.2)
36.75(±0.01) 8.82
3.108(±0.003)
0.46(±0.02)
6
89 (±0.3)
8.23 (±0.01)
41.5(±0.2)
31.75(±0.03) 12.82
4.431(±0.002)
0.75(±0.03)
7
56 (±0.4)
8.23 (±0.01)
36.5(±0.1)
26.35(±0.05) 10.82
2.786(±0.006)
0.28(±0.06)
8
36 (±0.3)
8.23 (±0.01)
42.5(±0.2)
31.75(±0.03) 7.82
3.108(±0.003)
0.46(±0.02)
9
57 (±0.5)
3.27 (±0.02)
41.4(±0.2)
36.35(±0.05) 10.56
4.431(±0.002)
0.75(±0.03)
96 (±0.3)
3.27 (±0.02)
36.5(±0.1)
31.75(±0.03) 9.72
2.786(±0.006)
0.28(±0.06)
10
( ±0.03)
(±0.04)
( ±0.02) ( ±0.03) ( ±0.03)
( ±0.05) ( ±0.02) ( ±0.03)
( ±0.03)
7
11 12 13 14 15 16 17 18 19 20 21 22 23 24
34 (±0.1)
6.26 (±0.03)
53.6(±0.1)
41.75(±0.03) 10.82
3.108(±0.003)
0.46(±0.02)
25 (±0.2)
5.23 (±0.01)
62.6(±0.1)
56.35(±0.05) 10.72
4.431(±0.002)
0.75(±0.03)
16 (±0.3)
6.26 (±0.03)
36.5(±0.1)
26.35(±0.05) 9.56
2.786(±0.006)
0.28(±0.06)
76 (±0.1)
7.34 (±0.01)
42.6(±0.1)
26.35(±0.05) 8.62
3.108(±0.003)
0.46(±0.02)
67 (±0.5)
5.23 (±0.01)
52.6(±0.1)
45.35(±0.05) 11.83
4.431(±0.002)
0.75(±0.03)
66 (±0.5)
6.26 (±0.03)
42.6(±0.5)
36.45(±0.04) 10.82
2.786(±0.006)
0.28(±0.06)
26 (±0.8)
5.23 (±0.01)
53.6(±0.1)
47.35(±0.05) 10.82
3.108(±0.003)
0.46(±0.02)
79 (±0.3)
6.26 (±0.03)
42.6(±0.1)
33.67(±0.05) 7.72
4.431(±0.002)
0.75(±0.03)
89 (±0.3)
5.23 (±0.01)
32.6(±0.1)
26.35(±0.05) 9.78
2.786(±0.006)
0.28(±0.06)
56 (±0.3)
8.23 (±0.01)
42.8(±0.1)
33.35(±0.09) 8.87
3.108(±0.003)
0.46(±0.02)
76 (±0.7)
3.27 (±0.02)
42.6(±0.8)
38.35(±0.05) 10.82
4.431(±0.002)
0.75(±0.03)
93 (±0.3)
6.26 (±0.03)
52.6(±0.2)
45.35(±0.01) 10.82
2.786(±0.006)
0.28(±0.06)
95 (±0.4)
8.23 (±0.01)
52.6(±0.2)
38.35(±0.05) 10.82
3.108(±0.003)
0.75(±0.03)
35 (±0.2)
3.27 (±0.02)
32.6(±0.1)
26.35(±0.05) 10.82
2.786(±0.006)
0.46(±0.02)
( ±0.03)
( ±0.02)
( ±0.03) ( ±0.02) ( ±0.03)
( ±0.03) ( ±0.05) ( ±0.03)
( ±0.03) ( ±0.03)
( ±0.03) ( ±0.03) ( ±0.03)
( ±0.03)
8
2. Методы решения нелинейных уравнений 2.1. Общие сведения Мы рассмотрим здесь лишь некоторые наиболее используемые методы решения нелинейных уравнений. Эти методы относятся к итерационным методам, т.е. методам
получения последовательности точек
{x }, n
которая
сходится к решению уравнения F ( x) = 0 . При
этом
итерационный
процесс
останавливается
тогда,
когда
достигается заданная точность ε полученного результата. Говоря о точности, можно требовать получения такого приближения корня уравнения, что модуль значения функции F (x) отличается от нуля не больше, чем на заданную малую величину ε , т.е. F ( xn ) < ε . А можно требовать локализации самого корня уравнения на отрезке так, чтобы ошибка определения корня была не больше ε , т.е. остановка будет производиться при нахождении такого отрезка [an , bn ] , содержащего корень,
что длина его будет не больше 2 ⋅ ε . Тогда, взяв в качестве корня середину этого отрезка, можно быть уверенным, что истинный корень уравнения отличается
от
найденного
не
больше,
чем
на
ε,
т.е.
bn − an < 2ε , xn = (bn + an ) / 2 . 2.1.1. Метод хорд Этим методом можно пользоваться в том случае, если функция F (x) непрерывна в некоторой окрестности корня уравнения. Для начала ищется отрезок [a1 ,b1 ] в этой окрестности, который содержал бы только один искомый корень уравнения, а значения функции на концах его были бы разных знаков. Так как функция непрерывна на этом отрезке, то ее
9
график обязательно где-то внутри этого отрезка пересечет ось абсцисс. Эту точку х пересечения графика функции с осью ОХ, являющуюся корнем уравнения, и нужно найти. Затем строится хорда, соединяющая точки графика функции, отвечающие концам имеющегося отрезка. Вычисляется точка пересечения этой хорды с осью ОХ. Назовем эту точку х1. Затем определяется, на каком из отрезков
[a , x ] 1
1
или [x1 ,b1 ] лежит корень уравнения. Если F (a1 ) ⋅ F ( x1 ) < 0 , то корень
лежит на отрезке [a1 , x1 ] и x1 становится правым концом нового (уже меньшего) отрезка локализации корня, а a1 – левым концом этого отрезка. При
этом
производят переименование a2 = a1 и b2 = x1 . Если F (b1 ) ⋅ F ( x1 ) < 0 , то корень – на отрезке [x1 ,b1 ] и x1 становится левым концом нового отрезка локализации корня, а b1 – правым концом этого отрезка, т.е. a2 = x1 и b2 = b1 . Теперь имеется уже новый отрезок локализации корня. С ним проделывается та же процедура построения хорды и поиска точки ее пересечения с осью ОХ – точки x2 . Остановка производится при нахождении отрезка [an , bn ] , длина которого не больше 2 ⋅ ε . Тогда в качестве корня берут середину этого отрезка. Этот процесс можно увидеть на рис.1.
Рис.1
10
Формула для получения точки пересечения хорды с осью ОХ на каждом шаге имеет следующий вид: xn = a n −
(bn − an ) ⋅ F (an ) F (bn ) − F (an )
2.1.2. Метод касательных Ньютона Этот метод можно использовать в случае выполнения следующих требований к функции F (x) : 1) На найденном отрезке локализации корня [a, b] F (x) должна иметь единственный корень и значения функции на концах этого отрезка должны быть разных знаков, т.е. F (a ) ⋅ F (b) < 0 . 2) F (x) должна иметь непрерывную вторую производную на этом отрезке. 3) Кроме того, на отрезке [a, b] вторая производная функции F ′′(x) должна сохранять свой знак.
Тогда в качестве начального приближения корня выбирается x 1 по следующему правилу: ⎧ a, если F (a ) ⋅ F ′′( x) > 0 x1 = ⎨ ⎩ b, если F (b) ⋅ F ′′( x) > 0
Затем в точке с абсциссой x 1 строится касательная к графику функции F (x) . Точка пересечения этой касательной с осью ОХ берется в качестве следующего приближения корня x2 . И так процесс продолжается до тех пор, пока не будет достигнута нужная точность ε . Если достаточно получить точку, в которой F (x) не превышает по модулю заданное число ε , то производят остановку при выполнении этого условия.
11
Если же надо получить приближение корня, отстоящее от истинного его значения не более чем на ε , то процесс останавливают тогда, когда выполняется следующее условие: xn +1 − xn < (2mε / M )1 / 2 , где m = min F ′( x) на [a,b]
и
M = max F ′′( x) на [a, b]
Процесс можно увидеть на рис.2.
Рис.2 Формула для вычисления точки пересечения касательной с осью ОХ имеет следующий вид: xn +1 = xn − F ( xn ) / F ′( xn ) 2.1.3. Пример 1 Вычислим с помощью метода хорд корень уравнения x 3 − 3 x 2 + 9 x − 8 = 0 с точностью
ε = 0.1 . Под точностью будем понимать отклонение модуля
функции от нулевого значения.
12
Выберем в качестве левой границы отрезка a1 = 0 . При этом F (a1 ) = −8 . В качестве
правой
границы
F (b1 ) = 33 − 3 ⋅ 32 + 9 ⋅ 3 − 8 = 19 .
можно
b1 = 3 .
взять
Выполняется
При
необходимое
этом условие
F (a1 ) ⋅ F (b1 ) < 0 . Найдем первое приближение корня x1 = 0 −
(3 − 0) ⋅ (−8) 24 = 19 − (−8) 27
Найдем значение функции в этой точке F ( x1 ) = (24 / 27) 3 − 3 ⋅ (24 / 27) 2 + 9 ⋅ (24 / 27) − 8 = −1.668 Проверим, не надо ли прекратить вычисления: − 1.668 > 0.1 , значит, точность еще не достигнута. Т.к. F (b1 ) ⋅ F ( x1 ) < 0 , следующим отрезком будет a2 = x1 = 24 / 27,
b2 = b1 = 3 .
Найдем второе приближение корня x2 = 24 / 27 −
(3 − 24 / 27) ⋅ (−1.668) = 1.06 19 − (−1.668)
Найдем значение функции в этой точке F ( x2 ) = 1.06 3 − 3 ⋅ 1.06 2 + 9 ⋅ 1.06 − 8 = −0.64 .
− 0.64 > 0.1 , поэтому продолжаем вычисления. Т.к. F (b2 ) ⋅ F ( x2 ) < 0 , следующим отрезком будет
a3 = x2 = 1.06,
b3 = b2 = 3 . И т.д. до достижения заданной точности.
2.1.4. Пример 2 Вычислим
с
помощью
метода
Ньютона
корень
уравнения
x 3 − 3 x 2 + 9 x − 8 = 0 с точностью ε = 0.1 . Под точностью будем понимать отклонение модуля функции от нулевого значения. Выберем в качестве левой границы отрезка a = 1.06 . Значение функции в этой точке равно F (a ) = −0.64 . В качестве правой границы можно взять b = 3 .
13
Значение функции в этой точке равно F (b ) = 19 . А значит, выполняется необходимое условие применения метода F (a ) ⋅ F (b) < 0 . Кроме этого выполняется требование непрерывности второй производной функции: F ′′( x) = 6 x − 6 – непрерывная функция. А также на выбранном отрезке вторая производная функции F ′′(x) не меняет знак. Действительно, F ′′( x) = 6 x − 6
больше нуля на всем отрезке
[1.06,3]. Выберем в качестве первого приближения x1 = b , т.к. F (b) ⋅ F ′′( x) > 0 . Найдем второе приближение корня x2 = x1 − F ( x1 ) / F ′( x1 ) = = 3 − (33 − 3 ⋅ 32 + 9 ⋅ 3 − 8) /(3 ⋅ 32 − 6 ⋅ 3 + 9) = 1.94 Значение функции в этой точке равно F ( x2 ) = 1.94 3 − 3 ⋅ 1.94 2 + 9 ⋅ 1.94 − 8 = 5.47 5.47 > 0.1 поэтому продолжаем и ищем третье приближение корня x3 = x2 − F ( x2 ) / F ′( x2 ) = = 1.94 − (1.94 3 − 3 ⋅ 1.94 2 + 9 ⋅ 1.94 − 8) /(3 ⋅ 1.94 2 − 6 ⋅ 1.94 + 9) = 1.31
Значение функции в этой точке равно F ( x 3 ) = 1.59 1.59 > 0.1 поэтому продолжаем и ищем четвертое приближение корня x4 = x3 − F ( x3 ) / F ′( x3 ) = = 1.31 − (1.313 − 3 ⋅1.312 + 9 ⋅1.31 − 8) /(3 ⋅1.312 − 6 ⋅1.31 + 9) = 1.06
Значение функции в этой точке равно F ( x4 ) = −0.64 − 0.64 > 0.1 .И так далее до достижения точности.
14
2.2. Лабораторная работа №2 Решение нелинейного уравнения методом хорд 2.2.1. Задача №1 Воспользовавшись методом хорд для нахождения корня нелинейного уравнения, вычислить коэффициент гидравлического сопротивления λ при течении
жидкости
в
трубопроводе
с
относительной
шероховатостью
внутренней стенки ε для заданного числа Рейнольдса Re. Универсальный закон сопротивления для развитого турбулентного течения имеет вид: 1
λ
= 0.884 ln
11.2 Re λ − 2.018 2 2 + 0.31ε Re λ
Данные по вариантам: № варианта
шероховатость ε
число Рейнольдса Re
1
2 ⋅ 10 −4
2.5 ⋅ 10 4
2
3 ⋅ 10 −4
10 4
3
4 ⋅ 10 −4
5 ⋅ 10 4
4
5 ⋅ 10 −4
10 5
5
6 ⋅ 10 −4
5 ⋅ 10 5
6
7 ⋅ 10 −4
10 4
7
2 ⋅ 10 −4
2.5 ⋅ 10 4
8
3 ⋅ 10 −4
5 ⋅ 10 4
9
4 ⋅ 10 −4
5 ⋅ 10 5
10
5 ⋅ 10 −4
2.5 ⋅ 10 4
15
11
6 ⋅ 10 −4
10 4
12
7 ⋅ 10 −4
10 5
13
2 ⋅ 10 −4
5 ⋅ 10 4
14
3 ⋅ 10 −4
5 ⋅ 10 5
15
4 ⋅ 10 −4
10 4
16
5 ⋅ 10 −4
2.5 ⋅ 10 4
17
6 ⋅ 10 −4
5 ⋅ 10 5
18
7 ⋅ 10 −4
10 5
19
2 ⋅ 10 −4
5 ⋅ 10 4
20
3 ⋅ 10 −4
10 4
21
4 ⋅ 10 −4
2.5 ⋅ 10 4
22
5 ⋅ 10 −4
5 ⋅ 10 5
23
6 ⋅ 10 −4
5 ⋅ 10 4
24
7 ⋅ 10 −4
10 4
2.2.2. Задача №2 Воспользовавшись методом хорд для нахождения корня нелинейного уравнения, вычислить расход дизельного топлива Q( м 3 / ч ) плотностью
ρ = 840 кг/м 3 и
кинематической вязкостью ν = 10 cCm = 10- 5 м 2 / с
при
перекачке по участку трубопровода длиной L= 125 км, диаметром d = 514 мм и с шероховатостью внутренней стенки ε = 0.0005, если насосная станция работает с двумя последовательно включенными насосными агрегатами. Уравнение баланса напоров для участка трубопровода имеет вид: 1 68 )4 4Q / πdν , 2 8 ρQ / π 2 d 3 g
0.11 ⋅ L(ε + (hn + (a − bQ 2 ) + z1 ) − (hk + z 2 ) =
16
где hn и hk – подпор перед станцией и напор в конце участка соответственно; a и b – коэффициенты, определяемые типом и количеством насосов;
z1 и z 2 – высотные отметки сечений трубопровода в начале и в конце участка. Данные по вариантам: №
hn , м
hk , м
a, м
ч2 b, 5 м
z1 , м
z2 , м
1
50
30
662
0.902 ⋅ 10 −4
100
200
2
30
50
630
1.110 ⋅ 10 −4
200
100
3
70
30
580
0.425 ⋅ 10 −4
50
150
4
40
60
600
0.402 ⋅ 10 −4
120
180
5
60
40
550
0.350 ⋅ 10 −4
180
120
6
60
30
570
0.425 ⋅ 10 −4
80
150
7
30
50
662
0.902 ⋅ 10 −4
120
190
8
70
30
630
1.110 ⋅ 10 −4
50
170
9
60
40
580
0.425 ⋅ 10 −4
180
110
10
60
30
550
0.350 ⋅ 10 −4
50
160
вар.
2.2.3. Задача №3 Состояние реального газа может быть описано уравнением Ван-дерВаальса: (P +
a )(V − b) = RT , где V2
a = 27 R 2Tc2 /(64 Pc ) , b = RTc /(8 Pc ) , R – универсальная газовая постоянная,
17
T – температура газа, Pc – критическое давление, Tc – критическая температура, V – молярный объем газа. Воспользовавшись методом хорд для нахождения корня нелинейного уравнения, найти молярный объем данного газа V при заданных значениях давления P и температуры T. Величины критических параметров Pc и Tc отдельных газов приведены с следующей таблице: газ
метан
этан
пропан
n-бутан
CH 4
C2 H 6
C3 H 8
n − C 4 H 10 i − C 4 H 10
n − C5 H 12
i-бутан
n-пентан
Tc , K
190,55 305,43 369,82
408,13
425,16
469,65
Pс , МПа
4,695
3,871
3,719
3,435
Газ
4,976
4,333
i-пентан n-гексан i − C5 H 12 n − C6 H 14
Tc , K
460,39
507,35
Pс , МПа
3,448
3,072
Задания по вариантам: № вар.
1
2
3
4
5
6
Газ
Метан
этан
пропан
n-бутан i-бутан
n-пентан
Т, К
305
508
490
760
530
600
Р, МПа
2,200
3,700
1,570
1,800
1,250
2,400
18
№ вар.
7
8
газ
i-пентан
Т, К Р, МПа
9
10
11
12
n-гексан метан
этан
n-бутан
пропан
560
720
311
620
560
540
2,250
2,500
1,750
2,370 1,600
1,590
2.3. Лабораторная работа №3 Решение нелинейного уравнения методом Ньютона
2.3.1. Задача №1 Вычислить перепад давления Δp , который необходим для того, чтобы перекачивать с расходом Q по трубопроводу радиусом l = 1 км
r = 0,1 м , длиной
в ламинарном режиме высоковязкий застывающий мазут
плотностью ρ = 870 кг/м 3 , если он при выбранной температуре бингамовский пластик с предельным напряжением сдвига τ 0 и кинематической вязкостью ν . Известна формула Букингема, связывающая Δp и Q:
πr 2 Δp ⎡ 4 ⎛ 2τ 0 l ⎞ 1 ⎛ 2τ 0 l ⎞ ⎟ ⎟+ ⎜ Q= ⎢1 − ⎜ 8lρν ⎢⎣ 3 ⎜⎝ rΔp ⎟⎠ 3 ⎜⎝ rΔp ⎟⎠
4
⎤ ⎥. ⎥⎦
Вычисления провести, воспользовавшись методом Ньютона для решения нелинейного уравнения. Задания по вариантам: № варианта
Q, м 3 /ч
τ 0 , Па
ν , м 2 /c
1
120
30
50
2
140
25
40
3
150
20
40
19
№ варианта
Q, м 3 /ч
τ 0 , Па
ν , м 2 /c
4
200
20
40
5
170
35
40
6
180
30
50
7
160
20
25
8
100
50
50
9
110
40
40
10
125
40
50
11
115
25
30
12
200
25
30
13
175
30
30
14
180
40
50
15
160
40
40
16
135
50
25
17
150
45
35
18
150
30
35
19
130
30
40
20
120
25
50
21
120
40
45
22
185
25
45
23
190
35
50
24
105
50
30
2.3.2. Задача №2 Резервуар для нефти имеет форму лежащего цилиндра радиусом 1м и длиной 3м. Для определения степени заполнения резервуара нефтью в него опускается вертикально в отверстие сверху измерительный стержень.
20
Необходимо рассчитать шкалу для этого стержня, на которой были бы нанесены отметки о заполнении резервуара в долях q от его полного объема (для q= 0.02; 0.04; 0.06;…; 0.50, т.е. для заполнения на 2%, 4%, 6%, …, 50%). Для этого надо определить высоты всех указанных уровней заполнения. Решение: Пусть l – длина резервуара, α – угол при вершине треугольника, образованного при соединении центра окружности поперечного сечения резервуара и концов линии поверхности жидкости ( рис. 3).
Рис. 3 При этом заполненный объем V есть функция угла α: 1 V = r 2 l (α − sin α ) 2
(1)
Высота уровня жидкости вычисляется по формуле h = r (1 − cos(α / 2))
(2)
С другой стороны имеем V = πr 2 lq
(3)
Из формул (1) и (3) получаем уравнение
α − sin α − 2πq = 0 ,
(4)
решая которое методом Ньютона, найдем α. Подставив значение α в формулу (2), найдем h. Каждый студент должен выполнить расчет уровня жидкости заданного значения q. Затем вся группа строит искомую шкалу.
h для
21
Задания по вариантам: № вар. 1
2
3
4
5
6
7
8
9
10
11
12
.02 .06 .10 .14 .18 .22 .26 .30 .34 .38 .42 .50
q
2.3.3. Задача №3 Состояние реального газа в простейшем случае может быть описано уравнением Редлиха-Квонга: P=
RT a , где − 0,5 V − b T V (V − b)
a = 0,42747 R 2Tc2, 5 / Pc ,
b = 0,08664 RTc / Pc , R – универсальная газовая постоянная, T – температура газа, Pc – критическое давление, Tc – критическая температура, V – молярный объем газа.
Воспользовавшись методом Ньютона для нахождения корня нелинейного уравнения, найти молярный объем данного газа при заданных значениях P и T. Критические параметры отдельных газов даны в следующей таблице: метан
этан
Пропан
n-бутан
i-бутан
n-пентан
CH 4
C2 H 6
C3 H 8
n − C4 H 10
i − C 4 H 10
n − C5 H 12
Tc , K
190.55
305.43
369.82
408.13
425.16
469.65
Pс , МПа
4.695
4.976
4.333
3.871
3.719
3.435
газ
22
газ
i-пентан
n-гексан
i − C5 H 12
n − C6 H 14
Tc , K
460.39
507.35
Pс , МПа
3.448
3.072
Задания по вариантам: № вар.
1
2
3
газ
метан
этан
Т, К
305
508
Р, МПа
2.200
3.700 1.570
№ вар.
7
8
газ
i-пентан
Т, К Р, МПа
4
5
6
пропан n-бутан
i-бутан
n-пентан
490
760
530
600
1.800
1.250
2.400
10
11
12
n-гексан метан
этан
n-бутан Пропан
560
720
311
620
560
2.250
2.500
1.750
2.370 1.600
9
540 1.590
23
3. Методы решения систем линейных уравнений 3.1. Основные понятия Рассмотрим систему n линейных алгебраических уравнений с
n
неизвестными: ⎧a11 x1 + a12 x2 + ... + a1n xn = b1 ⎪a x + a x + ... + a x = b ⎪ 21 1 22 2 2n n 2 ⎨ ⎪. . . . . . . . . . . . . . . . . . . . ⎪⎩an1 x1 + an 2 x2 + ... + ann xn = bn В ней aij – коэффициенты при неизвестных xj. Решением этой системы называется такой набор значений неизвестных xj, который удовлетворяет системе. Коэффициенты aij можно записать в виде матрицы (таблицы): ⎛ a11a12 ...a1n ⎞ ⎛ b1 ⎞ ⎜ ⎟ ⎜ ⎟ r ⎜ b2 ⎟ ⎜ a21a 22 ...a 2 n ⎟ A=⎜ , правую часть системы в виде вектора b = ⎜ ⎟ , а ... ............ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜b ⎟ ⎜ a a ...a ⎟ ⎝ n⎠ ⎝ n1 n 2 nn ⎠ ⎛ x1 ⎞ ⎜ ⎟ r ⎜ x2 ⎟ неизвестные в виде вектора x = ⎜ ⎟ . Тогда систему можно записать в виде ... ⎜ ⎟ ⎜x ⎟ ⎝ n⎠ r r матрично-векторного уравнения Ax = b . Известно, что такая система имеет единственное решение тогда и только тогда, когда матрица системы невырожденная, т.е. det( A) ≠ 0 (дискриминант матрицы A не равен нулю). Для решения таких систем используются как прямые методы, в которых получают точные значения неизвестных после применения заранее известного числа операций, так и итерационные методы, в которых число шагов
24
(итераций) заранее неизвестно, и на каждом шаге получают некоторое приближенное решение системы до тех пор, пока не будет получено решение с нужной точностью. 3.1.1. Метод Гаусса Этот метод относится к прямым методам решения линейных систем. Он основан на приведении матрицы системы к треугольному виду путем последовательного исключения неизвестных из уравнений системы (прямой ход метода Гаусса) и последующем решении этой треугольной системы, начиная с последнего уравнения (обратный ход метода Гаусса). Сначала с помощью первого уравнения исключается
x1 из всех
последующих уравнений системы. Затем с помощью второго уравнения исключается x2 из третьего и всех последующих уравнений и т.д. При этом, если в уравнении с номером производится
перестановка
k
отсутствует неизвестная
этого
уравнения
с
любым
xk ( akk = 0 ), то нижестоящим
уравнением, содержащим эту переменную. Этот процесс называется прямым ходом Гаусса и продолжается до тех пор, пока в левой части последнего (n-го) уравнения не останется лишь один член с неизвестным xn . Если на каком-то этапе этого процесса оказывается, что очередной исключаемой переменной уже нет ни в одном из последующих уравнений, то матрица системы является вырожденной, и метод Гаусса в этом случае неприменим. Обратный ход метода Гаусса состоит в последовательном вычислении неизвестных. Решая последнее уравнение, находят единственное неизвестное xn . Далее, используя это значение, из предыдущего уравнения вычисляют xn−1 и т.д. Последним находят x1 из первого уравнения. Рассмотрим применение метода Гаусса для системы из трех уравнений:
25
⎧a11 x1 + a12 x2 + a13 x3 = b1 ⎪ ⎨a21 x1 + a22 x2 + a23 x3 = b2 ⎪a x + a x + a x = b 32 2 33 3 3 ⎩ 31 1
(1)
Для исключения x1 из второго уравнения прибавим к нему первое, умноженное на
− a21 / a11 . Затем, умножив первое уравнение на − a31 / a11 и
прибавив результат к третьему уравнению, также исключим из него
x1 .
Получим равносильную систему уравнений вида:
⎧a11 x1 + a12 x2 + a13 x3 = b1 ⎪ ' ' a22 x2 + a23 x3 = b2' ⎨ ⎪ ' ' a32 x2 + a33 x3 = b3' ⎩
aij' = aij − bi' = bi −
ai1 a1 j , a11
ai1 b1 , a11
(2)
i, j = 2,3 i = 2,3
Теперь из третьего уравнения системы (2) нужно исключить x2 . Для этого умножим второе уравнение на − a32' / a22' и прибавим результат к третьему. Получим: ⎧a11 x1 + a12 x2 + a13 x3 = b1 ⎪ ' ' a22 x2 + a23 x3 = b2' ⎨ ⎪ " a33 x3 = b3" ⎩
(3)
' ' a32 a32 ' " ' a = a − ' a23 , b3 = b3 − ' b2' a22 a22 " 33
' 33
Матрица системы (3) имеет треугольный вид. На этом завершается прямой ход метода Гаусса. Заметим, о чем уже говорилось выше, что в процессе исключения неизвестных приходится выполнять операции деления на
a11 , a22 и т.д.
26
Поэтому они должны быть отличны от нуля; в противном случае необходимо соответственным образом переставить уравнения системы. Обратный ход начинается с решения третьего уравнения системы (3): x3 = b3" a33"
Используя это значение, можно найти x2 из второго уравнения, а затем x1 из первого: x2 =
1 ' 1 ' ( b − a x ), x = (b1 − a12 x2 − a13 x3 ) 2 23 3 1 a22' a11
Аналогично строится вычислительный алгоритм для линейной системы с другим числом неизвестных. 3.1.2. Итерационные методы Для применения итерационных методов необходимо предварительно исходную систему уравнений привести к виду: ⎛ x1 ⎞ ⎛ d1 ⎞ ⎜ ⎟ ⎜ ⎟ n×n b r r r r ⎜ x2 ⎟ r ⎜ d 2 ⎟ x = Cx + d , где x = ⎜ ⎟ , d = ⎜ ⎟ , d i = i , C = (cij ) , ... ... aii ⎜ ⎟ ⎜ ⎟ ⎜x ⎟ ⎜d ⎟ ⎝ n⎠ ⎝ n⎠ ⎧− aij aii , cij = ⎨ ⎩ 0,
i ≠ j , aii ≠ 0 i= j
Этот вид получается, если из первого уравнения выразить x1, из второго x2 и т.д.: x1 =
1 (b1 − a12 x2 − ... − a1n xn ), a11
x2 =
1 (b2 − a21 x1 − a23 x3 − ... − a2 n xn ), a22
. . . . . . . . . . . . . . 1 xn = (bn − an1 x1 − ... − an ,n−1 xn−1 ). ann
27
r x ( 0 ) = ( x1( 0 ) , x2( 0 ) ,..., xn( 0 ) ) T – некий произвольно задаваемый вектор
Пусть
начального приближения к решению системы. Тогда для нахождения r последующих приближений x ( m ) , где m – номер итерации, а r x ( m ) = ( x1( m ) , x2( m ) ,..., xn( m ) ) T , можно применить один из следующих известных методов: метод простой итерации, метод Гаусса-Зейделя, метод верхней релаксации. 1) Метод простой итерации
r В этом методе коэффициенты вектора x ( m ) рассчитываются по формуле: n
xi( m ) = ∑ cij x (j m −1) + d i ,
i =1÷ n
j =1
2) Метод Гаусса-Зейделя
r В этом методе коэффициенты вектора x ( m ) рассчитываются по формуле: i −1
xi( m ) = ∑ cij x (j m ) + j =1
n
∑c
j =i +1
ij
x (j m −1) + d i ,
i =1÷ n
Для сходимости итерационного процесса достаточно, чтобы модули диагональных коэффициентов для каждого уравнения системы были не меньше сумм модулей всех остальных коэффициентов: n
∑a j =1 j ≠i
ij
≤ aii , i = 1,2,..., n
При этом хотя бы для одного уравнения неравенство должно выполняться строго. Эти условия являются достаточными, но не необходимыми, т.е. для некоторых систем итерационный процесс сходится и при нарушении этих условий. Процесс итерационных вычислений прекращают, когда разница между двумя последовательными приближенными решениями становится достаточно
28
малой, т.е. z < ε , где z =
n
∑ (x i =1
( m +1) i
ε − заданная точность, а
z = max xi( m+1) − xi( m ) , либо 1≤ i ≤ n
− xi( m ) ) 2 .
3.1.3. Пример 1 Найдем решение следующей линейной системы методом Гаусса: ⎧2 x1 + 3 x2 + 4 x3 = 6 ⎪ ⎨2 x1 + 4 x2 + 8 x3 = 11 ⎪4 x − 1x + 1x = −2 2 3 ⎩ 1
(1) (2) (3)
Сначала с помощью первого уравнения исключим
x1
из второго и
третьего уравнений. Это можно сделать так, как было описано выше. Но мы для простоты понимания проделаем это в два этапа. Сначала сделаем коэффициенты перед переменной x1 во всех уравнениях равными единице, поделив каждое уравнение на коэффициент, стоящий перед этой переменной. Т.е. поделив первое на 2, второе на 2, а третье на 4. Поместив слева схему производимых действий, запишем полученную систему, эквивалентную исходной: (1) : 2 → ( 2) : 2 → (3) : 4 →
⎧1x1 + 1.5 x2 + 2 x3 = 3 ⎪ ⎨1x1 + 2 x2 + 4 x3 = 5.5 ⎪1x − 0.25 x + 0.25 x = −0.5 2 3 ⎩ 1
(1) (2) (3)
Теперь избавимся от переменной x1 во втором и третьем уравнениях, вычтя из них первое: (1)
→
(2) − (1) → (3) − (1) →
⎧1x1 + 1.5 x2 + 2 x3 = 3 ⎪ 0.5 x2 + 2 x3 = 2.5 ⎨ ⎪ − 1.75 x − 1.75 x = −3.5 2 3 ⎩
(1) (2) (3)
Теперь нам нужно с помощью второго уравнения избавиться от переменной x2 в третьем уравнении. Сделаем это тоже в два этапа. Сначала
29
поделим второе уравнение на
0.5, а третье уравнение на
-1.75. Получим
систему: → ⎧1x1 + 1.5 x2 + 2 x3 = 3 ⎪ → ⎨ (2) : 0.5 1x2 + 4 x3 = 5 (3) : (−1.75) → ⎪⎩ 1x2 + 1x3 = 2
(1)
(1) (2) (3)
Далее преобразуем третье уравнение, вычтя из него второе: (1)
→
( 2)
→
(3) − (2) →
⎧1x1 + 1.5 x2 + 2 x3 = 3 ⎪ 1x2 + 4 x3 = 5 ⎨ ⎪ − 3 x 3 = −3 ⎩
(1) (2) (3)
На данном этапе система приведена к треугольному виду. Найдем значения неизвестных, начиная с третьего уравнения. x3 = −3 /(−3) = 1 x 2 = 5 − 4 x3 = 1 x1 = 3 − 1.5 x2 − 2 x3 = −0.5 Сделаем проверку, подставив полученные значения неизвестных в левые части уравнений системы, чтобы убедиться в выполнении условий: 2 ⋅ (−0.5) + 3 ⋅ 1 + 4 ⋅ 1 = 6 2 ⋅ (−0.5) + 4 ⋅ 1 + 8 ⋅ 1 = 11 4 ⋅ (−0.5) − 1 ⋅ 1 + 1 ⋅ 1 = −2
3.1.4. Пример 2 Найдем
решение
той
же
системы
методом
простой
итерации,
предварительно преобразовав ее так, чтобы выполнялись достаточные условия сходимости. Имеем систему: ⎧2 x1 + 3 x2 + 4 x3 = 6 ⎪ ⎨2 x1 + 4 x2 + 8 x3 = 11 ⎪4 x − 1x + 1x = −2 2 3 ⎩ 1
(1) (2) (3)
30
Поставим в ней третье уравнение на первое место, второе уравнение – на третье место, а на втором месте запишем разность второго уравнения и удвоенного первого: →
(3)
(2) − 2 ⋅ (1) → →
(2)
⎧4 x1 − 1x2 + 1x3 = −2 ⎪ = −1 ⎨− 2 x1 − 2 x2 ⎪2 x + 4 x + 8 x = 11 2 3 ⎩ 1
(1) (2) (3)
Для такой системы достаточные условия сходимости уже выполняются. Выразим неизвестные из уравнений, как это предлагается в методе:
1 x1 = (−2 + 1x2 − 1x3 ) 4 1 (−1 + 2 x1 ) x2 = −2 1 x3 = (11 − 2 x1 − 4 x2 ) 8
r Пусть первым приближением решения будет вектор x ( 0 ) = (1,1,1) T . Тогда следующее приближение рассчитаем по полученным формулам: 1 x1(1) = (−2 + 1 ⋅ 1 − 1 ⋅ 1) = −0.5 4
1 (−1 + 2 ⋅ 1) = −0.5 −2 1 = (11 − 2 ⋅ 1 − 4 ⋅ 1) = 0.625 8
x2(1) = x3(1)
Таким образом, имеем следующее приближение решения: r x (1) = (−0.5, − 0.5, 0.625) T . Следующее приближение: 1 x1( 2 ) = (−2 + 1 ⋅ (−0.5) − 1 ⋅ (0.625)) = −0.78125 4 1 (−1 + 2 ⋅ (−0.5)) = 1 −2 1 x3( 2 ) = (11 − 2 ⋅ (−0.5) − 4 ⋅ (−0.5)) = 1.75 8 r Таким образом, x ( 2 ) = (−0.78125, 1, 1.75) T . Далее x2( 2 ) =
31
1 x1( 3) = (−2 + 1 ⋅ 1 − 1 ⋅ 1.75) = −0.6875 4 1 (−1 + 2 ⋅ (−0.78125)) = 1.28125 −2 1 x3( 3) = (11 − 2 ⋅ (−0.78125) − 4 ⋅ 1) = 0.9453125 8 r Таким образом, x ( 3) = (−0.6875, 1.28125, 0.9453125) T . x2( 3) =
Посчитаем решениями,
разницу
взяв
в
между
двумя
качестве
z :
последними
приближенными
z = max xi( m+1) − xi( m ) . 1≤ i ≤ n
z = max( − 0.6875 + 0.78125 , 1.28125 − 1 , 0.9453125 − 1.75 ) ⇒
Тогда
z = 0.09375 . В
этом случае, если точность, например, ε = 0.1 , то процесс вычислений останавливается. Если же требуется более точное приближение, то вычисления продолжают. 3.2. Лабораторная работа №4 Решение системы линейных уравнений Решить систему линейных уравнений Ax = b а) методом Гаусса, б) методом простой итерации. Данные по вариантам: ⎛ 1.7 2.8 1.9 ⎞ ⎛ 0.7 ⎞ ⎜ ⎟ ⎜ ⎟ 1. A = ⎜ 2.1 3.4 1.8 ⎟, b = ⎜1.1 ⎟ ⎜ 4.2 - 1.7 1.3 ⎟ ⎜ 2.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 9.1 5.6 7.8 ⎞ ⎛ 9.8 ⎞ ⎜ ⎟ ⎜ ⎟ 2. A = ⎜ 3.8 5.1 2.8 ⎟, b = ⎜ 6.7 ⎟ ⎜ 4.1 5.7 1.2 ⎟ ⎜ 5.8 ⎟ ⎝ ⎠ ⎝ ⎠
32
⎛ 7.6 5.8 4.7 ⎞ ⎛10.1⎞ ⎜ ⎟ ⎜ ⎟ 3. A = ⎜ 3.8 4.1 2.7 ⎟, b = ⎜ 9.7 ⎟ ⎜ 2.9 2.1 3.8 ⎟ ⎜ 7.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 5.4 - 2.3 3.4 ⎞ ⎛ - 3.5 ⎞ ⎜ ⎟ ⎜ ⎟ 4. A = ⎜ 4.2 1.7 - 2.3 ⎟, b = ⎜ 2.7 ⎟ ⎜ 3.4 2.4 7.4 ⎟ ⎜ 1.9 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 5.6 2.7 - 1.7 ⎞ ⎛ 1.9 ⎞ ⎛ 4.5 - 3.5 7.4 ⎞ ⎛ 2.5 ⎞ ⎜ ⎟ ⎜ ⎜ ⎟ ⎜ ⎟ ⎟ 5. A = ⎜ 3.4 - 3.6 - 6.7 ⎟, b = ⎜ - 2.4 ⎟ 6. A = ⎜ 3.1 - 0.6 - 2.3 ⎟, b = ⎜ - 1.5 ⎟ ⎜ 0.8 1.3 3.7 ⎟ ⎜ 1.2 ⎟ ⎜ 0.8 7.4 - 0.5 ⎟ ⎜ 6.4 ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎛ 5.4 - 6.2 - 0.5 ⎞ ⎛ 0.52 ⎞ ⎜ ⎟ ⎜ ⎟ 7. A = ⎜ 3.4 2.3 0.8 ⎟, b = ⎜ - 0.8 ⎟ ⎜ 2.4 - 1.1 3.8 ⎟ ⎜ 1.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 3.2 - 2.5 3.7 ⎞ ⎛ 6.5 ⎞ ⎜ ⎟ ⎜ ⎟ 8. A = ⎜ 0.5 0.34 1.7 ⎟, b = ⎜ - 0.24 ⎟ ⎜1.6 2.3 - 1.5 ⎟ ⎜ 4.3 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 3.6 1.8 - 4.7 ⎞ ⎛ 3.8 ⎞ ⎜ ⎟ ⎜ ⎟ 9. A = ⎜ 2.7 - 3.6 1.9 ⎟, b = ⎜ 0.4 ⎟ ⎜ 1.5 4.5 3.3 ⎟ ⎜ - 1.6 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 2.7 0.9 - 1.5 ⎞ ⎛ 3.5 ⎞ ⎜ ⎟ ⎜ ⎟ 10. A = ⎜ 4.5 - 2.8 6.7 ⎟, b = ⎜ 2.6 ⎟ ⎜ 5.1 3.7 - 1.4 ⎟ ⎜ - 0.14 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 3.8 4.1 - 2.3 ⎞ ⎛ 4.8 ⎞ ⎜ ⎟ ⎜ ⎟ 11. A = ⎜ - 2.1 3.9 - 5.8 ⎟, b = ⎜ 3.3 ⎟ ⎜ 1.8 1.1 - 2.1 ⎟ ⎜ 5.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 2.8 3.8 - 3.2 ⎞ ⎛ 4.5 ⎞ ⎜ ⎟ ⎜ ⎟ 12. A = ⎜ 2.5 - 2.8 3.3 ⎟, b = ⎜ 7.1 ⎟ ⎜ 6.5 - 7.1 4.8 ⎟ ⎜ 6.3 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 7.1 6.8 6.1 ⎞ ⎛ 7.0 ⎞ ⎜ ⎟ ⎜ ⎟ 13. A = ⎜ 5.0 4.8 5.3 ⎟, b = ⎜ 6.1 ⎟ ⎜ 8.2 7.8 7.1 ⎟ ⎜ 5.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 4.1 5.2 - 5.8 ⎞ ⎛ 7.0 ⎞ ⎜ ⎟ ⎜ ⎟ 14. A = ⎜ 3.8 - 3.1 4.0 ⎟, b = ⎜ 5.3 ⎟ ⎜ 7.8 5.3 - 6.3 ⎟ ⎜ 5.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 6.3 5.2 - 0.6 ⎜ 15. A = ⎜ 3.4 - 2.3 3.4 ⎜ 0.8 1.4 3.5 ⎝
⎛ 0.9 2.7 - 3.8 ⎞ ⎛ 2.4 ⎞ ⎜ ⎟ ⎜ ⎟ 16. A = ⎜ 2.5 5.8 - 0.5 ⎟, b = ⎜ 3.5 ⎟ ⎜ 4.5 - 2.1 3.2 ⎟ ⎜ - 1.2 ⎟ ⎝ ⎠ ⎝ ⎠
⎞ ⎛ 1.5 ⎞ ⎟ ⎜ ⎟ ⎟, b = ⎜ 2.7 ⎟ ⎟ ⎜ - 2.3 ⎟ ⎠ ⎝ ⎠
33
⎛ 5.4 - 2.4 3.8 ⎞ ⎛ 5.5 ⎞ ⎜ ⎟ ⎜ ⎟ 17. A = ⎜ 2.5 6.8 - 1.1 ⎟, b = ⎜ 4.3 ⎟ ⎜ 2.7 - 0.6 1.5 ⎟ ⎜ - 3.5 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 3.2 - 11.5 3.8 ⎜ 18. A = ⎜ 0.8 1.3 - 6.4 ⎜ 2.4 7.2 - 1.2 ⎝
⎞ ⎛ 2.8 ⎞ ⎟ ⎜ ⎟ , b = 6.5 ⎟ ⎜ ⎟ ⎟ ⎜ 4.5 ⎟ ⎠ ⎝ ⎠
⎛ 9.1 5.6 7.8 ⎞ ⎛ 9.8 ⎞ ⎜ ⎟ ⎜ ⎟ 19. A = ⎜ 3.8 5.1 2.8 ⎟, b = ⎜ 6.7 ⎟ ⎜ 4.1 5.7 1.2 ⎟ ⎜ 5.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 7.6 5.8 4.7 ⎞ ⎛10.1⎞ ⎜ ⎟ ⎜ ⎟ 20. A = ⎜ 3.8 4.1 2.7 ⎟, b = ⎜ 9.7 ⎟ ⎜ 2.9 2.1 3.8 ⎟ ⎜ 7.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 4.5 - 3.5 7.4 ⎞ ⎛ 2.5 ⎞ ⎜ ⎟ ⎜ ⎟ 21. A = ⎜ 3.1 - 0.6 - 2.3 ⎟, b = ⎜ - 1.5 ⎟ ⎜ 0.8 7.4 - 0.5 ⎟ ⎜ 6.4 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 5.4 - 6.2 - 0.5 ⎞ ⎛ 0.52 ⎞ ⎜ ⎟ ⎜ ⎟ 22. A = ⎜ 3.4 2.3 0.8 ⎟, b = ⎜ - 0.8 ⎟ ⎜ 2.4 - 1.1 3.8 ⎟ ⎜ 1.8 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 2.8 3.8 - 3.2 ⎞ ⎛ 4.5 ⎞ ⎜ ⎟ ⎜ ⎟ 23. A = ⎜ 2.5 - 2.8 3.3 ⎟, b = ⎜ 7.1 ⎟ ⎜ 6.5 - 7.1 4.8 ⎟ ⎜ 6.3 ⎟ ⎝ ⎠ ⎝ ⎠
⎛ 3.6 1.8 - 4.7 ⎞ ⎛ 3.8 ⎞ ⎜ ⎟ ⎜ ⎟ 24. A = ⎜ 2.7 - 3.6 1.9 ⎟, b = ⎜ 0.4 ⎟ ⎜ 1.5 4.5 3.3 ⎟ ⎜ - 1.6 ⎟ ⎝ ⎠ ⎝ ⎠
34
4. Решение систем нелинейных уравнений 4.1. Основные понятия В общем случае систему нелинейных уравнений можно представить в виде: ⎧ F1 ( x1 , x2 ,..., xn ) = 0 ⎪ F ( x , x ,..., x ) = 0 ⎪ 2 1 2 n ⎨ ⎪........................... ⎪⎩ Fn ( x1 , x2 ,..., xn ) = 0
(1)
В отличие от систем линейных уравнений не существует прямых методов решения нелинейных систем общего вида. Лишь в отдельных случаях систему (1) можно решить непосредственно. Для решения систем нелинейных уравнений обычно используются
итерационные методы. К
таким методам относятся метод простой итерации и метод Ньютона. 4.1.1. Метод простой итерации Система уравнений (1) приводится предварительно к следующему виду: ⎧ x1 = f1 ( x1 , x2 ,..., xn ) ⎪ x = f ( x , x ,..., x ) ⎪ 2 n 2 1 2 ⎨ ⎪............................ ⎪⎩ xn = f n ( x1 , x2 ,..., xn )
(2)
В качестве начального приближения выбирается произвольный вектор X ( 0 ) = ( x1( 0 ) , x2( 0 ) ,..., xn( 0 ) ) . Для нахождения последующих приближенных решений используют формулы:
35
а). Метод Якоби: x1( m+1) = f1 ( x1( m ) , x2( m ) ,..., xn( m ) ) x2( m+1) = f 2 ( x1( m ) , x2( m ) ,..., xn( m ) ) .............................................
(3)
xn( m+1) = f n ( x1( m ) , x2( m ) ,..., xn( m ) ) где верхний индекс отмечает номер итерации. В данном случае для расчета координат последующего приближения координаты предыдущего подставляются в формулы (2). б). Метод Гаусса-Зейделя: x1( m+1) = f1 ( x1( m ) , x2( m ) ,..., xn( m ) ) x2( m+1) = f 2 ( x1( m+1) , x2( m ) ,..., xn( m ) ) ........................................... xk( m+1) = f k ( x1( m+1) , x2( m+1) ,..., xk( m−1+1) , xk( m ) ,..., xn( m ) )
(4)
............................................ xn( m+1) = f n ( x1( m+1) , x2( m+1) ,..., xn( m ) ) В этом методе для расчета каждой следующей координаты xk( m +1) используются уточненные значения предыдущих координат, уже полученных
на
данной
итерации:
x1( m +1) , x2( m+1) ,..., xk( m−1+1) ,
а
также
неуточненные оставшиеся координаты: xk( m ) , xk( m+1) ,..., xn( m ) , полученные из предыдущего приближения. в). Метод верхней релаксации: xi( m +1) = xi( m ) + w( xi( m+1) − xi( m ) ), i = 1,2,..., n, где xi( m+1) − уточненное значение переменной по Гауссу-Зейделю, w − параметр релаксации, 1 ≤ w ≤ 2 .
36
Достаточное условие сходимости методов простой итерации в области G для любого начального приближения X ( 0 ) ∈ G , имеет вид: n
max{max ∑ 1≤ i ≤ n
X
(0)
∈G k =1
∂f k ( X ) ∂xi
}<1 X =X
(0)
4.1.2. Метод Ньютона
Применяется для систем вида (1). Пусть X ( 0 ) = ( x1( 0 ) , x2( 0 ) ,..., xn( 0 ) ) - начальное приближение корня. Для нахождения последующих приближений используют формулу: X ( m+1) = X ( m ) − J −1 ( X ( m ) ) ⋅ F ( X ( m ) ),
где X ( m )
⎛ x1( m ) ⎞ ⎛ F1 ( X ( m ) ) ⎞ ⎜ ⎟ ⎜ ⎟ ( m) ⎜ x2( m ) ⎟ ⎜ ⎟ ( ) F X (m) 2 =⎜ ⎟, F ( X ) = ⎜ ⎟, .......... .. ..... ⎜ ⎟ ⎜ ⎟ ⎜ x (m) ⎟ ⎜ F ( X (m) ) ⎟ ⎝ n ⎠ ⎝ n ⎠
J −1 ( X ( m ) ) обратная матрица для матрицы Якоби J ( X ) в точке X = X ( m ) :
⎛ ∂F1 ( X ) ∂F1 ( X ) ∂F1 ( X ) ⎞ ... ⎜ ⎟ ∂ ∂ ∂ x x x n 1 2 ⎜ ⎟ ⎜ ∂F ( X ) ∂F ( X ) ∂F ( X ) ⎟ 2 ... 2 ⎜ 2 ⎟ ∂x2 ∂xn ⎟ J ( X ) = ⎜ ∂x1 ⎜ ....................................... ⎟ ⎜ ⎟ ∂ ∂ ∂ F X F X F X ( ) ( ) ( ) ⎜ n ⎟ n ... n ⎜ ∂x ∂x2 ∂xn ⎟⎠ ⎝ 1 Если det J ( X ) ≠ 0, то в достаточно малой окрестности корня X * итерационный процесс сходится. В качестве критерия окончания итераций используют условие X ( m +1) − X ( m ) < ε , например,
n
∑ (x i =1
( m +1) i
− xi( m ) ) 2 < ε .
Рассмотрим отдельно случай двух уравнений с двумя неизвестными и выведем формулы для вычисления.
37
⎧ F ( x, y ) = 0 ⎨ ⎩ G ( x, y ) = 0
X = ⎛⎜ x ⎞⎟ . ⎝ y⎠
Тогда
⎛ Fx′( x, y ) Fy′ ( x, y ) ⎞ ⎟ . Обратной матрицей к Якобиану J ( X ) J ( X ) = ⎜⎜ ⎟ ′ ′ ⎝ G x ( x, y ) G y ( x, y ) ⎠
будет
Пусть
J −1 ( X ) =
имеется
система:
и
⎛ G ′y ( x, y ) − Fy′ ( x, y ) ⎞ 1 ⎜ ⎟. det( J ( X )) ⎜⎝ − G x′ ( x, y ) Fx′( x, y ) ⎟⎠
Введем
Δ
( m)
обозначения
= det J ( x
(m)
,y
(m)
),
X
(m)
⎛ x (m) ⎞ = ⎜⎜ ( m ) ⎟⎟ . ⎝y ⎠
Тогда
рекурентную формулу для расчета приближенного решения можно записать в следующем матрично-векторном виде: X
( m +1)
=X
(m)
1 − (m) Δ
⎛ G ′y ( X ( m ) ) − Fy′ ( X ( m ) ) ⎞ ⎛ F ( X ( m ) ) ⎞ ⎟⋅⎜ ⎟. ⋅⎜ ⎜ − G ′ ( X ( m ) ) F ′( X ( m ) ) ⎟ ⎜ G ( X ( m ) ) ⎟ ⎠ x x ⎝ ⎠ ⎝
Или, после перемножения стоящих справа в этом уравнении матрицы и вектора, имеем: X
( m +1)
=X
(m)
1 − (m) Δ
⎛ G ′y ( X ( m ) ) ⋅ F ( X ( m ) ) − Fy′ ( X ( m ) ) ⋅ G ( X ( m ) ) ⎞ ⎟. ⋅⎜ ⎜ − G ′ ( X ( m ) ) ⋅ F ( X ( m ) ) + F ′( X ( m ) ) ⋅ G ( X ( m ) ) ⎟ x x ⎝ ⎠
Но
− G ′y ( X
( m)
) ⋅ F(X
(m)
) + Fy′ ( X
( m)
) ⋅ G( X
(m)
)=
Fy′ ( X ( m ) ) F ( X ( m ) ) G ′y ( X ( m ) ) G ( X ( m ) )
(Обозначим этот определитель символом Δ(1m ) ), G x′ ( X
(m)
) ⋅ F(X
( m)
) − Fx′( X
( m)
) ⋅ G( X
(m)
)=
F ( X ( m ) ) Fx′( X ( m ) ) G ( X ( m ) ) G x′ ( X ( m ) )
(Обозначим этот определитель символом Δ(2m ) ). Запишем тогда в наших обозначениях формулы покоординатно:
x
( m +1)
=x
(m)
Δ(1m ) + ( m) , Δ
y
( m +1)
=y
(m)
Δ(2m ) + (m) . Δ
38
4.1.3. Пример 1 Решим систему двух нелинейных уравнений методом простой итерации с применением формулы Якоби: ⎧sin( x + y ) − 1.5 x = 0 ⎨ 2 2 ⎩x + y = 1
для y > 0 .
⎧⎪ x = sin( x + y ) / 1.5 Для этого запишем ее в виде: ⎨ . ⎪⎩ y = 1 − x 2 (0) В качестве начального приближения возьмем вектор X ( 0 ) = ⎛⎜ x ( 0 ) ⎞⎟ = ⎛⎜ 0.1 ⎞⎟ . ⎝ y ⎠ ⎝ 0.2 ⎠
⎛ x (1) ⎞ ⎛ sin(0.1 + 0.2) / 1.5 ⎞ ⎛ 0.197013 ⎞ ⎟=⎜ ⎜ ⎟ ⎜ ⎟, ⎜ y (1) ⎟ = ⎜ 1 − 0.12 ⎟ ⎜⎝ 0.994987 ⎟⎠ ⎝ ⎠ ⎝ ⎠
Тогда
аналогично
⎛ x ( 2 ) ⎞ ⎛ sin(0.197013 + 0.994987) / 1.5 ⎞ ⎛ 0.619407 ⎞ ⎟=⎜ ⎜ ⎟ ⎜ ⎟и ⎜ y ( 2 ) ⎟ = ⎜ 1 − 0.1970132 ⎟ ⎜⎝ 0.980401 ⎟⎠ ⎝ ⎠ ⎝ ⎠ ⎛ x ( 3) ⎞ ⎛ sin(0.619407 + 0.980401) / 1.5 ⎞ ⎛ 0.666386 ⎞ ⎟=⎜ ⎜ ⎟ ⎜ ⎟. ⎜ y (3) ⎟ = ⎜ 1 − 0.619407 2 ⎟ ⎜⎝ 0.78507 ⎟⎠ ⎝ ⎠ ⎝ ⎠ Посчитаем норму разности двух последних приближений: X (3) − X ( 2 ) = (0.666386 − 0.619407) 2 + (0.78507 − 0.980401) 2 = = 0.200901 Если такая точность достаточна, то вычисления прекращают и за искомое решение
принимают
последнюю
найденную
точку,
т.е.
x = 0.666386, y = 0.78507 . В противном случае расчеты продолжают.
4.1.4. Пример 2 Решим ту же систему методом Ньютона, предварительно записав ее в ⎧ F ( x, y ) = 0 требуемом виде ⎨ . Получим: ⎩ G ( x, y ) = 0
39
⎧sin( x + y ) − 1.5 x = 0 , где ⎨ 2 2 1 0 x + y − = ⎩ F ( x, y ) = sin( x + y ) − 1.5 x , а G ( x, y ) = x 2 + y 2 − 1. Возьмем в качестве начального приближения
X
( 0)
⎛ x ( 0 ) ⎞ ⎛ 0.65 ⎞ ⎟⎟ = ⎜⎜ ( 0 ) ⎟⎟ = ⎜⎜ 0 . 78 ⎠ ⎝y ⎠ ⎝
вблизи искомого решения. Тогда Δ
( m)
Δ
( m) 1
Δ
( m) 2
=
=
=
cos( x ( m ) + y ( m ) ) − 1.5
cos( x ( m ) + y ( m ) )
2 x ( m)
2 y (m)
cos( x ( m ) + y ( m ) )
sin( x ( m ) + y ( m ) ) − 1.5 x ( m )
2 y ( m)
( x (m) ) 2 + ( y (m) ) 2 − 1
sin( x ( m ) + y ( m ) ) − 1.5 x ( m ) ( x ( m) ) 2 + ( y ( m) ) 2 − 1
Получаем
cos( x ( m ) + y ( m ) ) − 1.5 2 x (m)
.
Δ( 0 ) = −2.30351, Δ(10 ) = −0.01923, Δ(20 ) = 0.045427 .
x (1) = x ( 0 ) + Δ(10 ) / Δ( 0 ) = 0.65 + 0.01923 / 2.30351 = 0.658347 y (1) = y ( 0 ) + Δ(20 ) / Δ( 0 ) = 0.78 − 0.045427 / 2.30351 = 0.760279 .
Для следующего приближения: Δ(1) = −2.24993, Δ(11) = 0.000329, Δ(21) = 0.010784 .
Отсюда x ( 2 ) = x (1) + Δ(11) / Δ(1) = 0.658347 − 0.000329 / 2.24993 = 0.6582 y ( 2 ) = y (1) + Δ(21) / Δ(1) = 0.760279 − 0.010784 / 2.24993 = 0.755486 .
Для третьей итерации: Δ( 2 ) = −2.23601, Δ(12 ) = 4.49 ⋅ 10 −5 , Δ(22 ) = 0.003817
Отсюда x ( 3) = x ( 2 ) + Δ(12 ) / Δ( 2 ) = 0.6582 − 4.49 ⋅ 10 −5 / 2.23601 = 0.65818 y ( 3) = y ( 2 ) + Δ(22 ) / Δ( 2 ) = 0.755486 − 0.003817 / 2.23601 = 0.753779 .
Сравниваем два последних приближения: X ( 3) − X ( 2 ) = (0.65818 − 0.6582) 2 + (0.753779 − 0.755486) 2 = = 0.001707.
Отсюда
40
Как хорошо видно, метод Ньютона дает более быструю сходимость по сравнению с методом простой итерации. 4.2. Лабораторная работа № 5 Решение системы нелинейных уравнений методом простой итерации Решить систему методом простой итерации, предварительно отделив корни графически: 1.
2. ⎧sin( x + 1) − y = 1,2 ⎨ ⎩2 x + cos y = 2
⎧cos( x − 1) + y = 0,5 ⎨ ⎩ x − cos y = 3 5.
4. ⎧cos x + y = 1,5 ⎨ ⎩2 x − sin( y − 0,5) = 1
⎧cos( x + 0,5) − y = 2 ⎨ ⎩sin y − 2 x = 1 10. ⎧sin( x + 1) − 3 y = 0,2 ⎨ ⎩2 x + cos y = 2
13. ⎧cos x + 0,5 y = 0,5 ⎨ ⎩ x − sin( y − 0,5) = 1
⎧sin x + 2 y = 2 ⎨ ⎩cos( y − 1) + x = 0,7 6. ⎧sin( x − 1) = 1,3 − y ⎨ ⎩ y − sin( y + 1) = 0,8
⎧sin( x + 0,5) − y = 1 ⎨ ⎩cos( y − 2) + x = 0
8.
7.
3.
⎧sin( x + 2) − y = 1,5 ⎨ ⎩ x + cos( y − 2) = 0,5 11. ⎧cos( x − 0,5) + y = 1,5 ⎨ ⎩ x − cos y = 3
14. ⎧sin( x + 1,5) − y = 1 ⎨ ⎩cos( y − 2) + 2 x = 0
9. ⎧sin( y + 1) − x = 1,2 ⎨ ⎩2 y + cos x = 2 12. ⎧sin x + y = 2 ⎨ ⎩cos( y − 1) + 2 x = 0,7
15. ⎧sin( x − 1) + 1 = y ⎨ ⎩2 y − sin( y + 1) = 0,8
41
17.
16. ⎧sin( x + 1) − 2 y = 1,2 ⎨ ⎩ x + cos y = 0
19.
⎧cos( x − 1) + 5 y = 0 ⎨ ⎩0,5 x − cos 2 y = 1,3
20.
⎧cos 3 x + y = 1,5 ⎨ ⎩2 x − sin( 2 y − 0,5) = 2
⎧sin(2 x + 0,5) − y = 1 ⎨ ⎩cos( y − 2) + x = 2 23.
22. ⎧cos( x + 0,5) − 2 y = 1 ⎨ ⎩sin 2 y − x = 1
⎧sin( x + 2) − 0,5 y = 0,5 ⎨ ⎩ x + cos(2 y − 1) = 0,5
18. ⎧sin x + y = 2 ⎨ ⎩cos( y − 1) + 3 x = 0,5
21. ⎧sin( x − 2) = 1,3 − y ⎨ ⎩0,5 y − sin( y + 1) = 0,8 24. ⎧sin( y + 1) − 2 x = 0,2 ⎨ ⎩ y + cos x = 1
4.3. Лабораторная работа № 6 Решение системы нелинейных уравнений методом Ньютона
Решить систему методом Ньютона, предварительно отделив корни графически: 1.
2.
3.
⎧⎪tg ( xy + 0,4) = x 2 ⎨ ⎪⎩0,6 x 2 + 2 y 2 = 1, x, y > 0
⎧sin( x + y ) − 1,6 x = 0 ⎨ 2 2 ⎩ x + y = 1, x, y > 0
⎧⎪tg ( xy + 0,1) = x 2 ⎨ 2 ⎪⎩ x + 2 y 2 = 1
4.
5.
6.
⎧sin( x + y ) − 1,2 x = 0,2 ⎨ 2 2 ⎩x + y = 1
⎧⎪tg ( xy + 0,3) = x 2 ⎨ ⎪⎩0,9 x 2 + 2 y 2 = 1
⎧sin( x + y ) − 1,3 x = 0 ⎨ 2 2 ⎩0,8 x + 2 y = 1
42
7.
8.
9.
⎧sin( x + y ) − 1,5 x = 0,1 ⎨ 2 2 ⎩x + y = 1
⎧⎪tgxy = x 2 ⎨ ⎪⎩0,7 x 2 + 2 y 2 = 1
⎧sin( x + y ) + 1,2 x = 1 ⎨ 2 2 ⎩x + y = 1
10.
11.
12.
⎧⎪tg ( xy + 0,2) = x 2 ⎨ ⎪⎩0,6 x 2 + 2 y 2 = 1
⎧sin( x + y ) = 1,5 x − 1 ⎨ 2 2 ⎩x + y = 1
13.
14.
15.
⎧⎪tg ( xy + 0,1) = 2 x 2 ⎨ ⎪⎩0,6 x 2 + 2 y 2 = 1, x, y > 0
⎧sin( x + 2 y ) − 1,2 x = 0 ⎨ 2 2 ⎩ x + y = 1, x, y > 0
⎧⎪tg ( xy + 0,5) = x 2 ⎨ 2 ⎪⎩ x + y 2 = 1
16.
17.
18.
⎧sin( x + y ) − x = 1 ⎨ 2 2 ⎩x + y = 1
⎧⎪tg ( xy + 0,2) = x 2 ⎨ ⎪⎩0,9 x 2 + 2 y 2 = 1
⎧sin( x + y ) − 1,1x = 0 ⎨ 2 2 ⎩0,8 x + 2 y = 1
19.
20.
21.
⎧sin( x + y ) − 1,2 x = 0,1 ⎨ 2 2 ⎩x + y = 1
⎧⎪tgxy = x 2 ⎨ ⎪⎩0,5 x 2 + 3 y 2 = 1
⎧sin( x + y ) + 2 x = 1 ⎨ 2 2 ⎩2 x + y = 1
22.
23.
24.
⎧⎪tg ( xy + 0,4) = 3 x 2 ⎨ 2 ⎪⎩6 x + 0,2 y 2 = 1, x, y > 0
⎧sin(2 x + y ) − 1,6 x = 0 ⎨ 2 2 ⎩ x + 2 y = 1, x, y > 0
⎧⎪tg ( xy + 1) = x 2 ⎨ 2 ⎪⎩3 x + 2 y 2 = 1
⎧⎪tg ( xy + 0,3) = x 2 ⎨ ⎪⎩0,9 x 2 + 2 y 2 = 2
43
5. Интерполяция и аппроксимация функции 5.1. Основные определения Пусть величина y является функцией аргумента x, но вид аналитической зависимости y = f (x) неизвестен, а имеется табличное задание этой функции в точках x 0 , x1 ,..., x n , т.е. значения y 0 = f ( x 0 ), y1 = f ( x1 ),..., y n = f ( x n ) . Требуется построить функцию ϕ (x) , которая мало отличалась бы от f (x) , и по которой можно было бы примерно оценить значения y при x ≠ x i , i = 0 ÷ n . Для решения такой проблемы используют два подхода: 1). Построение функции ϕ ( x) = Pn ( x) , являющейся интерполяционным многочленом степени n и обладающей тем свойством, что значения ее в точках x 0 , x1 ,..., x n совпадают со значениями f(x) в этих же точках. 2). Построение функции
ϕ ( x) = Pk ( x) , аппроксимирующей данную k
функцию f(x) и являющейся многочленом степени k вида Pk ( x) = ∑ p j x j , j =0
коэффициенты которого p j определяются из условия минимизации суммы квадратов отклонений (метод наименьших квадратов) в точках x 0 , x1 ,..., x n значений многочлена Pk (x) от y 0 , y1 ,..., y n соответственно, т.е. путем решения n
задачи: min S = ∑ (Pk ( x i ) − y i ) 2 . i =0
Рассмотрим оба подхода подробнее. 5.1.1. Интерполяция функции Имеются различные формулы для построения интерполяционного многочлена: формулы Лагранжа, Ньютона, Гаусса. Мы рассмотрим только интерполяционный многочлен Лагранжа. Он имеет вид:
44
n
Pn ( x) = ∑ y j j =0
Можно
(x − xk ) . k =0,k ≠ j ( x j − x k )
для
n
∏
лучшего
n
Pn ( x) = ∑ y j p j ( x) , где j =0
понимания p j ( x) =
записать
его
в
следующем
виде:
(x − xk ) . k = 0, k ≠ j ( x j − x k ) n
∏
При этом легко заметить , что каждый многочлен p j (x) обладает тем свойством, что он обращается в ноль при всех табличных значениях аргумента x кроме x = x j . А при x = x j его значение равно единице. При этом полученный интерполяционный многочлен Pn ( x) обладает необходимым свойством: его значения в точках x 0 , x1 ,..., x n совпадают со значениями y 0 , y1 ,..., y n функции f(x) в этих же точках. Можно также заметить, что степень его на единицу меньше количества табличных значений функции. 5.1.2. Аппроксимация функции Для аппроксимации функции сначала необходимо выбрать степень аппроксимирующего многочлена, т.е. среди многочленов разной степени выбрать тот, который лучше отражает поведение заданной таблично функции. А затем с помощью метода наименьших квадратов определить параметры p j аппроксимирующего
многочлена,
минимизирующие
функционал
n
S = ∑ (Pk ( x i ) − y i ) 2 . i =0
Для их поиска дифференцируют функционал S частным образом по p j и приравнивают нулю эти частные производные ∂S ∂p j . Тем самым получают систему линейных уравнений, содержащую (k + 1) − но линейное уравнение, зависящее от (k + 1) − го неизвестного параметра p 0 , p1 ,..., p k . n
S = ∑ ( p 0 + p1 x i + p 2 x i2 + ... + p k x ik − y i ) 2 i =0
45
Продифференцируем S по параметрам: n ∂S = 2∑ ( p 0 + p1 x i + p 2 x i2 + ... + p k x ik − y i ) ∂p 0 i =0 n ∂S = 2∑ ( p 0 + p1 x i + p 2 x i2 + ... + p k x ik − y i ) x i ∂p1 i =0
………………………………………………… n ∂S = 2∑ ( p 0 + p1 x i + p 2 x i2 + ... + p k x ik − y i ) x ik ∂p k i =0
Теперь, приравнивая эти производные нулю и перенося свободные ∂S ∂S ∂S = 0, = 0,..., = 0 в правую часть их, получим: ∂p 0 ∂p1 ∂p k
константы в уравнениях n
n
n
n
i =0
i =0
i =0
i =0
(n + 1) p 0 + p1 ∑ x i + p 2 ∑ x i2 + ... + p k ∑ x ik =∑ y i n
n
n
n
n
i =0
i =0
i =0
i =0
i =0
p 0 ∑ x i + p1 ∑ x i2 + p 2 ∑ x i3 +... + p k ∑ x ik +1 =∑ y i x i .............................................................................. n
n
n
n
n
i =0
i =0
i =0
i =0
i =0
p 0 ∑ x ik + p1 ∑ x ik +1 + p 2 ∑ x ik + 2 +... + p k ∑ x i2 k =∑ y i x ik Решая эту систему линейных уравнений, находим значения параметров. 5.1.3. Пример 1 Построить интерполяционный многочлен Лагранжа для следующей заданной таблично функции y = f (x) :
x y
0.75
1.50
2.25
3.00
3.75
2.50
1.20
1.12
2.25
4.28
значений
функции
Если
имеется
пять
в
заданных
точках,
то
интерполяционный многочлен мы получим четвертой степени, имеющим вид:
46
4
P4 ( x) = ∑ y j p j ( x) , где p j (x) сами являются так же многочленами четвертой j =0
степени от x. Вот как они получаются: ( x − 1.50)( x − 2.25)( x − 3.00)( x − 3.75) (0.75 − 1.50)(0.75 − 2.25)(0.75 − 3.00)(0.75 − 3.75) ( x − 0.75)( x − 2.25)( x − 3.00)( x − 3.75) p1 ( x ) = (1.50 − 0.75)(1.50 − 2.25)(1.50 − 3.00)(1.50 − 3.75) ( x − 0.75)( x − 1.50)( x − 3.00)( x − 3.75) p 2 ( x) = (2.25 − 0.75)(2.25 − 1.50)(2.25 − 3.00)(2.25 − 3.75) ( x − 0.75)( x − 1.50)( x − 2.25)( x − 3.75) p 3 ( x) = (3.00 − 0.75)(3.00 − 1.50)(3.00 − 2.25)(3.00 − 3.75) ( x − 0.75)( x − 1.50)( x − 2.25)( x − 3.00) p 4 ( x) = (3.75 − 0.75)(3.75 − 1.50)(3.75 − 2.25)(3.75 − 3.00) p 0 ( x) =
Сам интерполяционный многочлен имеет вид:
P4 ( x) = 2.50 p 0 ( x) + 1.20 p1 ( x) + 1.12 p 2 ( x) + 2.25 p 3 ( x) + 4.28 p 4 ( x) 5.1.4. Пример 2 Найти с помощью метода наименьших квадратов аппроксимирующий многочлен для следующей таблично заданной функции y = f (x) , приняв предположение, что f (x) является линейной:
x y
0.75
1.50
2.25
3.00
3.75
2.50
1.20
1.12
2.25
4.28
Т.к. исходная функция предполагается линейной, то в качестве аппроксимирующего многочлена выберем многочлен первой степени вида:
P1 ( x) = p 0 + p1 x .
47
4
Тогда S = ∑ ( p 0 + p1 x i − y i ) 2 . Система линейных уравнений для поиска i =0
параметров p 0 и p1 будет иметь следующий вид: 4 4 ⎧ n p p x + + = ( 1 ) ∑ yi 0 1∑ i ⎪⎪ i =0 i =0 , ⎨ 4 4 4 2 ⎪ p 0 ∑ x i + p1 ∑ x i = ∑ x i y i ⎪⎩ i = 0 i =0 i =0
где значения коэффициентов при неизвестных параметрах равны: n +1= 5 4
∑ xi
=(0.75 + 1.50 + 2.25 + 3.00 + 3.75) = 11.25
i =0 4
∑ x i2
=(0.75 2 + 1.50 2 + 2.25 2 + 3.00 2 + 3.75 2 ) = 30.94
i =0 4
∑ yi
=(2.50 + 1.20 + 1.12 + 2.25 + 4.28) = 11.35
i =0 4
∑ xi y i
= (0.75 ⋅ 2.50 + 1.50 ⋅ 1.20 + 2.25 ⋅ 1.12 + 3.00 ⋅ 2.25 + ⋅3.75 ⋅ 4.28) = 29.00
i =0
⎧5 p 0 + 11.25 p1 = 11.35 Получаем систему ⎨ , решая которую методом ⎩11.25 p 0 + 30.94 p1 = 29.00 Гаусса получаем p 0 ≈ 0.89, p1 ≈ 0.62 . Следовательно, функция, аппроксимирующая заданную табличную f (x) , имеет вид:
y ≈ 0.89 + 0.62 x .
5.1.5. Пример 3 Найти с помощью метода наименьших квадратов аппроксимирующий многочлен для той же таблично заданной функции, что и в предыдущем примере, но, приняв предположение, что зависимость y = f (x) является квадратичной.
48
x
0.75
1.50
2.25
3.00
3.75
y
2.50
1.20
1.12
2.25
4.28
Т.к. исходная функция предполагается квадратичной, то в качестве аппроксимирующего многочлена выберем многочлен второй степени вида: P2 ( x) = p 0 + p1 x + p 2 x 2 . 4
Тогда S = ∑ ( p 0 + p1 x i + p 2 x i2 − y i ) 2 и система линейных уравнений для i =0
поиска параметров p 0 , p1 и p 2 будет иметь следующий вид: 4 4 4 ⎧ 2 n p p x p x yi ( 1 ) + + + = ∑ ∑ ∑ 0 1 2 i i ⎪ i =0 i =0 i =0 ⎪ 4 4 4 4 ⎪ 2 3 p x p x p x + + = ∑ xi y i , ⎨ 0∑ i 1∑ i 2∑ i 0 0 0 i = i = i = i =0 ⎪ 4 4 4 ⎪ 4 2 3 4 p x p x p x x i2 y i + + = ∑ ∑ ∑ ∑ i 1 i 2 i ⎪ 0 i =0 i =0 i =0 ⎩ i =0
где значения коэффициентов при неизвестных параметрах равны: n +1= 5 4
∑ x i = 11.25 i =0 4
∑ x i2
= 30.94
i =0
∑ xi4
= 309.76
i =0 4
∑ xi3 = 94.92 i =0
4
∑ y i = 11.35 i =0 4
4
∑ x i2 y i
4
∑ xi y i
= 29.00
i =0
= 90.21
i =0
Система уравнений запишется в виде: ⎧5 p 0 + 11.25 p1 + 30.94 p 2 = 11.35 ⎪ ⎨11.25 p 0 + 30.94 p1 + 94.92 p 2 = 29.00 ⎪30.94 p + 94.92 p + 309.76 p = 90.21 0 1 2 ⎩ Решение этой системы методом Гаусса даст следующие значения параметров: p 0 ≈ 5.54, p1 ≈ −4.73, p 2 ≈ 1.19 .
49
Следовательно,
аппроксимирующая
функция
имеет
вид
y ≈ 5.54 − 4.73 x + 1.19 x 2 .
5.2. Лабораторная работа № 7 Определение
коэффициентов
функциональной
зависимости
с
помощью метода наименьших квадратов
5.2.1. Задача №1 При пяти различных значениях температуры
( xi ) было измерено
напряжение сдвига ( y i ) . Найти коэффициенты функциональной зависимости напряжения сдвига от температуры при двух различных предположениях о характере этой зависимости: предполагая в первый раз, что эта зависимость имеет линейный характер, т.е. y = ax + b , и второй раз, что она имеет квадратичный характер y = ax 2 + bx + c . В таблице в каждой строке даны пять значений напряжения сдвига, отвечающих следующим значениям температуры:
xi = 60º , 80º , 100º , 120º , 140º (в градусах Цельсия).
№ вар.
Значение yi , Н м 2 x 1 = 60 º x2 = 80 º x3 = 100 º x4 = 120 º x5 = 140 º y1
y2
y3
y4
y5
1
14
16
20
26
44
2
15
17
20
26
45
3
16
18
21
28
46
4
16
17
20
26
44
50
5
13
17
20
26
45
6
15
18
21
28
46
7
14
17
20
26
44
8
15
18
20
26
45
9
16
19
21
28
46
10
14
16
21
26
44
11
15
17
22
26
45
12
16
18
23
28
46
13
14
16
20
25
44
14
15
17
20
26
45
15
16
18
21
27
46
16
14
16
20
26
43
17
15
17
20
26
44
18
16
18
21
28
45
19
14
16
20
24
44
20
15
17
21
26
45
21
16
17
21
28
46
22
13
16
20
26
44
23
15
16
22
27
45
24
16
18
21
28
47
5.2.2. Задача №2 Определить коэффициенты функциональной зависимости распределения температуры заглубленного трубопровода по поверхности грунта от глубины залегания трубопровода при стационарном тепловом режиме. Известно общее соотношение: где
2
Q − t H = le −ax ,
Q – температура на поверхности грунта в ºС, tH – температура окружающей среды в ºС,
51
x–
расстояние по линии, перпендикулярной оси трубопровода, от
точки на поверхности грунта до оси трубопровода. Необходимо определить коэффициенты l и a в данном соотношении по результатам произведенных замеров температуры поверхности грунта. Для решения этой задачи, прологарифмировав обе части соотношения, получим: Ln(Q − t H ) = Ln(l ) − ax 2
Обозначив
Z = Ln(Q − t H ), C = Ln(l ) , имеем уравнение Z = C − ax 2 , в
котором необходимо определить коэффициенты C и a. После нахождения коэффициента C можно будет вычислить l следующим образом: l = e C . Данные по вариантам: 1. xi , м
0
0.05
0.10
0.20
zi
3.02
2.56
1.84
0.336
xi , м
0
0.05
0.10
0.20
0.30
0.40
zi
2.08
1.91
1.59
0.69
-0.222
-1.2
xi , м
0
0.05
0.10
0.20
0.30
zi
1.39
1.25
0.96
0.33
-0.51 -1.2
xi , м
0
0.10
0.20
0.30
0.40
zi
0.833 0.742 0.53
0.095 -0.222
xi , м
0
0.05
0.10
0.20
0.30
zi
3.42
3.00
2.30
1.16
-0.104
2.
3. 0.40
4.
5.
0.50 -0.51
52
6.
xi , м
0
0.05
0.10
0.20
0.30
zi
2.52
2.35
2.00
1.163 0.095
xi , м
0
0.05
0.10
0.20
zi
1.705 1.504 1.253 0.0693
7. 0.30 -0.51
5.3. Лабораторная работа №8 Построение интерполяционного многочлена Лагранжа
5.3.1. Задача №1 Построить многочлен Лагранжа, интерполирующий профиль высот zi на участке нефтепровода. Данные по вариантам: 1. xi , км
180
180.1 180.2 180.3 180.4
zi , м
56.2
54.2
xi , км
180.6 180.7 180.8 180.9 181
zi , м
55.6
xi , км
181.1 181.2 181.3 181.4 181.5
zi , м
52.3
54.9
53.2
53.5
2.
54.2
57.1
56.0
54.3
3.
53.4
53.0
53.9
55.7
53
4.
xi , км
181.6 181.7 181.8 181.9 182
zi , м
57.0
xi , км
182.1 182.2 182.3 182.4 182.5
zi , м
53.6
xi , км
182.6 182.7 182.8 182.9 183
zi , м
62.2
xi , км
183.1 183.2 183.3 183.4 183.5
zi , м
63.6
xi , км
183.6 183.7 183.8 183.9 184
zi , м
61.2
xi , км
184.1 184.2 184.3 184.4 184.5
zi , м
64.4
xi , км
184.6 184.7 184.8 184.9 185
zi , м
65.7
xi , км
181.2 181.3 181.4 181.5 181.6
zi , м
52.3
56.8
57.0
55.1
54.5
5.
50.0
55.5
55.3
60.7
6.
64.4
65.0
64.0
65.2
7.
65.0
66.2
62.1
58.0
8.
64
61.5
63.5
62.1
9.
66.2
63.5
65.4
62.4
10.
67.2
66.5
63.0
63.2
11.
54.8
53.0
53.1
55.7
54
12.
xi , км
184.1 184.2 184.3 184.4 184.5
zi , м
55.3
xi , км
185.1 185.2 185.3 185.4 185.5
zi , м
62.4
xi , км
185.5 185.6 185.7 185.8 185.9
zi , м
61.2
xi , км
186.6 186.7 186.8 186.9 187
zi , м
62.2
64.4
xi , км
187
187.1 187.2 187.3 187.4
zi , м
56.2
54.2
xi , км
187.1 187.2 187.3 187.4 187.5
zi , м
52.3
xi , км
187.6 187.7 187.8 187.9 188
zi , м
63.6
xi , км
188.0 188.1 188.2 188.3 188.4
zi , м
61.2
53.4
53.0
53.4
55.5
13.
63.1
63.0
58.9
59.0
14.
64
61.5
63.5
62.1
15.
65.0
64.0
65.2
16.
54.9
53.2
53.5
17.
53.4
53.0
53.9
55.7
18.
65.0
66.2
62.1
58.0
19.
64
61.5
63.5
62.1
55
20.
xi , км
188.6 188.7 188.8 188.9 189
zi , м
64.4
xi , км
189.6 189.7 189.8 189.9 190
zi , м
55.6
xi , км
190.1 190.2 190.3 190.4 190.5
zi , м
63.6
xi , км
190.6 190.7 190.8 190.9 191
zi , м
57.0
xi , км
191.1 191.2 191.3 191.4 191.5
zi , м
64.4
66.2
63.5
65.4
62.4
21.
54.2
57.1
56.0
54.3
22.
65.0
66.2
62.1
58.0
23.
56.8
57.0
55.1
54.5
24.
66.2
63.5
65.4
62.4
5.3.2. Задача №2 Известно,
что
использование
кремнефтористоводородной
кислот
соляной
HCl
и
H 2 SiF6 , благодаря растворению терригенных
коллекторов, углубляет и развивает сеть каналов. Но одновременно и ограничивает
приток
пластовых
вод
к
скважине
за
счет
закупорки
фильтрационных каналов в водоносном пласте осадками кремнефторидов. Проблемы поиска оптимального режима обработки призабойной зоны с целью снижения пластовых потерь нефти приводят к необходимости исследования зависимости количества выпадающего осадка от свойств пластовой воды.
56
В таблице приведены результаты эксперимента по смешиванию 25 мл пластовой воды при температуре T = 20 o C с кремнефтористоводородной кислотой H 2 SiF6 с последующей фильтрацией полученого раствора. плотность пласт. воды, 1.05
1.12
1.13
1.14
1.15
1.16
1.17
14.2
14.4
15.4
19.7
20.6
22.6
г/см 3 содержание осадка, %
8.4
(весовое) Необходимо построить зависимость процентного содержания осадка, получающегося при смешивании пластовой воды с кислотой H 2 SiF6 , от плотности пластовой воды. Для построения зависимости воспользоваться многочленом Лагранжа. 5.3.3. Задача №3 Построить интерполяционный многочлен Лагранжа для зависимости растворимости кварцевого песка в смеси двух кислот (20 % - ной кислоты H 2 SiF6 и кислоты HCl ) от процентного содержания кислоты HCl в смеси. Данные измерений для отдельных смесей приведены в таблице. Они были получены при температуре T = 20 o C для
20 грамм песка и при объеме
кислотного раствора V = 15 мл . состав
20 % H 2 SiF6
20 % H 2 SiF6
20 % H 2 SiF6
20 % H 2 SiF6
раствора
+0 % HCl
+5 % HCl
+10 % HCl
+15 % HCl
12.04
31.85
растворимость песка, г/л
33.9
37.8
57
6. Численное интегрирование 6.1. Основные определения Методы численного интегрирования используются в тех случаях, когда b
необходимо найти значение определенного интеграла вида
∫ f ( x)∂x ,
но
a
аналитически посчитать его значение не представляется возможным из-за сложного
вида
подынтегральной
функции.
Известно,
что
значение
b
определенного интеграла равно
∫ f ( x)∂x = F (b) − F (a) ,
где F (a) и F(b) –
a
значения первообразной F (x) для подынтегральной функции f (x) в точках π 2
a и b
соответственно.
∫ cos( x)∂x = sin(π
Например,
2) − sin(0) = 1 .
Но
0
далеко не для всякой функции f (x) легко указать F (x) , как это сделано в примере. Тогда прибегают к численному интегрированию. Есть
еще,
правда,
способ
подсчета
значения
интеграла
путем
предварительного представления подынтегральной функции в виде степенного ряда Тейлора и последующего интегрирования многочлена, представляющего несколько первых членов этого ряда. Но этот способ мы здесь рассматривать не будем. А рассмотрим находящие наибольшее применение методы численного интегрирования. Вспомним
некоторые
понятия,
необходимые
для
дальнейшего
изложения. Пусть на отрезке [a, b] задана функция y = f (x) . С помощью точек
x 0 , x1 ,..., x n разобьем отрезок [a, b] на n отрезков [x i −1 , x i ] ( i = 1,2..., n ), причем x 0 = a, x n = b . На каждом из этих отрезков выберем произвольную точку
ξ i ( x i −1 ≤ ξ i ≤ x i ) и найдем произведение значения функции в этой точке f (ξ i ) на длину отрезка Δx i = x i − x i −1 :
58
s i = f (ξ i )Δx i . Составим сумму таких произведений: n
S n = s1 + s 2 + ... + s n = ∑ f (ξ i )Δx i i =1
Сумма S n называется интегральной суммой. Определенным интегралом от функции f (x) на отрезке [a, b] называется предел интегральной суммы при неограниченном увеличении числа точек разбиения и стремлении к нулю длины наибольшего отрезка разбиения: b
n
∑ f (ξ i )Δxi ∫ f ( x)∂x = maxlim Δxi → 0 i =1 a
Известно,
если
f (x)
непрерывна на
отрезке
[a, b],
то предел
интегральной суммы существует и не зависит от способа разбиения отрезка
[a, b] и выбора точек ξ i .
Рис. 1 Геометрический
смысл
введенных
понятий
для
случая
f (x) ≥ 0
проиллюстрирован на рисунке 1. Величины s i = f (ξ i )Δx i представляют из себя площади
прямоугольников,
отмеченных
пунктирной
линией,
а
сама
интегральная сумма – площадь ступенчатой фигуры, образуемой этими прямоугольниками. При стремлении же к нулю длин отрезков разбиения площадь этой ступенчатой фигуры стремится к площади фигуры, заключенной под кривой y = f (x) . Это и есть значение интеграла.
59
Используют следующие методы численного интегрирования. 6.1.1. Метод прямоугольников. В этом методе непосредственно заменяют значение определенного интеграла интегральной суммой, разбивая обычно отрезок интегрирования на n равных по длине отрезков. Тогда h =
b−a , являющуюся длиной отрезка n
разбиения, называют шагом разбиения. В качестве ξ i могут выбираться левые ( ξ i = x i − 1 ) или правые ( ξ i = xi ) границы отрезков разбиения или их середины ( ξ i = x i + h 2 ). Получают следующие формулы метода прямоугольников, отвечающие этим трем способам выбора точек ξ i : а) Формула левых прямоугольников b
∫ a
n −1
f ( x)∂x ≈ h∑ f ( x i ) i =0
б) Формула правых прямоугольников b
∫ a
n
f ( x)∂x ≈ h∑ f ( x i ) i =1
в) Формула средних прямоугольников b
∫ a
n −1 h f ( x)∂x ≈ h∑ f ( x i + ) 2 i =0
Главные члены погрешностей этих формул равны соответственно: (b − a ) 2 Rn = f ′(η ), 2n (b − a ) 2 Rn = − f ′(η ), 2n (b − a ) 3 Rn = f ′′(η ), 24n 2 где η ∈ [a, b]
60
6.1.2. Метод трапеций В этом методе применяют линейную интерполяцию интегрируемой функции, т.е. график функции y = f (x) представляют в виде ломаной, соединяющей точки ( x i , f ( x i )) . В этом случае площадь под кривой на каждом отрезке разбиения заменяется площадью под прямой, которая равна площади прямоугольной трапеции с высотой h и основаниями si =
f ( x i −1 ), f ( x i ) , т.е.
f ( x i −1 ) + f ( x i ) h . Получается формула трапеций 2 b
1
1
∫ f ( x)∂x ≈ h( 2 y0 + y1 + y2 + ... + yn−1 + 2 yn ) , a
где y i = f ( x i ), i = 0,1,..., n .
Рис. 2 Главный член погрешности этой формулы равен: (b − a ) 3 f ′′(η ), η ∈ [a, b] . Rn = − 12n 2
6.1.3. Метод Симпсона В этом методе отрезок интегрирования [a, b] разбивается на четное число n равных частей с шагом h . На каждом отрезке [x 0 , x 2 ], [x 2 , x 4 ],..., [x n − 2 , x n ]
61
подынтегральная функция заменяется интерполяционным многочленом второй степени: f ( x) ≈ ϕ i ( x) = a i x 2 + bi x + c i x i −1 ≤ x ≤ x i +1 В качестве ϕ i ( x) можно принять интерполяционный многочлен Лагранжа второй
степени,
график
которого
проходит
через
точки
каждом
отрезке
( x i −1 , y i −1 ), ( x i , y i ), ( x i +1 , y i +1 ) , где y i = f ( x i ), i = 0,1,..., n . В
этом
случае
площадь
под
кривой
на
[x 0 , x 2 ], [x 2 , x 4 ],..., [x n − 2 , x n ] заменяется площадью под параболой, а эту площадь легко посчитать, т.к. первообразная квадратичной функции известна: для ϕ i ( x) = a i x 2 + bi x + c i ее первообразной будет φ i ( x) = a i
x3 x2 + bi + ci x . 3 2
Рис. 3 Сумма же этих площадей дает нам приближенное значение интеграла. Формула метода Симпсона имеет вид: b
h
∫ f ( x)∂x ≈ 3 [ y 0
+ y n + 2( y 2 + y 4 + y 6 ... + y n − 2 ) + 4( y1 + y 3 + y 5 + ... + y n −1 )]
a
Главный член погрешности этой формулы равен: Rn = −
(b − a ) 5 f 180n 4
IV
(η ), η ∈ [a, b].
Надо упомянуть об одном практическом аспекте в вычислении интегралов. Обычно требуется вычислить интеграл I с заданной точность
62
ε > 0 , т.е. получить такое приближенное значение его S n , чтобы выполнялось I − Sn < ε . Удовлетворить этому требованию можно, либо выбрав число
n
разбиения отрезка интегрирования так, чтобы главный член погрешности по модулю был меньше ε , либо воспользовавшись следующим приемом. Посчитать значение интеграла для некоторого n = k . Затем сделать такие же расчеты для n = 2k . Затем сравнить полученные результаты. Если окажется, что S 2 k − S k < ε , то считать точность достигнутой и принять I ≈ S 2 k . Если же условие не выполняется, то вновь удвоить число разбиений отрезка и сравнить два последних приближения так, как это было предложено выше. Закончить процесс при выполнении указанного условия и последнее S n принять за искомое значение интеграла. Этим приемом часто пользуются на практике, если трудно бывает оценить главный член погрешности. 6.1.4. Пример 1 ∂x с 2 01+ x
1
Вычислим по методу левых прямоугольников интеграл I = ∫ точностью ε = 0.1 . Разобьем отрезок
[0,1]
на 10 частей. Следовательно n = 10, h = 0.1 .
Воспользуемся формулой: b
∫ a
n −1
f ( x)∂x ≈ h∑ f ( x i ) . i =0
1 1 1 + + ... + ) = 0.859981497 Тогда I ≈ S 10 = 0.1( 1 + 0.9 2 1 + 0 2 1 + 0.12 Теперь
проделаем
аналогичные
расчеты
для
n = 20 .
1 1 1 I ≈ S 20 = 0.05( + + ... + ) = 0.822793997 1 + 0 2 1 + 0.05 2 1 + 0.95 2
Получим
63
И сравним модуль разности полученных результатов с заданной точность: 0.859981497 − 0.822793997 < 0.1 . Принимаем за значение интеграла последнее полученное значение, т.е. I ≈ 0.822793997 . 6.1.5. Пример 2 ∂x с точностью ε = 0.1 . 2 1 + x 0
1
Вычислим по методу трапеций интеграл I = ∫ Разобьем отрезок
[0,1]
на 10 частей: n = 10, h = 0.1 . Воспользуемся
формулой: b
1
1
∫ f ( x)∂x ≈ h( 2 y0 + y1 + y2 + ... + yn−1 + 2 yn ) . a
Тогда 1 1 1 1 1 1 I ≈ S 10 = 0.1( ⋅ + + ... + + ⋅ ) = 0.784981 2 1 + 0 2 1 + 0.12 1 + 0.9 2 2 1 + 12 Теперь проделаем аналогичные расчеты для n = 20 . Получим 1 1 1 1 1 1 I ≈ S 20 = 0.05( ⋅ + + ... + + ⋅ ) = 0.785294 2 2 2 2 1 + 0 1 + 0.05 2 1 + 12 1 + 0.95
И сравним модуль разности полученных результатов с заданной точность: 0.784981 − 0.785294 < 0.1. Принимаем за значение интеграла последнее полученное значение, т.е. I ≈ 0.785294 . 6.1.6. Пример 3 ∂x 2 0 1+ x
1
Вычислить по методу Симпсона интеграл I = ∫
с точностью
ε = 0.1 . Разобьем отрезок [0,1] на 10 частей: n = 10, h = 0.1 . Воспользуемся формулой: b
h
∫ f ( x)∂x ≈ 3 [ y0 + y n + 2( y 2 + y 4 + y6 ... + y n−2 ) + 4( y1 + y3 + y5 + ... + y n−1 )] a
Тогда
64
0.1 1 1 1 1 1 [ + + 2( + + ... + )+ 2 2 2 2 3 1+ 0 1+1 1 + 0.2 1 + 0.4 1 + 0.8 2 1 1 1 + 4( + + ... + )] = 0.802065 2 2 1 + 0.1 1 + 0.3 1 + 0.9 2 I ≈ S10 =
Теперь проделаем аналогичные расчеты для n = 20 . Получим 0.05 1 1 1 1 1 [ + + 2( + + ... + )+ 2 2 2 2 3 1+ 0 1+1 1 + 0.1 1 + 0.2 1 + 0.9 2 1 1 1 + 4( + + ... + )] = 0.785398 1 + 0.05 2 1 + 0.15 2 1 + 0.95 2 I ≈ S 20 =
И сравним модуль разности полученных результатов с заданной точность: 0802065 − 0.785398 < 0.1 . Принимаем за
значение интеграла последнее
полученное значение, т.е. I ≈ 0.785398 . 6.2. Лабораторная работа №9 Вычисление интеграла методом Симпсона
6.2.1. Задача №1 Рассчитать время t опускания зеркала жидкости в осесимметричном резервуаре от первоначального уровня H 0 до заданного H 1 при вытекании жидкости из небольшого отверстия в центре дна резервуара. Это время можно вычислить по следующей формуле:
[ (
)] ∫ (R (z ) z )dz ,
t = π μσ 2 g ⋅
H0
H1
где H0 – первоначальный уровень; H1 – заданный уровень;
2
65
σ – площадь отверстия; R(z) – кривая, образующая стенку резервуара вращением вокруг оси OZ; (0 ≤ z ≤ z 0 ) XOYZ – система координат; О – в центре малого отверстия; z 0 – высота резервуара;
μ = 0,62 – коэффициент расхода. Данные по вариантам: №
R(z )
R0 , м
z0 , м
H0, м
H1 , м
σ , см 2
вар. 1
R0 sin(πz z 0 )
5
8
6
1
5
2
R0 exp( z 2 z 0 )
4
10
10
0,5
7
3
R0 ln(1 + z z 0 )
8
10
8
2
7,5
4
R0 cos(πz 2 z 0 )
5
12
10
0,5
7,5
5
R0 (1 + z z0 )1 5
10
16
16
0,5
7,5
6
R0 sin(πz z 0 )
5
8
7
0,5
5
7
R0 exp( z 2 z0 )
4
10
8
1
5
8
R0 ln(1 + z z 0 )
8
10
7
1
7
9
R0 cos(πz 2 z 0 )
5
12
8
2
7,5
10
R0 (1 + z z 0 )1 5
10
16
10
2
7
11
R0 sin(3 z z 0 )
5
8
6
1
5
12
R0 exp(π z 2 z 0 )
4
10
10
0,5
7
13
R0 ln(1 + z 2 z 0 )
8
10
8
2
7,5
14
R0 cos( z 2 z 0 )
5
12
10
0,5
7,5
15
R0 (1 + z z0 )1 3
10
16
16
0,5
7,5
66
R(z )
№
R0 , м
z0 , м
H0, м
H1 , м
σ , см 2
вар. 16
R0 cos(πz z 0 )
5
8
7
0,5
5
17
R0 exp( z πz0 )
4
10
8
1
5
18
R0 ln(1 + πz z0 )
8
10
7
1
7
19
R0 sin(πz 2 z 0 )
5
12
8
2
7,5
20
R0 (1 + 2 z z 0 )1 3
10
16
10
2
7
21
R0 ln(1 + z z 0 )
8
10
7
2
7
22
R0 cos(πz 2 z 0 )
5
12
5
1,5
8
23
R0 sin(πz z0 )
10
16
16
0,5
7,5
24
R0 exp( z 2 z 0 )
5
8
7
0,5
5
6.2.2. Задача №2 Маятник длины
l с размахом
α имеет период колебаний, равный
T = 4 K l g , где g – ускорение силы тяжести, а K задается формулой : π
K=
2
∫ 0
dϕ 1 − sin 2 (α 2) sin 2 ϕ
При малых углах α которого
π l g =1
.
K ≈π 2
и тогда
T ≈ 2π l g . Маятник, для
называется секундным, т.к. при малых углах
α
половина периода его колебаний равна 1 секунде. Половина периода колебаний секундного маятника при размахе α вычисляется по формуле
T = (2 π ) K . 2
Необходимо для секундного маятника при заданном значении размаха α вычислить величину множителя K и определить на сколько секунд в день врут часы с таким секундным маятником, спешат они или отстают. Задание выполнить по вариантам:
67
№
1
2
3
4
5
6
7
8
9
10
11
12
2
5
7
10
15
25
1
6
40
45
13
21
вар. α, °
6.3. Лабораторная работа № 10 Вычисление определенного интеграла методом трапеций
6.3.1. Задача №1 Рассчитать потери напора при неизотермической перекачке нефти по участку трубопровода, равные L
ΔH = (8Q 2 / π 2 gd 5 ) ∫ λdx 0
где d – внутренний диаметр, L – протяженность трубопровода, Q – расход нефти, T0,Tk − начальная и конечная температуры соответственно,
TH − температура окружающей среды,
ν 1 ,ν 2 − кинематическая вязкость при температуре T1 и T2 соответственно. Вычисления провести в следующем порядке:
1). æ =
ln(ν 1 /ν 2 ) T2 − T1 x
T − TH L 2). T ( x) = TH + (T0 − TH ) ⋅ ( K ) T0 − TH
68
3). Re =
4Q π ⋅ d ⋅ e −æ (T −T )ν 1 1
4). Функция λ (x) зависит от величины числа Рейнольдса: если Re < 2320 − ламинарное течение , то
λ = 64 / Re , если 2320 ≤ Re < 10 4 − переходный режим течения, то
λ = 64(1 − γ ) Re+ 0.3164γ / Re1 / 4 , где γ = 1 − e −0.002⋅(Re −2320 ) , если 10 4 ≤ Re < 10 5 − течение в зоне гидравлически гладких труб, то
λ = 0.3164 / Re1 / 4 (Формула Блазиуса). L
5). ΔH = (8Q / π gd ) ∫ λdx 2
2
5
0
В качестве исходных данных взять
ν 1 = 20 сСm при T1 = 30 o C и
ν 2 = 60 сСm при T2 = 10o C
(1 cCm = 10 -6 м 2 / с) -сантистокс
Задание выполнить по вариантам: №
d, мм
L, км
вар.
Q,
T0 , o С
Tk , o С
TH , o С
м 3 / час
1
514
125
800
45
25
10
2
700
140
1500
50
25
8
3
800
130
1900
50
30
12
4
700
150
1400
45
25
5
5
514
150
750
40
20
10
6
700
130
800
45
25
8
7
800
120
1500
50
30
12
8
514
160
1900
50
30
5
69
№
d, мм
L, км
вар.
Q,
T0 , o С
Tk , o С
TH , o С
м 3 / час
9
514
120
1400
50
25
10
10
700
125
750
40
25
8
11
800
140
800
40
25
12
12
514
130
1500
45
25
5
13
700
120
1900
55
35
10
14
700
160
750
45
25
8
15
800
125
1400
40
20
12
16
514
140
800
40
20
5
17
800
130
1500
45
25
10
18
700
120
1900
45
25
8
19
800
160
750
40
20
12
20
514
125
1400
50
30
5
21
700
140
800
45
25
10
22
514
130
1500
50
25
8
23
700
120
1900
50
30
12
24
800
125
1400
40
25
5
6.3.2. Задача №2 Два прямолинейных участка дороги часто сопрягают по кривой, которая строится следующим образом: для первой половины кривой ее кривизна пропорциональна ее длине, вторая же половина кривой строится симметрично первой. Т.е. если величина S – длина участка кривой, отсчитываемая от ее начала, а K – кривизна кривой в конце этого участка, то K = CS , где C = const . Такие кривые называются клотоидами или спиралями Карно. Можно показать, что в прямоугольных координатах кривая задается следующим образом:
70
S
a
x = a ∫ cos(
π t2
0
2
S
a
y = a ∫ sin(
)dt ,
π t2
0
2
)dt
Эти интегралы носят название интегралов Френеля. Положим C = π ( тогда a = 1) . Необходимо рассчитать координаты x, y точек сопрягающей кривой при различных S. Вычисления интегралов предлагается провести по формуле трапеций. Данные по вариантам: №
1
2
3
4
5
6
7
8
9
10
11
12
0.5
0.75
1
1.25
1.5
1.75
2
2.25
2.5
2.75
3
3.25
вар. S
71
7. Методы решения задачи Коши для обыкновенных дифференциальных уравнений 1-го порядка
7.1. Основные понятия Решение задачи Коши для уравнения вида y ′ = f ( x, y ) заключается в отыскании функции y (x) , удовлетворяющей этому уравнению и начальному условию y ( x 0 ) = y 0 . Есть задачи, для которых решение можно найти аналитически. Но таких задач немного. А для остальных используют приближенные методы решения. Эти методы не дают аналитического вида функции, а значит и нельзя получить значение искомой функции в любой точке. Но они позволяют оценить приближенно значения искомой функции на некотором отрезке [a, b] , где a = x0 , а правый конец отрезка задан, исходя из потребностей. Для получения решения приближенными методами указанный отрезок
[a, b]
разбивается на n равных частей точками
x0 , x1 , x2 ,..., xn , так что
x0 = a, xn = b . При этом говорят, что задается сетка. Шагом сетки h называется расстояние между соседними точками разбиения (узлами) xi +1 − xi = h . Оно равно h =
b−a . Значение функции y (x) в начальной точке сетки x0 известно: n
оно задается начальным условием y ( x 0 ) = y 0 . Значение функции в каждом следующем узле сетки рассчитывается по значению в предыдущем узле по формулам метода. Таким образом, приближенные методы позволяют найти решение уравнения в виде сеточной функции y (x) со значениями в узлах сетки x0 , x1 , x2 ,..., xn . Познакомимся с некоторыми из этих методов.
72
7.1.1. Метод Эйлера Этот простейший численный метод заключается в разложении искомой функции y (x) в ряд Тейлора в окрестностях узлов сетки x0 , x1 , x2 ,..., xn , в котором отбрасываются все члены, содержащие производные второго и более высоких порядков. Запишем это разложение в окрестности узла x i : y ( x i + h) = y ( x i ) + y ′( x i )h + O(h 2 ) Т.к. x i +1 = x i + h и y ′ = f ( x, y ) , то, отбрасывая O(h 2 ) , получаем: y ( xi +1 ) ≈ y ( xi ) + f ( xi , y ( xi ))h . Введя обозначение y i = y ( x i ) , окончательно получаем формулу метода Эйлера, позволяющую по значению искомой функции y i в точке x i найти значение ее y i +1 в следующем узле x i +1 :
y i +1 = y i + f ( x i , y i )h . Погрешность метода на каждом шаге вычислений имеет порядок h 2 . Это следует из того, что для получения формулы был отброшен член O(h 2 ) .
7.1.2. Модифицированный метод Эйлера Этот метод имеет лучший порядок точности, и формулу для него получают, оставляя в разложении функции y (x) в ряд Тейлора в окрестностях узлов слагаемые, содержащие вторую производную: y i +1
h2 = y i + h ⋅ y i′ + ⋅ y i′′ + O(h 3 ) . 2
(1)
Затем аппроксимируют вторую производную с помощью отношения конечных разностей: y i′′ =
y i′+1 − y i′ + O ( h) h
Подставляя выражение (2) вместо второй производной в (1), получают:
(2)
73
h 2 yi′+1 − yi′ ⋅( + O(h)) + O(h 3 ) . yi +1 = yi + h ⋅ yi′ + 2 h И после преобразования: y i +1 = y i +
h ⋅ ( y i′ + y i′+1 ) + O(h 3 ) 2
(3)
Заменяя производные выражениями y i′ = f ( x i , y i ) и y i′+1 = f ( x i +1 , y i*+1 ) , y *i +1 = y i + f ( x i , y i )h ,
где y i*+1 - найдено по формуле Эйлера, т.е. получают формулу модифицированного метода Эйлера: 1 yi +1 = yi + h ⋅ ( f ( xi , yi ) + f ( xi +1 , y *i +1 )) , где 2
y *i +1 = y i + f ( x i , y i )h
Погрешность метода на каждом шаге вычислений имеет порядок h 3 . Это следует из того, что для получения формулы был отброшен член O(h 3 ) .
7.1.3. Метод Рунге-Кутта Этот метод является самым популярным, т.к. дает хороший порядок точности. Формулу для этого метода получают, сохраняя в представлении функции y (x) в виде ряда Тейлора в узлах x0 , x1 , x2 ,..., xn большее число членов. Т.к. вывод ее достаточно громоздкий, то он здесь не приводится. Формулы метода Рунге-Кутта имеют следующий вид: y i +1 = y i +
1 (k 0 + 2k1 + 2k 2 + k 3 ) , где 6
k 0 = hf ( xi , yi ) k h k1 = hf ( xi + , yi + 0 ) 2 2 k h k 2 = hf ( xi + , yi + 1 ) 2 2 k 0 = hf ( xi + h, yi + k 2 ) i = 0,1,..., n − 1
74
Погрешность метода на каждом шаге вычислений имеет порядок h 5 . Отметим некоторые существенные моменты применения указанных методов для решения обыкновенных дифференциальных уравнений первого порядка y ′ = f ( x, y ) с начальным условием y ( x 0 ) = y 0 . Заметим, что погрешность вычислений с каждым следующим шагом может иметь тенденцию к накоплению. Отсюда сразу следует, что лучше применять для расчетов методы, дающие более точный результат на каждой итерации. Из рассмотренных выше методов лучшим является метод РунгеКутта, ошибка в котором пропорциональна шагу в пятой степени. А так как шаг выбирается обычно маленьким, то и ошибка мала. Если метод решения выбран, то следующая задача – это выбор шага h . И тут возникает следующая проблема. Допустим, нужно получить значения искомой функции на отрезке [a, b] , где x 0 = a, x n = b . С одной стороны, шаг нужно взять маленьким, чтобы ошибка каждого шага была небольшой. С другой стороны, при этом возрастет число шагов вычислений, что приводит в свою очередь к накоплению ошибки. Так что шаг в каждом случае следует выбирать некоторым оптимальным образом. 7.1.4. Пример 1 Решим предлагаемую ниже задачу Коши методом Эйлера с заданным шагом на отрезке [0, 1]: ⎧ y ′ = 2( x 2 + y ) ⎪ ⎨ y ( 0) = 1 ⎪0 ≤ x ≤ 1, h = 0.1 ⎩ Для данной задачи можно указать аналитическое выражение для функции решения. Легко проверить, что это будет функция y ( x) = 1.5e 2 x − x 2 − x − 0.5 .
75
Здесь специально выбрана такого рода задача, чтобы иметь возможность сравнить работу методов, зная точные значения функции решения в точках разбиения отрезка [0, 1]. Проведем расчеты по формуле Эйлера. По условию x 0 = 0, y 0 = 1, h = 0.1 . Формула Эйлера имеет вид: y i +1 = y i + f ( x i , y i )h Следовательно, y1 = y 0 + f ( x 0 , y 0 )h = 1 + 2(0 2 + 1) ⋅ 0.1 = 1.2 y 2 = y1 + f ( x1 , y1 )h = 1.2 + 2(0.12 + 1.2) ⋅ 0.1 = 1.442 y 3 = y 2 + f ( x 2 , y 2 )h = 1.442 + 2(0.2 2 + 1.442) ⋅ 0.1 = 1.7384 y 4 = y 3 + f ( x 3 , y 3 )h = 1.7384 + 2(0.3 2 + 1.7384) ⋅ 0.1 = 2.1041 y 5 = y 4 + f ( x 4 , y 4 )h = 2.1041 + 2(0.4 2 + 2.1041) ⋅ 0.1 = 2.5569 y 6 = y 5 + f ( x 5 , y 5 )h = 2.5569 + 2(0.5 2 + 2.5569) ⋅ 0.1 = 3.1183 y 7 = y 6 + f ( x 6 , y 6 )h = 3.1183 + 2(0.6 2 + 3.1183) ⋅ 0.1 = 3.8139 y 8 = y 7 + f ( x 7 , y 7 )h = 3.8139 + 2(0.7 2 + 1 = 3.8139) ⋅ 0.1 = 4.6747 y 9 = y 8 + f ( x 8 , y 8 )h = 4.6747 + 2(0.8 2 + 4.6747) ⋅ 0.1 = 5.7377 y10 = y 9 + f ( x 9 , y 9 )h = 5.7377 + 2(0.9 2 + 5.7377) ⋅ 0.1 = 7.0472 Выпишем полученные по методу Эйлера значения функции и значения точного решения в этих же точках в таблицу и проследим накопление ошибки:
xi
Метод Эйлера
Точное решение
Ошибка вычислений
x1
1.2000
1.2221
0.0221
x2
1.4420
1.4977
0.0557
x3
1.7384
1.8432
0.1048
x4
2.1041
2.2783
0.1742
x5
2.5569
2.8274
0.2705
76
xi
Метод Эйлера
Точное решение
Ошибка вычислений
x6
3.1183
3.5202
0.4019
x7
3.8139
4.3928
0.5789
x8
4.6747
5.4895
0.8148
x9
5.7377
6.8645
1.1268
x10
7.0472
8.5836
1.5364
7.1.5. Пример 2 Рассмотрим ту же задачу и решим ее теперь модифицированным методом Эйлера:
⎧ y ′ = 2( x 2 + y ) ⎪ ⎨ y ( 0) = 1 ⎪0 ≤ x ≤ 1, h = 0.1 ⎩ Формула метода имеет вид 1 yi +1 = yi + h ⋅ ( f ( xi , yi ) + f ( xi +1 , y *i +1 )) , где 2
y *i +1 = y i + f ( x i , y i )h
Проведем по ней расчеты
y1* = y0 + f ( x0 , y0 )h = 1 + 2(0 2 + 1) ⋅ 0.1 = 1.2 h y1 = y0 + [ f ( x0 , y0 ) + f ( x1 , y1* )] = 2 0.1 =1+ [2(0 2 + 1) + 2(0.12 + 1.2)] = 1.2210 2 * y 2 = y1 + f ( x1 , y1 )h = 1.2210 + 2(0.12 + 1.2210) ⋅ 0.1 = 1.4672 h y 2 = y1 + [ f ( x1 , y1 ) + f ( x2 , y *2 )] = 2 0.1 =1+ [2(0.12 + 1.2210) + 2(0.2 2 + 1.4672)] = 1.4948 2
77
........................................................................................ y10* = y9 + f ( x9 , y9 )h = 6.7938 + 2(0.9 2 + 6.7938) ⋅ 0.1 = 8.3145 h * y10 = y9 + [ f ( x9 , y9 ) + f ( x10 , y10 )] = 2 0.1 = 6.7938 + [2(0.9 2 + 6.7938) + 2(12 + 8.3145)] = 8.4856 2 Выпишем полученные по модифицированному методу Эйлера значения функции и значения точного решения в этих же точках в таблицу и проследим накопление ошибки: xi
Модифицированный
Точное решение
Ошибка вычислений
метод
Эйлера x1
1.2210
1.2221
0.0011
x2
1.4948
1.4977
0.0029
x3
1.8375
1.8432
0.0057
x4
2.2685
2.2783
0.0098
x5
2.8118
2.8274
0.0156
x6
3.4964
3.5202
0.0238
x7
4.3579
4.3928
0.0349
x8
5.4393
5.4895
0.0502
x9
6.7938
6.8645
0.0707
x10
8.4856
8.5836
0.0980
Сравнивая картину погрешностей в этом методе и в методе Эйлера, можно видеть, что погрешности модифицированного метода Эйлера на порядок меньше соответствующих погрешностей метода Эйлера.
78
7.1.6. Пример 3 Решить ту же задачу методом Рунге-Кутта: ⎧ y ′ = 2( x 2 + y ) ⎪ ⎨ y ( 0) = 1 ⎪0 ≤ x ≤ 1, h = 0.1 ⎩ Запишем формулы метода Рунге-Кутта: y i +1 = y i +
1 (k 0 + 2k1 + 2k 2 + k 3 ) , где 6
k 0 = hf ( xi , yi ) k h k1 = hf ( xi + , yi + 0 ) 2 2 k h k 2 = hf ( xi + , yi + 1 ) 2 2 k 0 = hf ( xi + h, yi + k 2 ) i = 0,1,..., n − 1 Проведем по ним расчеты. Для i = 1 имеем k 0 = hf ( x 0 , y 0 ) = 0.1 ⋅ 2 ⋅ (0 2 + 1) = 0.2 k h , y 0 + 0 ) = 0.1 ⋅ 2 ⋅ (0.05 2 + 1.1) = 0.2205 2 2 k h k 2 = hf ( x 0 + , y 0 + 1 ) = 0.1 ⋅ 2 ⋅ (0.05 2 + 1.11025) = 0.2226 2 2 k 3 = hf ( x 0 + h, y 0 + k 2 ) = 0.1 ⋅ 2 ⋅ (0.1 2 + 1.2226) = 0.2465 k1 = hf ( x 0 +
1 y1 = y0 + (k 0 + 2k1 + 2k 2 + k 3 ) = 6 1 = 1 + (0.2 + 2 ⋅ 0.2205 + 2 ⋅ 0.2226 + 0.2465) = 1.2221 6 Для i = 2 имеем k 0 = hf ( x1 , y1 ) = 0.1 ⋅ 2 ⋅ (0.12 + 1.2221) = 0.2464 k h k1 = hf ( x1 + , y1 + 0 ) = 0.1 ⋅ 2 ⋅ (0.15 2 + 1.3453) = 0.2736 2 2
79
k h k 2 = hf ( x1 + , y1 + 1 ) = 0.1 ⋅ 2 ⋅ (0.152 + 1.3589) = 0.2763 2 2 k3 = hf ( x0 + h, y0 + k 2 ) = 0.1 ⋅ 2 ⋅ (0.2 2 + 1.4984) = 0.3077 y 2 = y1 + =1+
1 ( k 0 + 2k 1 + 2k 2 + k 3 ) = 6
1 (0.2464 + 2 ⋅ 0.2736 + 2 ⋅ 0.2763 + 0.3077) = 1.4977 6
……………………………………………………………….. Для i = 10 имеем
k 0 = hf ( x9 , y9 ) = 0.1 ⋅ 2 ⋅ (0.9 2 + 6.8643) = 1.5349 k h k1 = hf ( x9 + , y9 + 0 ) = 0.1 ⋅ 2 ⋅ (0.95 2 + 7.63175) = 1.7069 2 2 k h k 2 = hf ( x9 + , y9 + 1 ) = 0.1 ⋅ 2 ⋅ (0.95 2 + 7.71775) = 1.7241 2 2 k 3 = hf ( x9 + h, y9 + k 2 ) = 0.1 ⋅ 2 ⋅ (12 + 8.5884) = 1.9177 1 y10 = y9 + (k 0 + 2k1 + 2k 2 + k3 ) = 6 1 = 1 + (1.5349 + 2 ⋅ 1.7069 + 2 ⋅ 1.7241 + 1.9177) = 8.5834 6 Выпишем полученные по методу Рунге-Кутта значения функции и значения точного решения в этих же точках в таблицу и проследим накопление ошибки: xi
Метод
Рунге- Точное решение
Кутта
Ошибка вычислений
x1
1.2221
1.2221
0.0000
x2
1.4977
1.4977
0.0000
x3
1.8432
1.8432
0.0000
x4
2.2783
2.2783
0.0000
x5
2.8274
2.8274
0.0000
80
xi
Метод
Рунге- Точное решение
Кутта
Ошибка вычислений
x6
3.5201
3.5202
0.0001
x7
4.3927
4.3928
0.0001
x8
5.4894
5.4895
0.0001
x9
6.8643
6.8645
0.0002
x10
8.5834
8.5836
0.0002
Сравнивая
картину
погрешностей
в
методе
Рунге-Кутта
и
в
рассмотренных ранее методе Эйлера и модифицированном методе Эйлера, можно видеть, что погрешности этого метода на несколько порядков меньше соответствующих погрешностей двух других методов. Именно поэтому метод Рунге-Кутта находит наибольшее применение. 7.2. Лабораторная работа №11 Решение задачи Коши для дифференциального уравнения первого порядка методом Эйлера
7.2.1. Задача №1 Определить давление в сечениях газопровода через каждые 10 км, если известно: dp dx
= f ( x, p ) = − A ⋅ z ( p, T ( x )) ⋅ T ( x ) / p
x0 = 0, p(0) = p0 , где z ( p, T ) = 1 − 0.4273 ⋅ ( p / pкр )(T / Tкр ) – коэффициент сверхсжимаемости, p – давление,
81
Т – температура, T ( x ) = TH + (T0 − TH ) ⋅ e
−απxd / MC p
– формула Шухова,
Pкр = 4.64 МПа – критическое давление
Tкр = 190.55o C – критическая температура, T0 – начальная температура, TH – температура окружающей среды, p0 – начальное давление,
A = 0.067 ⋅ (2k / d ) 0.2 (8 RM 2 / π 2 d 5 ), k – шероховатость поверхности, d – диаметр газопровода, M – массовый расход, Q – коммерческий расход,
M = Q ⋅ ρ метана = Q ⋅ 0.64 Cp =2500 Дж/кг·К –теплоемкость,
α − коэффициент теплопередачи, R=470 Дж/кмоль·К, L – длина участка газопровода, Данные по вариантам:
α,
k,
С
Bm / м 2 К
мм
8
60
1.5
0.03
5.5
10
55
2.0
0.05
3.5
5.5
6
55
1.7
0.05
1000
2.0
5.3
10
50
1.8
0.03
150
1200
3.2
5.8
5
62
1.2
0.04
110
800
1.0
5.2
10
50
1.5
0.05
TH,
T0,
o
С
o
5.7
2.5
1200
140
5 6
№
L,
d,
Q, млн.
P0,
вар.
км
мм
куб.м/сут.
МПа
1
100
800
1.5
2
120
1000
3
130
4
82
α,
k,
С
Bm / м 2 К
мм
9
55
1.2
0.04
5.3
8
60
2.0
0.05
1.7
5.5
7
50
1.7
0.05
1000
2.0
5.6
6
55
1.5
0.03
120
800
3.0
5.8
8
60
1.2
0.04
12
170
1000
1.5
5.7
10
55
1.5
0.04
13
130
1200
2.5
5.6
7
50
2.0
0.04
14
150
1000
3.5
5.5
10
50
1.7
0.05
15
160
800
1.8
5.4
9
60
1.5
0.03
16
150
1000
1.0
5.5
8
50
1.8
0.03
17
130
1200
3.0
5.3
6
60
1.7
0.04
18
140
1200
3.5
5.2
7
55
1.2
0.03
19
110
1000
2.5
5.3
5
63
1.8
0.04
20
140
800
2.5
5.3
5
56
1.7
0.05
21
110
800
1.5
5.6
10
55
1.5
0.04
22
150
1000
1.5
5.7
9
60
2.0
0.03
23
130
1200
3.2
5.8
8
50
2.0
0.03
24
120
1000
3.3
5.5
5
55
1.7
0.05
TH,
T0,
o
С
o
5.3
1.0
1100
150
11
№
L,
d,
Q, млн.
P0,
вар.
км
мм
куб.м/сут.
МПа
7
120
1200
3.0
8
160
1000
9
130
10
7.2.2. Задача №2 Степень радиоактивности пропорциональна количеству остающегося вещества. Можно написать дифференциальное уравнение, отображающее скорость изменения количества радиоактивного вещества: y ′ = −ky , где y – это количество вещества в момент времени t. Пусть k=0.01 и количество вещества, имеющегося на момент времени
t0=0 равно y0=100 г. Требуется найти
количество вещества, которое останется на момент времени t=100.
83
Эта задача проста с точки зрения математики, и для нее можно указать аналитическое решение. Оно имеет следующий вид: y = 100e − kt , так что при t=100 получаем y(100)=36.788 г Это точное решение поможет нам сравнить работу разных методов и проследить накопление ошибки при подсчете значения y(100). Решите задачу по данным своего варианта (указанным методом и с заданным шагом) и сравните значение y(100) с точным значением. Данные по вариантам: 1
№
2
3
4
5
6
7
8
вар. Ме-
Эйле-
Эйле-
Эйле-
Эйле-
Моди-
Моди-
Рунге-
Рунге-
тод
ра
ра
ра
ра
фици-
фици-
Кутта
Кутта
рован-
рован-
ный
ный
Эйле-
Эйле-
ра
ра 100
50
h
25
10
5
1
20
10
7.3. Лабораторная работа №12 Решение задачи Коши для дифференциального уравнения первого порядка методом Рунге-Кутта
7.3.1. Задача №1 Решить предлагаемую задачу Коши для дифференциального уравнения первого порядка методом Рунге-Кутта, где x ∈ [a, b], y (a) = y0 и шаг h = 0.1 . Полученное численное решение сравнить с точным решением y (x) , приведенным в вариантах задания.
84
Данные по вариантам: 1. y ′ + 2 xy = xe − x ,
y (0) = 1,
x ∈ [0, 1],
2
точное решение: y ( x) = e − x (0.5 x 2 + 1) 2
2. y ′ + y cos x = 0.5 sin 2 x,
x ∈ [0, 1],
y (0) = 0,
точное решение: y ( x) = sin x − 1 + e − sin x 3. y ′ + y cos x = e − sin x ,
x ∈ [0, 1],
y (0) = 1,
точное решение: y ( x) = ( x + 1)e − sin x 4. y ′ + y tgx = sin 2 x,
x ∈ [0, 1],
y (0) = −1,
точное решение: y ( x) = −2 cos 2 x + cos x 5. y ′ − y 2 − 3 y + 4 = 0,
x ∈ [0, 1],
y (0) = −1.5,
точное решение: y ( x) = (1 − 4e 5 x ) /(1 + e 5 x ) 6. xy ′ − y = x 2 sin x,
x ∈ [1, 2],
y (1) = 1 − cos 1,
точное решение: y ( x) = x(1 − cos x) 7. xy ′ − xy 2 − (2 x 2 + 1) y = x 3 ,
x ∈ [1, 2],
y (1) = −2
точное решение: y ( x) = −(3 x + x 3 ) /(1 + x 2 ) 8. xy ′ +
y 2 + x 2 = y,
x ∈ [1, 2],
y (1) = −0.5
точное решение: y ( x) = 0.5 − x 2 9. ( x 2 + 1) y ′ + xy = x( x 2 + 1),
x ∈ [0, 1],
y (0) = 4 / 3,
точное решение: y ( x) = ( x 2 + 1) / 3 + 1 / x 2 + 1 10. ( x 2 + 1) y ′ + 2 xy = 2 x 2 ,
x ∈ [0, 1],
точное решение: y ( x) = 11. ( x 2 − 1) y ′ = 2 xy ln y,
x ∈ [2, 3],
y (0) = 2 / 3, 2 x3 + 1 ⋅ 3 x2 + 1 y ( 2) = e 3 ,
точное решение: y ( x) = e x −1 2
85
12. ( x 2 − 4) y ′ + ( x + 2) y 2 = 4 y,
x ∈ [0, 1],
точное решение: y ( x) = 13. ( x − 2) 2 y ′ + y 2 = ( y + x − 2) 2 ,
y (0) = −1 /(1 + ln 2),
( x − 2) ( x + 2)(1 + ln x + 2 ) y (0) = 6,
x ∈ [0, 1],
точное решение: y ( x) = x 2 − 5 x + 6 14. x(2 x − 1) y ′ + y 2 − (4 x + 1) y + 4 x = 0,
x ∈ [1, 2],
y (1) = 1.5,
точное решение: y ( x) = (2 x 2 + 1) /( x + 1) 15. x( x 2 − 1) y ′ − (2 x 2 − 1) y + 2 x 3 = 0,
x ∈ [2, 3],
y ( 2) = 4 + 2 3 ,
точное решение: y ( x) = 2 x + x x 2 − 1 16. y ′ sin x cos x − y − sin 3 x = 0,
x ∈ [2, 3],
y (2) = − sin 2 + 2 tg 2,
точное решение: y ( x) = − sin x + 2tgx 17. xy ′ + x 2 + xy = y,
x ∈ [1, 2],
y (1) = 2e −1 − 1
точное решение: y ( x) = x(2e − x − 1) 18. (2 x + 1) y ′ = 4 x + 2 y,
x ∈ [0, 1],
y (0) = 3,
точное решение: y ( x) = (2 x + 1)(2 + ln 2 x + 1 ) + 1 19. y ′ = 2 x( x 2 + y ),
x ∈ [0, 1],
y ( 0) = 1
точное решение: y ( x) = 2e x − x 2 − 1 2
20. y ′ − e x − y + e x = 0 , x ∈ [0, 1],
y (0) = ln(1 + e −1 )
точное решение: y ( x) = ln(1 + e − e ) x
21. y ′ cos x + y sin x = 1,
x ∈ [0, 1],
y (0) = 2,
точное решение: y ( x) = 2 cos x + sin x 22. 3 x 2 − y = y ′ x 2 + 1 , x ∈ [0, 1],
y ( 0) = 2
точное решение: y ( x) = 2 x x 2 + 1 − x 2 − 2 23. y = x( y ′ − x cos x) , x ∈ [1, 2],
y (1) = 2 + sin 1
точное решение: y ( x) = x(2 + sin x)
86
24. y ′ − 2 x( y 2 + 1) = 0,
x ∈ [0, 1],
y (0) = 0,
точное решение: y ( x ) = tg ( x 2 ) 25. y ′ − 6 x 2 y 2 = 6 x 2 ,
x ∈ [1, 2],
y (1) = tg 2,
точное решение: y ( x) = tg (2 x 3 ) 26. xy ′ + x 6 y 2 + 2 y + x 2 = 0,
x ∈ [1, 2],
y (1) = tg 0.75
точное решение: y ( x ) = x −2 tg (1 − 0.25 x 4 ) 27. y ′ + 2 xy = xe − x , 2
x ∈ [1, 2],
y (1) = 1.5e −1 ,
точное решение: y ( x) = e − x (0.5 x 2 + 1) 2
28. y ′ + y cos x = 0.5 sin 2 x,
x ∈ [1, 2],
y (1) = sin 1 − 1 + e − sin 1 ,
точное решение: y ( x) = sin x − 1 + e − sin x 29. y ′ + y cos x = e − sin x ,
x ∈ [1, 2],
y (1) = 2e − sin 1 ,
точное решение: y ( x) = ( x + 1)e − sin x 30. y ′ + y tgx = sin 2 x,
x ∈ [1, 2],
y (1) = −2 cos 2 1 + cos 1,
точное решение: y ( x) = −2 cos 2 x + cos x 31. y ′ − y 2 − 3 y = −4,
x ∈ [0.2, 1.2],
y (0.2) = −(1 − 4e) /(1 + e),
точное решение: y ( x) = (1 − 4e 5 x ) /(1 + e 5 x ) 32. xy ′ = x 2 sin x + y,
x ∈ [1, 2],
y (1) = 1 − cos 1,
точное решение: y ( x) = x(1 − cos x)
7.3.2. Задача №2 Дифференциальное уравнение движения некоторого тела массой m под действием силы f = at (θ − t ) , испытывающего внешнее сопротивление среды, пропорциональное скорости v, имеет вид: dv at (θ − t ) = − 0.2v , где: dt m
87
масса тела m = 10 кг , а=5,
θ = 20 , t − момент времени от начала движения, v − скорость тела в данный момент времени. Определить скорость тела через время t после начала движения. Задание
выполнить по данным своего варианта, применив для решения метод РунгеКутта с указанным шагом h. № вар.
1
2
3
4
5
6
7
8
9
10
t, сек.
1.5
1.5
1.5
3.0
3.0
3.0
6.0
6.0
6.0
6.0
h, сек.
.075
.15
.30
.30
.15
.60
.30
.60
1.2
3.0
7.3.3. Задача №3 Решить задачу №1 из лабораторной работы №11 методом Рунге-Кутта.
88
СПИСОК ЛИТЕРАТУРЫ 1. Самарский А.А. Введение в численные методы. – М.: Наука, 1982 2. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. – М.: Мир, 1981 3. Березин И.С., Жидков Н.П. Методы вычислений. Т.1, 2. – М.: Наука, 1966 4. Арсеньев-Образцов С.С., Жукова Т.М., Кузьмин В.С. Сборник задач по алгоритмизации и программированию на ЭВМ, М.: МИНГ, 1987 5. Лурье М.В. Вычислительный практикум по трубопроводному транспорту нефти, нефтепродуктов и газа. – М.: Изд-во Нефть и газ, 1977 6. Проблемы снижения пластовых и поверхностных потерь нефти в пермском приуралье, сб. статей. – М.: ИГиРГИ, 1982 7. Зарубин В.С. Математическое моделирование в технике. – М.: Изд-во МГТУ им. Баумана, 2001
89
СОДЕРЖАНИЕ Стр. 1. Погрешности вычислений……………………………………………….
3
1.1. Основные определения и свойства……………………………………
3
1.2. Пример…………………………………………………………………..
5
1.3. Лабораторная работа №1. Оценка погрешностей результата вычислений…………………………………………………………………...
6
2. Методы решения нелинейных уравнений………………………………
8
2.1. Общие сведения………………………………………………………...
8
2.1.1. Метод хорд……………………………………………………………
8
2.1.2. Метод касательных Ньютона………………………………………..
10
2.1.3. Пример 1………………………………………………………………
11
2.1.4. Пример 2………………………………………………………………
12
2.2 Лабораторная работа №2. Решение нелинейного уравнения методом хорд……………………………………………………………….
14
2.2.1. Задача №1…………………………………………………………….
14
2.2.2. Задача №2…………………………………………………………….
15
2.2.3. Задача №3…………………………………………………………….
16
2.3. Лабораторная работа №3. Решение нелинейного уравнения методом Ньютона………………………………………………………….
18
2.3.1. Задача №1…………………………………………………………….
18
2.3.2. Задача №2…………………………………………………………….
19
2.3.3. Задача №3…………………………………………………………….
21
3. Методы решения системы линейных уравнений……………………...
23
3.1. Основные понятия……………………………………………………..
23
3.1.1. Метод Гаусса…………………………………………………………
24
3.1.2. Метод простой итерации……………………………………………
26
3.1.3. Пример 1……………………………………………………………..
28
3.1.4. Пример 2……………………………………………………………..
29
90
3.2. Лабораторная работа №4. Решение систем линейных уравнений…
31
4. Решение систем нелинейных уравнений………………………………
34
4.1. Основные понятия…………………………………………………….
34
4.1.1. Метод простой итерации…………………………………………...
34
4.1.2. Метод Ньютона……………………………………………………..
36
4.1.3. Пример 1……………………………………………………………..
38
4.1.4. Пример 2……………………………………………………………..
38
4.2. Лабораторная работа №5. Решение систем нелинейных уравнений методом простой итерации…………………………………………..
40
4.3. Лабораторная работа №6. Решение систем нелинейных уравнений методом Ньютона……………………………………………………..
41
5. Интерполяция и аппроксимация функции……………………………..
43
5.1. Основные определения………………………………………………..
43
5.1.1. Интерполяция функции……………………………………………..
43
5.1.2. Аппроксимация функции……………………………………………
44
5.1.3. Пример 1……………………………………………………………..
45
5.1.4. Пример 2……………………………………………………………..
46
5.1.5. Пример 3……………………………………………………………..
47
5.2. Лабораторная работа №7. Определения коэффициентов функциональной зависимости с помощью метода наименьших квадратов..
49
5.2.1. Задача №1…………………………………………………………….
49
5.2.2. Задача №2…………………………………………………………….
50
5.3. Лабораторная работа №8. Построение интерполяционного многочлена Лагранжа………………………………………………………..
52
5.3.1. Задача №1…………………………………………………………….
52
5.3.2. Задача №2…………………………………………………………….
55
5.3.3. Задача №3…………………………………………………………….
56
6. Численное интегрирование……………………………………………...
57
6.1. Основные определения………………………………………………...
57
91
6.1.1. Метод прямоугольников……………………………………………..
59
6.1.2. Метод трапеций………………………………………………………
60
6.1.3. Метод Симпсона……………………………………………………...
60
6.1.4. Пример 1……………………………………………………………..
62
6.1.5. Пример 2……………………………………………………………..
63
6.1.6. Пример 3……………………………………………………………..
63
6.2. Лабораторная работа №9. Вычисление определенного интеграла методом Симпсона……………………………………………………
64
6.2.1. Задача №1…………………………………………………………….
64
6.2.2. Задача №2…………………………………………………………….
66
6.3 Лабораторная работа №10. Вычисление определенного интеграла методом трапеций……………………………………………………..
67
6.3.1. Задача №1…………………………………………………………….
67
6.3.2. Задача №2…………………………………………………………….
69
7. Методы решения задачи Коши для обыкновенных дифференциальных уравнений 1-го порядка……………………………………………
71
7.1. Основные понятия……………………………………………………..
71
7.1.1. Метод Эйлера………………………………………………………...
72
7.1.2. Модифицированный метод Эйлера………………………………...
72
7.1.3. Метод Рунге-Кутта…………………………………………………..
73
7.1.4. Пример 1………………………………………………………………
74
7.1.5. Пример 2………………………………………………………………
76
7.1.6. Пример 3………………………………………………………………
78
7.2.
Лабораторная работа №11. Решение задачи Коши для обыкновенных дифференциальных уравнений 1-го порядка методом Эйлера..
80
7.2.1. Задача №1…………………………………………………………….
80
7.2.2. Задача №2…………………………………………………………….
82
7.3. Лабораторная работа №12. Решение задачи Коши для обыкновенных дифференциальных уравнений 1-го порядка методом Рунге-
92
Кутта………………………………………………………………..…..
83
7.3.1. Задача №1…………………………………………………………….
83
7.3.2. Задача №2…………………………………………………………….
86
7.3.3. Задача №3…………………………………………………………….
87
Список литературы…………………………………………………………
88
93
ЧЕН-СИН Эмилия Павловна ПАНЮШЕВА Людмила Николаевна МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО КУРСУ КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ Учебное пособие
Сводный тем. План 2004 Подписано в печать
Формат 60х90/16
Объем 3,8 уч.-изд. л.
Тираж 300 экз. Заказ №
Издательство “Нефть и газ” РГУ нефти и газа им. И.М. Губкина 117917, Москва, ГСП-1, Ленинский просп., 65