Составление процедуры численного решения задачи Коши для уравнения. Тестирование программы VM43.CPP

Страницы работы

Содержание работы

Министерство образования РФ

Ижевский государственный технический университет

Кафедра «Программное обеспечение»

Отчет по лабораторной работе №3

"Численное дифференцирование"

по курсу

"Вычислительная математика"

Выполнил  :                                                                   

Студент группы 4-19-1

Принял      :                                                                    

Ижевск 2001


1. ПОСТАНОВКА ЗАДАЧИ

Задание 1: Определить с точностью значение решения задачи Коши в выбранной точке b. Варианты задания:

а.) Составить процедуру численного решения задачи Коши для уравнения: , где N=6.

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

Задание 2: Используя метод конечных разностей, составить решение краевой задачи для обыкновенного дифференциального уравнения с точностью , шаг h=0.1:          


2.  МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ

Пусть дана система дифференциальных уравнений:

                                       (1)

и начальные условия  y(x0)=y0.

Задавшись некоторым шагом h и введя стандартные обозначения xi=x0+ih  и  yi=yi(xi), Dyi=yi+1-yi   при   i=0, 1, 2, …, положим:

              (2)

Согласно методу Рунге-Кутта  Dy0  приближенно определяют по формуле

     (3)

отсюда   y1=y0+Dy0.

Далее, приняв (x1, y1) за исходные данные и повторяя тот же процесс, находим y2. Аналогично вычисляются   yi (i=3, 4,…).

Имея дифференциальное уравнение второго порядка, положим u’=w, а следовательно w’=u’’. Отсюда распишем уравнение в виде системы:

f=[u’, w’],   k=[k(1), k(2)],

где u’=w,  w в нашем задании w’=–w2–u+ln x  и  компоненты  k(1)  и  k(2) определяются из формул  (2).

За абсолютную погрешность приближенного решения, вычисленную по методу Рунге-Кутта k-ого порядка, принимается

R=|(y1-y2)/(2k-1)|.

Если R<=E, то шаг h уменьшается в два раза, и вычисления повторяются, исходя из узла x0. Как только на очередном этапе будет получено R<E, считается, что y2 и является решением в узле x1=x0+h, полученным с заданной точностью E на этом шаге.

Решение в следующем узле x2, исходя из узла x1, получается аналогичным образом. При этом начальный шаг выбирается по шагу h, с которым было получено решение в узле x1, в зависимости от погрешности R: если R<E/2k+1, то предыдущий шаг удваивается; в противном случае шаг не изменяется. Аналогично находится решение и в последующих узлах.

При подходе к точке x=b следует проявлять осторожность. Если D=b-xk окажется меньше E1=E*0.1, то можно считать, что xk » bи на этом процесс интегрирования заканчивается. При D>=E1 интегрирование должно быть продолжено. Если при этом h<=D, то очередной этап не выводит за пределы интегрирования, и он делается обычным образом. Если же h>D, то в качестве h следует взять величину D.

Алгоритм для нахождения решения задачи Коши методом Рунге-Кутта:

1.  x ::= a1; y ::= y01; h::=0.1; eps::=0.0001; i::=0;

2.  k1  ::= h * f1(x, y);

k2  ::= h * f1(x + h/2, y + k1/2);

k3  ::= h * f1(x + h/2, y + k2/2);

k4  ::= h * f1(x + h, y + k3);

y   ::= y + (k1 + 2*k2 + 2*k3 + k4)/6;

x   ::= x + h;

i   ::= i + 1;

3.  Если (|b1-x| < eps*0.1), то переход к п., иначе к п.4;

4.  rc4 ::=y;

5.  y_New ::= rc4;

6.  y_Old ::= y_New;

h ::= h/2 ;

7.  y_New := rc41; переход к п.2;

8.  Если (|(y_Old - y_New)/k| < eps), то переход к п.9, иначе к п.6;

9.  Конец;


3. ТЕСТИРОВАНИЕ

Тексты программы приведены в приложении 1.

3.1. Тестирование программы VM43.CPP

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

Результаты работы программы:

Метод Рунге-Кутта 41 : 30.0148725

Точное значение      : 30.0148725

Точность вычислений  :  0.0001000

Количество итераций  : 120

------------------------------------------Метод Рунге-Кутта 21 : 30.0149112

Точное значение      : 30.0148725

Точность вычислений  :  0.0001000

Количество итераций  : 120

------------------------------------------Метод Рунге-Кутта 42 : 4.9092973

Точность вычислений  : 0.0001000

Количество итераций  : 40

------------------------------------------Метод Рунге-Кутта 32 : 4.9092669

Точность вычислений  : 0.0001000

Количество итераций  : 40

------------------------------------------Решение краевой задачи : 0.7850480

Точность вычислений    : 0.0010000

Количество итераций    : 4

------------------------------------------По результатам работы программы показывают, что в процедуре, реализующей вычисление решения задачи Коши методом Рунге-Кутта-4 выполняется меньшее количество итераций, чем в методе Рунге-Кутта-2 (можно пронаблюдать при изменении шага).

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
70 Kb
Скачали:
0