Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет по 6ой программе

.docx
Скачиваний:
12
Добавлен:
14.05.2015
Размер:
46.83 Кб
Скачать

Гусева Настя гр. 21306

Отчет по практическому заданию №6

Курс «Вычислительные методы»

Вариант 57

Задание: (Решение задачи Коши О.Д.У.)

Численно решить дифференциальное уравнение при начальных условиях y(0)=1, в интервале интегрирования [0;2] с шагом h=0.2. Определить близость полученного заданным методом решения к точному значению с помощью линейной оценки: , где - точное решение, - полученное приближенное решение. Точное решение:. На одной координатной плоскости построить график зависимости y=y(x) решения уравнения численным методом (точки) и точного решения (линия).

Краткая теория:

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

Общий вид ОДУ:

F(x, y, y’, y’’,…,y(n))=0

Наивысший порядок производной - порядок уравнения.

ОДУ часто представляют в виде:

y(n)=f(x, y, y’, y’’,…,y(n-1))

уравнение, разрешенное относительно старшей производной.

Общее решение ОДУ - бесконечное множество функций в аналитическом виде.

Точное решение ОДУ - только 1 функция (обычно в аналитическом виде).

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

При использовании численных методов решения ОДУ решение представляет собой набор точек, которые лежат на кривой истинного решения или расположены вблизи нее (ввиду погрешности метода).

Численные методы решения ОДУ характеризуются следующими показателями:

  • Точность

  • Устойчивость

Точность – погрешность, с которой получается решение. Все методы характеризуется определенным порядком точности. Чем выше порядок – тем выше точность.

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

Решение обыкновенных дифференциальных уравнений высших порядков

Любое дифференциальное уравнение высшего порядка можно привести к системе дифференциальных уравнений 1-го порядка путем замены переменных.

Рассмотрим дифференциальное уравнение 2-го порядка:

Заданы начальные условия: x0, y0, y’0

Разрешим уравнение относительно старшей производной:

Заменим первую производную y’ функцией z. Тогда y’’=z’, а y’0= z0

Получим систему:

Решаем полученную систему известными методами.

Блок-схема метода:

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

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

program ODY;

var x0,y0,z0,y1,B,h,k1,k2,k3,k4,x,y,z,L1,L2,L3,L4:real;

var n,i:integer;

function f1(x,y,z:real):real;

begin

f1:=z;

end;

function f2(x,y,z:real):real;

begin

f2:=3*z-2*y+2*x-3;

end;

function f3:real;

begin

f3:=exp(x)+x;

end;

begin

x0:=0;

y0:=1;

z0:=2;

n:=10;

h:=0.2;

for i:=1 to n do

begin

k1:=h*f1(x0,y0,z0);

L1:=h*f2(x0,y0,z0);

k2:=h*f1(x0+h/2,y0+k1/2,z0+L1/2);

L2:=h*f2(x0+h/2,y0+k1/2,z0+L1/2);

k3:=h*f1(x0+h/2,y0+k2/2,z0+L2/2);

L3:=h*f2(x0+h/2,y0+k2/2,z0+L2/2);

k4:=h*f1(x0+h,y0+k3,z0+L3);

L4:=h*f2(x0+h,y0+k3,z0+L3);

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

z:=z0+1/6*(L1+2*L2+2*L3+L4);

x:=x0+h;

y1:=f3;

B:=y-y1;

write('x=',x:8:8,' ');

write('y=',y:8:8,' ') ;

write('b=',B:8:8); writeln;

x0:=x;

y0:=y;

Z0:=z;

end;

readln;

end.

Результаты:

x=0.2 y=1.42140000 b=-0.00000276

x=0.4 y=1.89181796 b=-0.00000674

x=0.6 y=2.42210646 b=-0.00001234

x=0.8 y=3.02552083 b=-0.00002010

x=1.0 y=3.71825114 b=-0.00003069

x=1.2 y=4.52007194 b=-0.00004498

x=1.4 y=5.45513587 b=-0.00006410

x=1.6 y=6.55294295 b=-0.00008948

x=1.8 y=7.84952451 b=-0.00012295

x=2.0 y=9.38888924 b=-0.00016686

График зависимости y=y(x) решения уравнения численным методом (точки) и точного решения (линия).

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