Смекни!
smekni.com

Решение дифференциального уравнения с последующей аппроксимацией (стр. 1 из 3)

МИНИСТЕРСТВО СВЯЗИ РФ

СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ

ХАБАРОВСКИЙ ФИЛИАЛ

К У Р С О В А Я Р А Б О Т А

ПО ИНФОРМАТИКЕ

на тему:

РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНОГО УРАВНЕНИЯ

С ПОСЛЕДУЮЩЕЙ АППРОКСИМАЦИЕЙ РЕЗУЛЬТАТОВ

Работу выполнила:

студентка I курса

специальности РРТ (ускор.)

Турчина

шифр: 011р-469

2001 г.

С О Д Е Р Ж А Н И Е

Индивидуальное задание - 3

1. Решение дифференциального уравнения методом Эйлера - Коши - 4

1.1. Теоретические сведения - 4

1.2. Ручной расчёт решаемой задачи - 6

2. Аппроксимация. Метод наименьших квадратов - 9

2.1. Теоретические сведения - 9

2.2. Ручной расчёт коэффициентов системы линейных уравнений - 10

3. Решение системы уравнений методом Гаусса - 11

4. Нахождение значений аппроксимирующей функции - 13

5. Расчёт погрешности аппроксимации - 14

6. Построение блок-схемы и разработка программы аппроксимации - 16

Литература - 21

ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

1. Решить дифференциальное уравнение y = x + cos ( y / Ö0.3 ) с начальными условиями x0 = 0.7 y0 = 2.1 на интервале [ 0.7 ; 1.7 ] с шагом h = 0.1.

2. Оценить погрешность вычислений при решении дифференциального уравнения методом Эйлера - Коши.

3. Аппроксимировать полученное в п.1. решение параболой методом наименьших квадратов.

4. Рассчитать погрешность аппроксимации.

5. Построить графики решения дифференциального уравнения, аппроксимирующей функции и погрешности аппроксимации.

6. Составить блок-схемы алгоритмов и программы для решения дифференциального уравнения, вычисления коэффициентов аппроксимирующей параболы, расчёта погрешности аппроксимации на языке QBASIC. На печать выдать :

- значения функции y( xi ), являющейся решением дифференциального уравнения в точках xi, найденные с шагом h и с шагом h/2 ;

- значения аппроксимирующей функции F( xi ) в точках xi ;

- значение погрешности аппроксимации

i = F( xi ) - yi.

- величину средне - квадратичного отклонения.

1. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНОГО УРАВНЕНИЯ

МЕТОДОМ ЭЙЛЕРА - КОШИ

1.1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

В соответствии с постановкой задачи нужно найти решение дифференциального уравнения первого порядка, т.е. найти такие решения y(x), которые превратили бы дифференциальное уравнение в тождество. Но так как таких решений множество, заданы начальные условия - значения функции y(x) в точке x0, т.е. y(x0) = y0, а так же интервал [ x0 - xn ].

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

Рис 1. Множество решений дифференциального уравнения.

Метод Эйлера - Коши - наиболее точный метод решения дифференциального уравнения (второй порядок точности). Этот метод предполагает следующий порядок вычислений:

yi+1* = yi + h f( xi ; yi ), где i = 0,1,2 ... n

yi+1 = yi + h (f( xi ; yi ) + f( xi+1 ; yi+1*)) / 2

Число значений n можно найти, разделив интервал на шаг:

n = (xn - xo) / h

Геометрически это означает, что определяется направление касательной к интегральной кривой в исходной точке хi,yi и во вспомогательной точке хi+1,yi+1*, а в качестве окончательного направления берется среднее этих направлений (показано пунктирной линией на рис. 2)

Рис.2. Графическая интерпретация метода Эйлера - Коши.

Решение yi+1, найденное методом Эйлера - Коши, намного ближе к точному решению, чем решение yi+1*, найденное методом Эйлера. Погрешность метода пропорциональна шагу h во второй степени, т.е. метод Эйлера - Коши имеет второй порядок точности.

1.2. РУЧНОЙ РАСЧЁТ РЕШАЕМОЙ ЗАДАЧИ

По условию задачи нужно решить дифференциальное уравнение y = x + cos ( y / Ö0.3 ) с начальными условиями x0 = 0.7, y0 = 2.1 на интервале [ 0.7 ; 1.7 ] с шагом h = 0.1 .

По формуле метода Эйлера -Коши

yi+1* = yi + h f( xi ; yi ),

yi+1 = yi + h (f( xi ; yi ) + f( xi+1 ; yi+1*)) / 2

Найдем y1* и y1

f( x0 ; y0 ) = 0.7 + cos (2.1 / Ö0.3 ) = - 0.069675

x1 = x0 + h = 0.7 + 0.1=0.8

y1* = y0 + h * f( x0 ; y0 ) = 2.1 + 0.1 * (- 0.069675) = 2.093032

y1 = y0 + h * (f( x0 ; y0 ) + f( x0 + h ; y1* )) / 2 = 2.1 + 0.1 * ((- 0.069675) + 0.022266)/2 =

= 2.09763

Аналогично найдём остальные значения x и y :

f( x1 ; y1 ) = 0.8 + cos (2.09763/ Ö0.3 ) = 0.02757

x2 = 0.8 + 0.1 = 0.9

y2* = 2.09763 + 0.1 * 0.02757 = 2.100387

y2 = 2.09763 + 0.1 * (0.02757 + 0.130776) / 2 = 2.105547

f( x2 ; y2 ) = 0.9 + cos (2.105547 / Ö0.3 ) = 0.136831

x3 = 0.9 + 0.1 = 1

y3* = 2.105547 + 0.1 * 0.136831 = 2.11923

y3 = 2.105547 + 0.1 * (0.136831 + 0.25321) / 2 = 2.125049

f( x3 ; y3 ) = 1 + cos (2.125049 / Ö0.3 ) = 0.260317

x4 = 1+ 0.1 = 1.1

y4* = 2.125049 + 0.1 * 0.260317 = 2.1510807

y4 = 2.125049 + 0.1 * (0.260317 + 0.393124) / 2 = 2.157721

f( x4 ; y4 ) = 1.1 + cos (2.157721 / Ö0.3 ) = 0.401751

x5 = 1.1 + 0.1 = 1.2

y5* = 2.157721+ 0.1 * 0.401751 = 2.1978961

y5 = 2.157721 + 0.1 * (0.401751 + 0.556089) / 2 = 2.205613

f( x5 ; y5 ) = 1.2 + cos (2.205613 / Ö1.3 ) = 0.566933

x6 = 1.2 + 0.1 = 1.3

y6* = 2.205613 + 0.1 * 0.566933 = 2.2623063

y6 = 2.205613 + 0.1 * (0.566933 + 0.750302) / 2 = 2.271475

f( x6 ; y6 ) = 1.3 + cos (2.271475 / Ö0.3 ) = 0.764362

x7 = 1.3 + 0.1 = 1.4

y7* = 2.271475 + 0.1 * 0.764362 = 2.347911

y7 = 2.271475 + 0.1 * (0.764362 + 0.987033) / 2 = 2.359045

f( x7 ; y7 ) = 1.4 + cos (2.359045/ Ö0.3 ) = 1.005629

x8 = 1.4 + 0.1 = 1.5

y8* = 2.359045 + 0.1 * 1.005629 = 2.4596079

y8 = 2.359045 + 0.1 * (1.005629 + 1.280033) / 2 = 2.473328

f( x8 ; y8 ) = 1.5 + cos (2.473328 / Ö0.3 ) = 1.304536

x9 = 1.5+ 0.1 = 1.6

y9* = 2.473328 + 0.1 * 1.304536 = 2.6037816

y9 = 2.473328 + 0.1 * (1.304536 + 1.6414317) / 2 = 2.620626

f( x9 ; y9 ) = 1.6 + cos (2.620626 / Ö0.3 ) = 1.6721351

x10 = 1.6 + 0.1 = 1.7

y10* = 2.620626 + 0.1 * 1.6721351 = 2.7878395

y10 = 2.620626 + 0.1 * (1.6721351 + 2.068584) / 2 = 2.807662

Для оценки погрешности вычислений найдём решение дифференциального уравнения с шагом h / 2 до третьей точки:

f( x0 ; y0 ) = 0.7 + cos (2.1 / Ö0.3 ) = - 0.069675

x1 = 0.7 + 0.05 = 0.75

y1* = 2.1 + 0.05 * (- 0.069675) = 2.096516

y1 = 2.1 + 0.05 * ((- 0.069675) + ( - 0.02372)) / 2 = 2.097665

f( x1 ; y1 ) = 0.75 + cos (2.097665 / Ö0.3 ) = - 0.022389

x2 = 0.75 + 0.05 = 0.8

y2* = 2.097665 + 0.05 * (- 0.022389) = 2.096546

y2 = 2.097665 + 0.05 * ((- 0.022389) + 0.026314) / 2 = 2.097763

f( x2 ; y2) = 0.8 + cos (2.097763 / Ö0.3 ) = 0.027724

x3 = 0.8 + 0.05 = 0.85

y3* = 2.097763 + 0.05 * 0.027724 = 2.0991492

y3 = 2.097763 + 0.05 * (0.027724 + 0.079334) / 2 = 2.10044

f( x3 ; y3) = 0.85 + cos (2.10044 / Ö0.3 ) = 0.080838

x4 = 0.85 + 0.05 = 0.9

y4* = 2.10044 + 0.05 * 0.080838 = 2.1044819

y4 = 2.10044 + 0.05 * (0.080838 + 0.135575) / 2 = 2.10585

f( x4; y4) = 0.9 + cos (2.10585 / Ö0.3 ) = 0.137188

x5 = 0.9 + 0.05 = 0.95

y5* = 2.10585 + 0.05 * 0.137188 = 2.1127094

y5 = 2.10585 + 0.05 * (0.137188 + 0.195345) / 2 = 2.114164

f( x5; y5) = 0.95 + cos (2.114164 / Ö0.3 ) = 0.19709

x6 = 0.95 + 0.05 = 1

y6* = 2.114164 + 0.05 * 0.19709 = 2.1240185

y6 = 2.114164 + 0.05 * (0.19709 + 0.259053) / 2 = 2.125567

Для оценки погрешности вычислений используется правило Рунге:

yi+1 = yih + (yih/2 - yih ) / (2p - 1) , где:

р - порядок метода, для Эйлера - Коши р = 2

Рассчитаем погрешность вычисления в точке х = 1. Найдем уточненное решение:

y(1) = 2.125049 + (2.125567 - 2.125049) / (22 - 1) = 2.1252216

e ih = 2p (yih - yih/2) / (2p - 1) = 22 (2.125567 - 2.125049) / 3 = 6.9 * 10 -4

e ih/2 = (yih - yih/2) / (2p - 1) = (2.125567 - 2.125049) / 3 = 1.73 * 10 -4

Таблица 1. Значения X и Y, полученные с помощью ручного расчёта.

I

X ( I )

Y ( I )

0

0.7

2.1

1

0.8

2.09763

2

0.9

2.105547

3

1

2.125049

4

1.1

2.157721

5

1.2

2.205613

6

1.3

2.271475

7

1.4

2.359045

8

1.5

2.473328

9

1.6

2.620626

10

1.7

2.807662

График решения дифференциального уравнения представлен на рисунке 3.

2. АППРОКСИМАЦИЯ. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ

2.1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Исходя из постановки задачи, нужно аппроксимировать полученное в п.1. решение ( Таблица 1. ) параболой методом наименьших квадратов, т.е. нужно найти функцию, в данном случае параболу, которая в точках X ( I ) принимала бы значения, как можно более близкие к значениям Y ( I ). Парабола является функцией с тремя параметрами: F (x) = ax2 + bx + c

Сумма квадратов разностей значений функции и решений дифференциального уравнения (Таблица 1.) должна быть минимальной, т.е.:

( ax2 + bx + c - yi )2 => min

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

DF / da = 0, dF / db = 0, dF / dc = 0

После преобразований получим систему уравнений:

a11a + a12b + a13c = b1