Численные методы решения дифференциального уравнения первого порядка

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.12.2014
Размер файла 389,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования науки и культуры Украины

Одесский национальный политехнический университет

Курсовая робота

Дисциплина «Численные методы»

Тема «Численные методы решения дифференциального уравнения первого порядка»

Руководитель курсовой работы:

Гришина В.А.

Выполнила ст. гр. ВС-121

Мостовая С.

Одесса 2014

План

1. Постановка Задачи

2. Теоретическое описание используемых методов

3. Текст программы с соответствующими комментариями

Литература

1. Постановка Задачи

Постановка задачи: Найти решение обыкновенного дифференциального уравнения модифицированным методом Эйлера-Коши (Хьюна) и систему обыкновенных дифференциальных уравнений (указание: как частный случай - система может состоять из одного уравнения) методом Рунге-Кутта 4-ого порядка.

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

Задача Коши обычно возникает при анализе процессов, определяемых дифференциальным законом эволюции и начальным состоянием (математическим выражением которых и являются уравнение и начальное условие). Этим мотивируется терминология и выбор обозначений: начальные данные задаются при t = 0, а решение отыскивается при t > 0.

От краевых задач задача Коши отличается тем, что область, в которой должно быть определено искомое решение, здесь заранее не указывается. Тем не менее, задачу Коши можно рассматривать как одну из краевых задач.

Основные вопросы, которые связаны с задачей Коши, таковы:

1. Существует ли (хотя бы локально) решение задачи Коши?

2. Если решение существует, то какова область его существования?

3. Является ли решение единственным?

4. Если решение единственно, то будет ли оно корректным, то есть непрерывным (в каком-либо смысле) относительно начальных данных?

Говорят, что задача Коши имеет единственное решение, если она имеет решение y = f(x) и никакое другое решение не отвечает интегральной кривой, которая в сколь угодно малой выколотой окрестности точки (x0,y0) имеет поле направлений, совпадающее с полем направлений y = f(x). Точка (x0,y0)задаёт начальные условия.

Различные постановки задачи Коши

· ОДУ первого порядка, разрешённое относительно производной

· Система n ОДУ первого порядка, разрешённая относительно старших производных

· ОДУ n-го порядка, разрешённое относительно старшей производной

Теоремы о разрешимости задачи Коши для ОДУ

Пусть в области рассматривается задача Коши:

y(x0) = y0,

где . Пусть правая часть является непрерывной функцией в . В этих предположениях имеет место теорема Пеано, устанавливающая локальную разрешимость задачи Коши: Пусть a>0 и b>0 таковы, что замкнутый прямоугольник

принадлежит области D, тогда на отрезке [x0 ? б,x0 + б], где б = min{a,b / M}, , существует решение задачи Коши.

Указанный отрезок называется отрезком Пеано. Заметим, что, локальный характер теоремы Пеано не зависит от гладкости правой части. Например, дляf(x,y) = y2 + 1 и для x0 = 0,y0 = 0 решение y(x) = tan(x) существует лишь на интервале ( ? р,р). Также отметим, что без дополнительных предположений относительно гладкости правой части, нельзя гарантировать единственность решения задачи Коши. Например, для возможно более одного решения.

Чтобы сформулировать теорему о единственности решения задачи Коши, необходимо наложить дополнительные ограничения на правую часть. Будем говорить, что функция f(x,y) удоволетворяет условию Липшица на D относительно y, если существует постоянная L такая, что

для всех , i=1,2.

Пусть правая часть f(x,y) дополнительно удовлетворяет условию Липшица на D относительно y, тогда задача Коши не может иметь в D более одного решения.

Также отметим, что хотя эта теорема имеет глобальный характер, тем не менее она не устанавливает существование глобального решения.

Для существования глобального решения необходимо наложить условия на рост правой части по y: пусть функция f удовлетворяет условию

где A>0 - константа не зависящая ни от x, ни от y, тогда задача Коши имеет решение в D. В частности, из этой теоремы следует, что задача Коши для линейных уравнений (с непрерывными по x коэффициентами) имеет глобальное решение.

Рассмотрим дифференциальное уравнение с начальным условием . Будем предполагать, что f(x,y) непрерывная и непрерывно дифференцируемая по функция в окрестности замкнутой области

,

содержащей внутри себя точку .

Требуется решить задачу Коши: найти непрерывно дифференцируемую функцию y=y(x), такую что при всех и .

Разобьем отрезок [a, b] с помощью точек разбиения с шагом . Тогда узлы разбиения имеют вид .

Пусть ? значения функции в точках разбиения…

2. Теоритическое описание методов к численному решению

1. Метод Рунге-Кутта второго порядка (или метод типа «предиктор-корректор»).

Метод состоит из двух этапов. Сначала находят по методу Эйлера грубое решение:

.

На следующем шаге это грубое решение сглаживается:

.

Выясним точность метода. Преобразуя , получаем:

С другой стороны, разложим точное решение y(x) по формуле Тейлора. Получим

Полагая , получаем погрешность на отдельном шаге равную . Тогда на всем отрезке погрешность составит

Достоинство метода: его точность превосходит точность метод Эйлера.

2. Метод Рунге-Кутта четвертого порядка.

На каждом шаге производится вычисление коэффициентов :

;

;

;

.

Затем вычисляем

.

Данный метод имеет точность на [a,b].

Рассмотрим пример, который мы использовали для иллюстрации точности метода Эйлера.

Пример. Требуется решить задачу Коши:

на отрезке [0, 1].

Выберем шаг . Результат вычислений поместим в таблицу.

0

1

2

3

4

5

0

0.2

0.4

0.6

0.8

1

1

0.8187

0.6703

0.5487

0.4493

0.3678

1

0.8187

0.6703

0.5488

0.4493

0.3679

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

Отметим, что на практике выбирают начальную длину шага h таким образом, чтобы , где е ? заданная точность вычисления решения. Затем шаг выбирают вдвое меньшим и останавливают вычисления, если разность полученных значений yk со значениями, полученными при начальном выборе шага меньше е. В противном случае шаг еще раз уменьшают вдвое и т.д.

3.Метод Эйлера

Пусть искомое решение задачи Коши. В точке (x0,y0) построим касательную (см. рис. 9.1) к графику .

Запишем уравнение касательной:

.

и найдем точку пересечения этой касательной с прямой :

.

Запишем уравнение прямой

и найдем точку ее пересечения с прямой с :

.

Продолжая процесс, получим рекуррентную последовательность:

(1)

,

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

Выясним точность метода Эйлера. Сравним значения точного решения y(x) задачи Коши в узловых точках со значениями, полученными методом Эйлера:

,

.

Поскольку

,

то при условии, что . То есть, точность метода на отдельном отрезке совпадает с . Тогда, очевидно, точность метода Эйлера на всем отрезке [a, b] будет O(h).

Для повышения точности вычислений иногда используется модифицированный метод Эйлера, в котором рекуррентная последовательность Эйлера вычисляется по формулам

. (2)

Модифицированный метод Эйлера обычно дает более точное приближение решения.

Пример. Пусть требуется решить задачу Коши:

Полагая и используя метод Эйлера, получим, как легко убедиться, из формулы Эйлера (1)

.

С другой стороны, используя модифицированный метод Эйлера, получим в силу формулы (2) рекуррентную последовательность

.

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

0

1

2

3

4

5

0

0.2

0.4

0.6

0.8

1

1

0.8

0.64

0.572

0.4086

0.3277

1

0.82

0.6724

0.5514

0.4521

0.3708

1

0.8187

0.6703

0.5488

0.4493

0.3679

Общепризнанным недостатком метода Эйлера является его не достаточно высокая точность. Несомненным достоинством метода Эйлера является его простота.

4.Метод Хьюна :

Пусть требуется найти приближенное решение дифференциального уравнения

y' = f(x,y),

удовлетворяющее начальному условию

y(x0) = y0.

При решении задачи методом Эйлера-Коши, который иногда называют методом Хьюна, приближенное значение y1 решения y(x)

в точке x1 = x0+h,

вычисляется по формуле

y1=y0+ (f(x0,y0)+ f(x1,y0+hf(x0,y0)))h/2.

Приближенные значения yi решения уравнения y(x) в точках

xi = x0 +ih, i= 1, 2,..., n вычисляются по формулам

yi+1 = yi+ (f(xi,yi)+f(xi+1,yi+ hf(xi,yi)))h/2.

Метод Эйлера-Коши является одношаговым методом второго порядка. Метод Эйлера-Коши относится к классу методов прогноза и коррекции. Локальная погрешность метода на одном шаге равна O(h3).

3. Текст программы с соответствующими комментариями

public partial class Form1 : Form

{

private double x0;

private double y0;

public Form1()

{

InitializeComponent();

}

double rezf(double x)

{

//точное значение производной

}

private double F(double x, double y)

{

//уравнение

}

private void bMake_Click(object sender, EventArgs e)

{

x0 = Convert.ToDouble(tbX.Text);

y0 = Convert.ToDouble(tbY.Text);

int n = Convert.ToInt32(tbN.Text);

double rungeKutt4 = Runge_Kutt_4(n);

}

public double Runge_Kutt_4(int n)

{

double x, yi, y_prev = y0, k1, k2, k3, k4, error, max_error = 0;

double h = (double) 1/n;

tbLog.Text += "При n=" + n + ", шаг h= " + h + "\n";

for (int i = 0; i <= n; i++)

{

x = x0 + i*h;

if (i == 0)

{

yi = y0;

}

else

{

/*xi__ = x + h/2; k1 = h * F(x, y_prev);

*k2 = F(xi__, y_prev + (h * 0.5) * k1);

*k3 = F(x + h, y_prev - (h * k1) + (2 * h * k2));

*yi = y_prev + (h / 6) * (k1 + (4 * k2) + k3);*/

k1 = h*F(x, y_prev);

k2 = h*F(x + (h/2), y_prev + (k1/2));

k3 = h*F(x + (h/2), y_prev + (k2/2));

k4 = h*F(x + h, y_prev + k3);

yi = y_prev + ((k1 + (2*k2) + (2*k3) + k4)/6);

}

error = Math.Abs(yi - rezf(x));

listBox1.Items.Add(i + ":\tx= " + x + "; \t y(Р-К)= " + Convert.ToString(yi) + "; \t y(точ)= " + rezf(x) +

// "; \t погрешность= " + error + ";");

if (error > max_error) max_error = error;

y_prev = yi;

}

listBox1.Items.Add("максимальная ошибка = " + max_error);

return max_error;

}

public double Euler_Koshi(int n)

{

double x,

yi,// y[i]

yi__,// x[i-1/2]

y_prev = y0,// y[i-1]

error,max_error = 0;

double h = (double) 1/n;

listBox1.Items.Add("При n=" + n + ", шаг h= " + h);

for (int i = 0; i <= n; i++)

{

x = x0 + i*h;

if (i == 0)

{

yi = y0;

}

else

{

yi__ = y_prev + h/2*F(x, y_prev);

yi = y_prev + h*F(x - h/2, yi__);

}

error = Math.Abs(yi - rezf(x));

listBox1.Items.Add(i + ":\tx= " + x + "; \t y(Э-К)= " + Convert.ToString(yi) + "; \t y(точ)= " + rezf(x) +

// "; \t погрешность= " + error + ";");

//if (error > max_error) max_error = error;

y_prev = yi;

}

listBox1.Items.Add("максимальная ошибка = " + max_error);

return max_error;

}

}

Литература

1.Д.П. Костомаров, А.П Фаворский «Вводные лекции по численным методам» М., «Логос»,2006

2. Демидович Б.П., Марон И.А., Шувалова Э.З, М., «Наука»,1967

3.Wikipedia.org

4. Амосов А.А., Дубинский Ю.А., Копченова Н.В. Вычислительные методы для инженеров Учебное пособие. - М.: Высшая школа, 1994. - 544 с.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.