Обыкновенные дифференциальные уравнения

Решение дифференциальных уравнений первого порядка. Варианты методов Рунге-Кутта различных порядков. Основные методы численного решения задачи Коши. Повышение точности вычислений и итерационный метод уточнения. Дискретная числовая последовательность.

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

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

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

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

Государственное образовательное учреждение

высшего профессионального образования

"Пермский государственный университет"

Лабораторная работа № 13

вариант 6

«Обыкновенные дифференциальные уравнения»

Выполнил:

студент группы РФЭ-2

Собенин Александр Николаевич.

Проверил:

Шкарапута Александр Петрович.

Пермь 2011

Краткое содержание.

Задача Коши для дифференциального уравнения первого порядка

Задача Коши для дифференциального уравнения первого порядка включает уравнение вида:

и начальное условие: .

Существуют различные методы численного решения задачи Коши: методы рядов Тейлора, одношаговые методы Рунге-Кутта, многошаговые разностные методы. При решении уравнения численными методами значения функции находятся приближенно в виде дискретной числовой последовательности {yi}, где .

Методы Рунге-Кутта

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

В случае , , тогда ,

где , , , .

Данный метод имеет первый порядок точности по h, погрешность нарастает с удалением от точки . Метод Эйлера является методом Рунге-Кутта первого порядка.

Общий вид методов Рунге-Кутта (при ) записывается с помощью формулы:

, где порядок метода, ,

,

,

,

. . . . . . . . ,

.

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

Коэффициенты , , выбираются из соображений точности.

Метод Эйлера получается при .

Для имеется уже семейство методов Рунге-Кутта второго порядка, для которых должно выполнятся условие .

В частности при и получается, так называемый, исправленный метод Эйлера:

.

При , , , получается модифицированный метод Эйлера:

.

Большое распространение получили методы Рунге-Кутта четвертого () порядка точности.

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

Уточнение продолжают до тех пор, пока в пределах требуемой точности два последовательных приближения не совпадут.

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

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

2. Используя метод Эйлера с уточнением, найти приближенное решение задачи Коши в тех же точках, что и в предыдущем задании. Точность вычислений должна составить 0,0001. Помимо решения в каждой точке вывести число итераций.

,

Ход работы.

Текст программы:

#include <stdio.h>

#include "math.h"

float function(float x, float y)

{

float f;

f = x + cos(y/2.25);

return f;

}

float euler(float x,float y,float h)

{

int i;

y=y+h*function(x,y);

return y;

}

float repair_euler(float x,float y,float h)

{

int i;

float h2=h/2;

y=y+h2*(function(x,y)+function(x+h,y+h*function(x,y)));

return y;

}

float met_RK_4(float x,float y,float h)

{

float Y,h2,k[4];

int i;

h2=h/2;

k[0]=function(x,y);

k[1]=function(x+h2,y+h2*k[0]);

k[2]=function(x+h2,y+h2*k[1]);

k[3]=function(x+h,y+h*k[2]);

y=y+h*(k[0]+k[1]*2+k[2]*2+k[3])/6;

return y;

}

void utochnenie(float x,float y,float h)

{

float h2 = h/2,y2,Y,eps=0.0001;

int i,kol=0;

printf("\n\nIteracionyi metod utochneniya");

for(i=0;i<=10;i++,x+=h,kol=0)

{

Y=y+h*function(x,y);

do

{

kol++;

y2=Y;

Y=y+h2*(function(x,y)+function(x+h,Y));

} while(fabs(Y-y2)>eps);

y=y2;

printf("\n%f i=%d",y2,kol);

}

}

void main()

{

float x0,y0,h,y_e,y_r,y_m,x;

int i;

printf("Vvedite x0,y0 i shag h:");

scanf("%f%f%f",&x0,&y0,&h);

y_e=y_r=y_m=y0;

x=x0;

printf("\n\nmet. Eulera\tispravl. met. Eulera\tmet. Runge-Kutta 4 por");

for(i=0;i<=10;i++,x+=h)

{

y_e = euler(x,y_e,h);

y_r = repair_euler(x,y_r,h);

y_m = met_RK_4(x,y_m,h);

printf("\n%f\t\t%f\t\t%f",y_e,y_r,y_m);

}

utochnenie(x0,y0,h);

}

Работа программы:

Vvedite x0,y0 i shag h:1.4 2.2 0.1

met. Eulera ispravl. met. Eulera met. Runge-Kutta 4 por

2.395887 2.397176 2.397192

2.594351 2.596643 2.596673

2.794922 2.797972 2.798012

2.997195 3.000803 3.000851

3.200840 3.204855 3.204905

3.405606 3.409922 3.409970

3.611322 3.615882 3.615921

3.817899 3.822687 3.822713

4.025328 4.030371 4.030377

4.233676 4.239041 4.239021

4.443091 4.448879 4.448826

Iteracionnyi metod utochneniya

2.397176 i=2

2.596643 i=2

2.797972 i=2

3.000803 i=2

3.204855 i=2

3.409922 i=2

3.615882 i=2

3.822687 i=2

4.030371 i=2

4.239041 i=2

4.448879 i=2

Вывод: Сравнивая методы Рунге-Кутта с итерационным, видим, что методы более высокого порядка обеспечивают наибольшую точность.

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


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

  • Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++.

    курсовая работа [163,4 K], добавлен 16.05.2016

  • Обзор методов решения в Excel. Рекурентные формулы метода Эйлера. Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка. Метод Эйлера с шагом h/2. Решение дифференциальных уравнений с помощью Mathcad. Модифицированный метод Эйлера.

    курсовая работа [580,1 K], добавлен 18.01.2011

  • Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.

    курсовая работа [532,9 K], добавлен 14.01.2014

  • Численный метод для решения однородного дифференциального уравнения первого порядка методом Эйлера. Решение систем дифференциальных уравнений методом Рунге–Кутта. Решение краевой задачи. Уравнения параболического типа, а также Лапласа и Пуассона.

    курсовая работа [163,5 K], добавлен 27.05.2013

  • Изучение численных методов решения нелинейных уравнений. Построение годографа АФЧХ, графиков АЧХ и ФЧХ с указанием частот. Практическое изучение численных методов интегрирования дифференциальных уравнений высокого порядка, метод Рунге-Кутта 5-го порядка.

    курсовая работа [398,3 K], добавлен 16.06.2009

  • Анализ предметной области объектно-ориентированного программирования. Языки Delphi, Object Pascal - объектно-ориентированная среда программирования. Основные алгоритмические решения. Решение дифференциального уравнения методом Рунге-Кутта в среде Excel.

    курсовая работа [1,5 M], добавлен 02.04.2011

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

    курсовая работа [226,6 K], добавлен 05.04.2013

  • Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.

    курсовая работа [385,0 K], добавлен 17.09.2009

  • Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.

    курсовая работа [1,1 M], добавлен 02.06.2014

  • Анализ преимуществ и недостатков различных численных методов решения дифференциальных уравнений высших порядков. Обоснование выбора метода Рунге-Кутта четвертого порядка. Разработка программы, моделирующей физическое и математическое поведение маятника.

    курсовая работа [1,6 M], добавлен 11.07.2012

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