Решение дифференциального уравнения с последующей аппроксимацией
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
МИНИСТЕРСТВО СВЯЗИ РФ
СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ
ХАБАРОВСКИЙ ФИЛИАЛ
К У Р С О В А Я Р А Б О Т А
ПО ИНФОРМАТИКЕ
на тему:
РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНОГО УРАВНЕНИЯ
С ПОСЛЕДУЮЩЕЙ АППРОКСИМАЦИЕЙ РЕЗУЛЬТАТОВ
Работу выполнила:
студентка 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
ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ
- Решить дифференциальное уравнение y = x + cos ( y / 0.3 ) с начальными условиями x0 = 0.7 y0 = 2.1 на интервале [ 0.7 ; 1.7 ] с шагом h = 0.1.
- Оценить погрешность вычислений при решении дифференциального уравнения методом Эйлера - Коши.
- Аппроксимировать полученное в п.1. решение параболой методом наименьших квадратов.
- Рассчитать погрешность аппроксимации.
- Построить графики решения дифференциального уравнения, аппроксимирующей функции и погрешности аппроксимации.
- Составить блок-схемы алгоритмов и программы для решения дифференциального уравнения, вычисления коэффициентов аппроксимирующей параболы, расчёта погрешности аппроксимации на языке 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 во второй степени, т.е. метод Эйлера - Коши имеет второй порядок точности.
- РУЧНОЙ РАСЧЁТ РЕШАЕМОЙ ЗАДАЧИ
По условию задачи нужно решить дифференциальное уравнение 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