МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ УКРАИНЫ
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ
«Вычислительные методы» на тему:
«Экспериментальное исследование свойств методов Рунге-Кутты»
Выполнила: студентка гр. А-31д
Воротилова Я.М.
Проверил: Мирянов В.И.
Севастополь
2004
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1 ПОСТАНОВКА ЗАДАЧИ
1.1 Приведение к нормальной форме Коши
1.2 Метод Рунге-Кутты второго порядка
2 ОПИСАНИЕ ПРОГРАММНЫХ МОДУЛЕЙ
2.1 Основная программа
2.2 Функция вычисления точного решения
2.3 Процедура вычисления правых частей системы уравнений в нормальной форме Коши
2.4 Процедура RK2
2.5 Процедура RK4
3 ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ МЕТОДОВ РУНГЕ-КУТТЫ
3.1 Анализ влияния величины шага на точность интегрирования методами Рунге-Кутты второго и четвертого порядка
3.2 Проверка гипотезы Рунге
3.3 Исследование поведение ошибки интегрирования как функции независимой переменной для обоих методов Рунге-Кутты при различных значениях шага
3.4 Сравнительный анализ эффективности методов Рунге-Кутты при различных требованиях к точности вычисления
ЗАКЛЮЧЕНИЕ
БИБЛИОГРАФИЯ
ПРИЛОЖЕНИЕ А
ПРИЛОЖЕНИЕ Б
ПРИЛОЖЕНИЕ В
Задание предполагает:
a) закрепление теоретических навыков и знаний в вопросе о проблематике интегрирования ОДУ и численного решения задачи Коши методом Рунге-Кутты, изучение их основных свойств (точность, эффективность, устойчивость) и основных характеристик данных свойств (локальная и глобальная алгоритмические ошибки, порядок метода, ошибка вычисления и т.п.) ;
b) приобретение основных навыков составления и отладки процедур и функций интегрирования на основе методов Рунге-Кутты и программ интегрирования систем дифференциальных уравнений с использованием все тех же процедур и функций;
c) проведение опытных исследований зависимости точности, эффективности и устойчивости алгоритмов интегрирования от величины шага интегрирования и порядка метода Рунге-Кутты на ЭВМ.
В различных сферах технических и даже экономических отраслей приходится достаточно часто сталкиваться с математическими задачами, для которых не представляется возможным описать точное решение классическими методами или сие решение выражено крайне неудобочитаемыми соотношениями, которые представляют из себя неприемлемую для мозга пищу, не говоря уже об использовании или реализации на практике.
Разрабатываемые вычислительной математикой численные методы носят в основном ориентировочный характер, однако они позволяют получить итоговый числовой результат со сносной для практических нужд точностью. Численные методы представляют собой алгоритмы вычисления приблизительных значений искомого решения на определенной сетке значений аргумента. При определенных условиях значения аргумента могут являться точными.
Численные методы не позволяют найти общее решение: полученное решение является частным. Но одним из многочисленных плюсов данных методов можно назвать высокую степень применимости к обширным классам уравнений и всем типам вопросов и заданий к ним. Посему с появлением электронных вычислительных машин численные методы стали одними из основных технологий решения определенных практических задач решения ОДУ.
Большую значимость имеет вопрос о верности вычислений на ЭВМ, поскольку при практической реализации имеет место обширный объем обрабатываемой подсчитываемой информации и погрешности могут достаточно сильно исковеркать конечный результат, принимаемый нами за действительный с «поправками на ветер». Кроме сказанного оценка точности численного метода немаловажна и потому, что увеличить точность в некоторых пределах можно за счет увеличения объемов вычислений, а уменьшить временные затраты при решении задачи - за счет снижения точности получаемого результата.
d) удобоваримую точность;
e) одноступенчатость, то есть дабы найти , необходима информация лишь о предыдущей точке ;
f) координирование с рядом Тейлора вплоть до членов порядка , где степень неодинакова для различных методов и именуется порядком метода;
g) отсутствие необходимости вычисления производных от , причем накладывается требование вычисления всего-навсего самой функции.
Нормальной формой Коши принято называть общую форму записи ОДУ, то есть представление в виде системы дифференциальных уравнений первого порядка:
(1)
ДУ второго порядка, заданное согласно варианту №3 имеет вид:
(2)
Задание предполагает нахождение решения на интервале при следующих начальных условиях:
(3)
Для решения ДУ его просто необходимо представить согласно нормальной формы Коши. Для этого руководствуемся следующими обозначениями:
(4)
В итоге имеется система ДУ первого порядка вида:
(5)
Произведя все вышеописанные манипуляции над заданным в варианте уравнением, получим следующую систему:
(6)
Система (6) есть решение уравнения (2).
1.2 Метод Рунге-Кутты второго порядка
В методах Рунге-Кутты интеграл заменяется линейной комбинацией значений подынтегральной функции, вычисленных при разных значениях аргумента:
(7)
Метод Рунге-Кутты представим в виде:
(8)
Из вышеуказанных общих формул (8) получают формулы метода Рунге-Кутты 2-ого порядка m=2;
(9)
Для определения метода необходимо найти значения вещественных коэффициентов: . Для этого интеграл, заменяемый линейной комбинацией значений подынтегральной функции, вычисленных при разных значениях аргумента, можно представить как:
(10)
А его, в свою очередь, можно представить рядом Тейлора:
(11)
где - сумма элементов ряда Тейлора, степень которых не ниже 3.
Осталось найти неизвестные значения
(12)
В результате таких бесхитростных манипуляций получаем искомый ряд Тейлора:
(13)
Приравняем коэффициенты при одинаковых степенях в выражениях
(11) и (13). В итоге получим систему уравнений вида:
(14)
Из свойств системы (14) следует отметить, что она не обладает единственным решением. При значение , значение , а (15)
Подставив полученные коэффициенты в соотношение (8), получаем следующие формулы метода Рунге-Кутты 2-ого порядка:
(16)
function clearsolve (t: real): real
Функция предназначена для вычисления точного решения для дифференциального уравнения по формуле (3):
(3)
Текст функции приведен в приложении 2, схема в приложение 7.
2.3 Процедура вычисления правых частей системы уравнений в нормальной форме Коши
procedure right(t: real; var x,f: vector_n);
Процедура вычисляет правые части системы однородных дифференциальных уравнений в нормальной форме Коши по формуле (4):
(4)
Текст процедуры приведен в приложении А, а схема в приложение Б.
2.4 Процедура RK2
procedure RK2(t: real; h: real; var x: vector_n);
Укажем формальные параметры:
t - независимая переменная ;
h - шаг интегрирования;
x - массив решений. При входе в процедуру решение в текущем узле интегрирования, при выходе в следующем.
Процедура RK2 выполняет шаг интегрирования системы ОДУ методом Рунге-Кутты 2-ого порядка из соотношения (5):
(5)
где
(6)
Процедура обращается к процедуре вычисления правых частей right с различными параметрами для вычисления и (6). Затем с Божьей помощью (5) считает значение .
Текст процедуры приведен в приложении А, схема в приложение Б.
2.5 Процедура RK4
procedure RK4(t: real; h: real; var x_4: vector_n);
Формальные параметры:
t - независимая переменная ;
h - шаг интегрирования;
x - массив решений. При входе в процедуру решение в текущем узле интегрирования, при выходе в следующем.
Процедура RK4 выполняет шаг интегрирования системы обыкновенных дифференциальных уравнений (1.1.2) методом Рунге-Кутты 4-ого порядка (7).
(7)
где
(8)
Процедура четыре раза обращается к процедуре вычисления правых частей right с разными параметрами для вычисления ,,,(8). Затем с Божьей помощью (7) считает значение .
Текст процедуры приведен в приложении А, схема в приложение Б.
3 ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ МЕТОДОВ РУНГЕ-КУТТЫ
3.1 Анализ влияния величины шага на точность интегрирования методами Рунге-Кутты второго и четвертого порядков
(1)
Рисунок 3 - Зависимость отношения оценки погрешности к величине шага интегрирования в степени, равной порядку метода от шага интегрирования
Гипотеза Рунге экспериментально подтверждается только при таких значениях шага (1-0.01), где погрешность вычисления ПЭВМ влияет на результат в благоразумных пределах. При дальнейшем уменьшении шага пропорциональность скрывается из виду. Это можно истолковать тем, что предположение Рунге не учитывает влияния ошибки вычисления ПЭВМ на полученный результат.
3.3 Исследование поведение ошибки интегрирования как функции независимой переменной для обоих методов Рунге-Кутты при различных значениях шага
Для проведения своих изысканий нам необходимо выбрать 3 значения шага в начале, середине и конце диапазона изменения шага и построить графические зависимости решений от независимой переменной и погрешностей интегрирования от независимой переменной.
Рисунок 4 - График точного и приближенных решений (h=0.001, 0.1, 0.5) дифференциального уравнения
На рисунке 3 слегка, но все-таки заметны отклонения приближённых решений при разной величине шага от точного, что подтверждает высокую точность получаемого приближенного решения относительно точного.
Рисунок 5 - График зависимости величины ошибки интегрирования от независимой переменной при h=0.001, 0.1, 0.5
При величине шага интегрирования h=0.001 ошибки интегрирования (E1 и E2), равно как и при больших h возрастают с ростом независимой переменной, что слава Богу не противоречит теории, однако прослеживается скачкообразный характер графиков, что связано с внушительной лептой вычислительной ошибки в общую погрешность.
3.4 Сравнительный анализ эффективности методов Рунге-Кутты при различных требованиях к точности вычисления
Для анализа надлежит оценить затраты машинного времени на интегрирование ДУ в зависимости от величины погрешности интегрирования.
Так как для довольно непростых уравнений львиная доля времени уходит на вычисление правых частей уравнений, то в качестве оценки затрат машинного времени можно принять количество вычислений правых частей при нахождении решения на всём отрезке интегрирования, что есть произведение количества шагов интегрирования на порядок метода. Зависимость оценки ошибки интегрирования от количества шагов интегрирования определена.
Рисунок 6 - График зависимости величины ошибки интегрирования от количества вычислений правой части
Самарский А.А., Гулин А.В. Численные методы .М.: Наука, ГРФМЛ, 1989.- 432с.
Бахвалов Н.С. Численные методы. М.: Наука, ГРФМЛ,1987.-600 с.
Ляшко И.И., Макаров В.Л. Интегральные методы вычислений. Киев, 1977, 408с.
Мантуров О.В. Курс высшей математики М.:В.Ш.-1991.-448с.
Маликов В.Т. Вычислительные методы и применение Киев: В.Ш.-1989.-213 с.
ПРИЛОЖЕНИЕ А
(Справочное)
Основная программа
program DU(input,output);
uses crt;
type vector_n = array [1..2] of real;
var t0, tf, k, j, n: integer;
t, yt, h, h_screen, e2, e4, e2max, e4max, i_screen: real;
y2, y4: vector_n;
name: string;
outfile: text;
begin
clrscr;
writeln(Please enter file name);
readln(name);
writeln(Please enter h,h_screen);
readln(h,h_screen);
clrscr;
writeln;
assign(outfile,name);
rewrite(outfile);
t0:=0;
tf:=10;
n:=round((tf-t0)/h);
y2[1]:=1;
y2[2]:=0;
y4:=y2;
e2:=0;
e4:=0;
e2max:=0;
e4max:=0;
t:=t0;
i_screen:=h_screen;
for k:=0 to n do
begin
yt:=clearsolve(t);
e2:=abs(yt-y2[1]);
e4:=abs(yt-y4[1]);
if e2>e2max then e2max:=e2;
if e4>e4max then e4max:=e4;
if i_screen>h_screen-0.00001 then
begin
yt:=clearsolve (t);
e2:=abs(yt-y2[1]);
e4:=abs(yt-y4[1]);
if e2>e2max then e2max:=e2;
if e4>e4max then e4max:=e4;
if i_screen>h_screen-0.00001 then
begin
writeln( t=,t:6:3,; yt=,yt:9:3,; y2=,y2[1]:9:3,; y4=,y4[1]:9:3,; e2=,e2:6:3,; e4=,e4:8:6);
writeln(outfile, t=,t:10:6,; yt=,yt:10:6,; y2=,y2[1]:10:6,; y4=,y4[1]:10:6,; e2=,e2:12:9,; e4=,e4:12:9,.);
i_screen:=0;
end;
if t+h>tf-0.000001 then
begin
h:=tf-t;
t:=tf-h;
i_screen:=h_screen;
end;
RK2(t,h,y2);
RK4(t,h,y4);
t:=t+h;
i_screen:=i_screen+h;
end;
writeln;
writeln( h=,(h):8:5,; e2max=,e2max:16:8,; e4max=,e4max:16:8, ,n:8);
writeln(outfile);
writeln(outfile, h=,h:6:5,; e2max=,e2max:10:8,; e4max=,e4max:10:8,.);
close(outfile);
readkey;
end.
Функция вычисления точного решения
function clearsolve(t:real):real;
begin
clearsolve:=exp(-t)*(cos(t)+sin(t)+t*sin(t));
end;
Процедура вычисления правых частей системы уравнений в нормальной форме Коши
procedure right(t:real;var x,f:vector_n);
begin
f[1]:=x[2];
f[2]:=2*exp(-t)*cos(t)-2*x[1]-2*x[2];
end;
Процедура RK2
procedure RK2(t:real;h:real;var x:vector_n);
var h4, h23: real;
f1, f2, xr: vector_n;
begin
h4:=0.25*h;
h23:=0.66666667*h;
right(t,x,f1);
for j:=1 to 2 do xr[j]:=x[j]+h23*f1[j];
right(t+h23,xr,f2);
for j:=1 to 2 do x[j]:=x[j]+h4*(f1[j]+3*f2[j]);
end;
Процедура RK4
procedure RK4(t:real;h:real;var x:vector_n);
var h2,h6:real;
f,fs,xr:vector_n;
begin
h2:=0.5*h;
h6:=0.166666667*h;
right(t,x,fs);
for j:=1 to 2 do xr[j]:=x[j]+h2*fs[j];
right(t+h2,xr,f);
for j:=1 to 2 do
begin
xr[j]:=x[j]+h2*f[j];
fs[j]:=fs[j]+2*f[j];
end;
right(t+h2,xr,f);
for j:=1 to 2 do
begin
xr[j]:=x[j]+h*f[j];
fs[j]:=fs[j]+2*f[j];
end;
right(t+h,xr,f);
for j:=1 to 2 do
x[j]:=x[j]+h6*(f[j]+fs[j]);
end;
ПРИЛОЖЕНИЕ Б
(Справочное)
Схема основной программы
Схема функции вычисления точного решения
Схема процедуры вычисления правых частей системы уравнений в нормальной форме Коши
Схема процедуры RK2
Схема процедуры RK4
ПРИЛОЖЕНИЕ В
(Справочное)
Результаты экспериментов
t= 0.000000; yt= 1.000000; y2= 1.000000; y4= 1.000000; e2=0.000000; e4=0.000000
t= 0.400000; yt= 0.982855; y2= 0.983425; y4= 0.982856; e2=0.000570; e4=0.000001
t= 0.800000; yt= 0.893242; y2= 0.893209; y4= 0.893244; e2=0.000033; e4=0.000001
t= 1.200000; yt= 0.726735; y2= 0.725954; y4= 0.726735; e2=0.000781; e4=0.000001
t= 1.600000; yt= 0.518812; y2= 0.517695; y4= 0.518812; e2=0.001117; e4=0.000000
t= 2.000000; yt= 0.312861; y2= 0.311906; y4= 0.312860; e2=0.000955; e4=0.000001
t= 2.400000; yt= 0.141446; y2= 0.140967; y4= 0.141444; e2=0.000479; e4=0.000001
t= 2.800000; yt= 0.020112; y2= 0.020173; y4= 0.020111; e2=0.000062; e4=0.000001
t= 3.200000; yt= 0.050686; y2=-0.050207; y4=-0.050687; e2=0.000480; e4=0.000001
t= 3.600000; yt=-0.080123; y2=-0.079431; y4=-0.080123; e2=0.000692; e4=0.000001
t= 4.000000; yt=-0.081279; y2=-0.080573; y4=-0.081279; e2=0.000705; e4=0.000000
t= 4.400000; yt=-0.066862; y2=-0.066283; y4=-0.066862; e2=0.000579; e4=0.000000
t= 4.800000; yt=-0.046829; y2=-0.046441; y4=-0.046829; e2=0.000388; e4=0.000000
t= 5.200000; yt=-0.027632; y2=-0.027436; y4=-0.027632; e2=0.000196; e4=0.000000
t= 5.600000; yt=-0.012539; y2=-0.012497; y4=-0.012538; e2=0.000042; e4=0.000000
t= 6.000000; yt=-0.002468; y2=-0.002527; y4=-0.002468; e2=0.000058; e4=0.000000
t= 6.400000; yt= 0.003083; y2= 0.002977; y4= 0.003083; e2=0.000106; e4=0.000000
t= 6.800000; yt= 0.005261; y2= 0.005147; y4= 0.005261; e2=0.000113; e4=0.000000
t= 7.200000; yt= 0.005313; y2= 0.005217; y4= 0.005313; e2=0.000096; e4=0.000000
t= 7.600000; yt= 0.004292; y2= 0.004223; y4= 0.004292; e2=0.000068; e4=0.000000
t= 8.000000; yt= 0.002938; y2= 0.002898; y4= 0.002938; e2=0.000040; e4=0.000000
t= 8.400000; yt= 0.001690; y2= 0.001673; y4= 0.001690; e2=0.000017; e4=0.000000
t= 8.800000; yt= 0.000742; y2= 0.000741; y4= 0.000742; e2=0.000001; e4=0.000000
t= 9.200000; yt= 0.000131; y2= 0.000139; y4= 0.000131; e2=0.000008; e4=0.000000
t= 9.600000; yt=-0.000192; y2=-0.000181; y4=-0.000192; e2=0.000011; e4=0.000000
t=10.000000; yt=-0.000310; y2=-0.000299; y4=-0.000310; e2=0.000010; e4=0.000000
h=0.00000; e2max=0.00111851; e4max=0.00000132.
! | Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ. |
! | Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу. |
! | Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться. |
! | План курсовой работы Нумерованным списком описывается порядок и структура будующей работы. |
! | Введение курсовой работы Что пишется в введении, какой объем вводной части? |
! | Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать. |
! | Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа. |
! | Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема. |
! | Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом. |
! | Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ. |
→ | Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия. |
→ | Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта. |
→ | Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты. |
→ | Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести. |
→ | Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя. |
→ | Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика. |
Курсовая работа | Деятельность Движения Харе Кришна в свете трансформационных процессов современности |
Курсовая работа | Маркетинговая деятельность предприятия (на примере ООО СФ "Контакт Плюс") |
Курсовая работа | Политический маркетинг |
Курсовая работа | Создание и внедрение мембранного аппарата |
Курсовая работа | Социальные услуги |
Курсовая работа | Педагогические условия нравственного воспитания младших школьников |
Курсовая работа | Деятельность социального педагога по решению проблемы злоупотребления алкоголем среди школьников |
Курсовая работа | Карибский кризис |
Курсовая работа | Сахарный диабет |
Курсовая работа | Разработка оптимизированных систем аспирации процессов переработки и дробления руд в цехе среднего и мелкого дробления Стойленского ГОКа |