Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЕРВОГО ПОРЯДКА



ЦЕЛЬ РАБОТЫ

Сформировать у студентов представления о применении дифференциальных уравнений в различных областях; привить умения решать задачу Коши для дифференциальных уравнений у¢ =f(x, y) на отрезке [a, b] при заданном начальном условии у0=f(x0) методом Эйлера, Рунге-Кутты, Адамса; развить навыки проверки полученных результатов с помощью прикладных программ.

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Изучить теоретическую часть. Выполните задания, соответствующие номеру Вашего варианта, и продемонстрируйте их преподавателю.

2. Оформите отчет по лабораторной работе, который должен содержать:

· титульный лист;

· исходные данные варианта;

· решение задачи;

· результаты решения задачи.

 

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

Пример 13.1.

Методом Эйлера найти значения дифференциального уравнения на отрезке [1, 7; 2, 7], для которого у(1, 7)=5, 3, приняв h=0, 1.

Решение:

1. Создайте файл Eiler_13.m (листинг 13.1), содержащий описание функции, возвращающей решение дифференциального уравнения методом Эйлера.

Листинг 13.1. Файл Eiler_13.m

function [X, Y]=Eiler_13(y0, x0, x1, h)

N=(x1-x0)/h;

x(1)=x0;

y(1)=y0;

for i=1: N

x(i+1)=x(1)+h*i;

y(i+1)=y(i)+h*F13(x(i), y(i));

end;

X=x;

Y=y;

function z=F13(x, y)

z=x+cos(y./pi);

2. Выполнить следующую последовательность команд:

> > h=0.1; % шаг

> > x0=1.7; % левая граница отрезка интегрирования

> > x1=2.7; % правая граница отрезка интегрирования

> > y0=5.3; % начальное условие

% нахождение численного решения задачи Коши

> > [X, Y]=Eiler_13(y0, x0, x1, h);

> > i=1: length(X);

% вычисление значений точного решения

> > Z(i)=y0+1/2*X(i).^2+pi*sin(Y(i)/pi);

% визуализация точного, численного решения и разности между

% численным и точным решениями (рис. 13.1)

> > plot(X, Z, X, Y, '*', X, abs(Z-Y), '.')

 

Рис. 13.1. Визуализация точного(-), численного (*) решения и разности(.) между точным и численным решением, полученным методом Эйлера

Пример 13.2.

Найдите решение дифференциального уравнения первого порядка с указанным начальным условием на заданном отрезке Рунге-Кутта:

Решение:

1. Создайте файл RungeKutt_13.m (листинг 13.2), содержащий описание функции, возвращающей решение дифференциального уравнения методом Рунге-Кутта четвертого порядка.

Листинг 13.2. Файл RungeKutt_13.m

function [X, Y]= RungeKutt(y0, x0, x1, h)

N=(x1-x0)/h;

x(1)=x0;

y(1)=y0;

for i=2: N+1

x(i)=x(1)+h*(i-1);

k1=h*F(x(i-1), y(i-1));

k2=h*F(x(i-1)+h/2, y(i-1)+k1/2);

k3=h*F(x(i-1)+h/2, y(i-1)+k2/2);

k4=h*F(x(i-1)+h, y(i-1)+k3);

y(i)=y(i-1)+1/6*(k1+2*k2+2*k3+k4);

end;

X=x;

Y=y;

function z=F(x, y)

z=x+cos(y./pi);

2. Выполнить следующую последовательность команд:

> > h=0.1; % шаг

> > x0=1.7; % левая граница отрезка интегрирования

> > x1=2.7; % правая граница отрезка интегрирования

> > y0=5.3; % начальное условие

% нахождение численного решения задачи Коши

> > [X, Y]=RungeKutt_13(y0, x0, x1, h);

> > i=1: length(X);

% вычисление значений точного решения

> > Z(i)=y0+1/2*x(i).^2+pi*sin(Y(i)/pi);

% визуализация точного, численного решения и разности между

% численным и точным решениями (рис. 13.2)

> > plot(X, Z, X, Y, '*', X, abs(z-Y), '.')

 

Рис. 13.2. Визуализация точного(-), численного (*) решения и разности(.) между точным и численным решением, полученным методом Рунге-Кутта

Пример 13.3.

Методом Адамса найти значения дифференциального уравнения на отрезке [1, 7; 2, 7], для которого у(1, 7)=5, 3, приняв h=0, 1.

Решение:

1. Создайте файл RungeKutt_13_3.m (листинг 13.3), содержащий описание функции, вычисляющей первые три значения функции методом Рунге-Кутты.

Листинг 13.3. Файл RungeKutt_13_3.m

function [X, Y]= RungeKutt_13_3(y0, x0, h, N)

x(1)=x0;

y(1)=y0;

for i=2: N

x(i)=x(1)+h*(i-1);

k1=h*F(x(i-1), y(i-1));

k2=h*F(x(i-1)+h/2, y(i-1)+k1/2);

k3=h*F(x(i-1)+h/2, y(i-1)+k2/2);

k4=h*F(x(i-1)+h, y(i-1)+k3);

y(i)=y(i-1)+1/6*(k1+2*k2+2*k3+k4);

end;

X=x;

Y=y;

function z=F(x, y)

z=x+cos(y./pi);

2. Создайте файл Adams_13.m (листинг 13.4), содержащий описание функции, возвращающей решение дифференциального уравнения методом Адамса.

Листинг 13.4. Файл Adams_13.m

function [y, X, Y]= Adams_13(X, Y, h, N)

b=N-1; %4

c=N-2; %3

d=N-3; %2

a=N-4; %1

for i=a: b

q(i)=h*Y(i);

end;

for i=a: c

dq(i)=q(i+1)-q(i);

end;

d2q(a)=dq(d)-dq(a);

d2q(d)=dq(c)-dq(d);

d3q(a)=dq(d)-d2q(a);

dy=q(b)+1/2*dq(c)+5/12*d2q(d)+3/8*d3q(a);

y=Y(b)+dy;

X(N)=X(1)+h*(N-1);

Y(N)=y;

3. В командном окне программы MATLAB наберем следующую последовательность операторов для вычисления первых трех значений функции:

> > h=0.1; % шаг

> > x0=1.7; % начальные условия

> > y0=5.3;

> > N=4; % длина матрицы

> > [X, Y]=RungeKutt_13_3(y0, x0, h, N);

> > X

X =

1.7000 1.8000 1.9000 2.0000

> > Y

Y =

5.3000 5.4609 5.6266 5.7972

4. Для вычисления значений функции методом Адамса выполнить следующую последовательность команд:

> > [y, X, Y]=Adams_13(X, Y, h, 5)

y =

6.3916

X =

1.7000 1.8000 1.9000 2.0000 2.1000

Y =

5.3000 5.4609 5.6266 5.7972 6.3916

> > [y, X, Y]=Adams_13(X, Y, h, 6)

y =

7.0844

X =

1.7000 1.8000 1.9000 2.0000 2.1000 2.2000

Y =

5.3000 5.4609 5.6266 5.7972 6.3916 7.0844

> > [y, X, Y]=Adams_13(X, Y, h, 7)

y =

7.8380

X =

1.7000 1.8000 1.9000 2.0000 2.1000 2.2000 2.3000

Y =

5.3000 5.4609 5.6266 5.7972 6.3916 7.0844 7.8380

 

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

 

> > [y, X, Y]=Adams_13(X, Y, h, 11) % итоговые значения функции

y =

11.8213

X =

Columns 1 through 7

1.7000 1.8000 1.9000 2.0000 2.1000 2.2000 2.3000

Columns 8 through 11

2.4000 2.5000 2.6000 2.7000

Y =

Columns 1 through 7

5.3000 5.4609 5.6266 5.7972 6.3916 7.0844 7.8380

Columns 8 through 11

8.6843 9.6249 10.6666 11.8213

5. Для получения графического решения задачи Коши выполните следующую последовательность действий:

> > i=1: length(X);

> > Z(i)=y0+1/2*X(i).^2+pi*sin(Y(i)/pi);

% визуализация точного, численного решения и разности между

% численным и точным решениями (рис. 13.3)

> > plot(X, Z, X, Y, '*', X, abs(Z-Y), '.')

 

Рис. 13.3. Визуализация точного(-), численного (*) решения и разности(.) между точным и численным решением, полученным методом Адамса

ПРИМЕРНЫЕ ВОПРОСЫ НА ЗАЩИТЕ РАБОТЫ

1. Что значит – решить задачу Коши для дифференциальных уравнений первого порядка?

2. Графическая интерпретация численного решения дифференциального уравнения.

3. Какие существуют методы решения дифференциального уравнения в зависимости от формы представления решения?

4. В чем заключается суть принципа сжимающих отображений?

5. В чем заключается суть метода ломанных Эйлера?

6. Применение каких формул позволяет получить значения искомой функции по методу Эйлера?

7. Графическая интерпретация метода Эйлера и усовершенствованного метода Эйлера. В чем отличие?

8. В чем заключается суть метода Рунге-Кутты?

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

ЗАДАНИЕ

1. Найдите решения дифференциального уравнения первого порядка , удовлетворяющего начальным условиям у(х0)=у0 на промежутке [a, b] с шагом h=0, 1:

а) методом Эйлера;

б) методом Рунге-Кутта;

в) методом Адамса.

2. Построить графики функции.

3. Сравнить результаты и сделать вывод.

 

 

Варианты заданий.

№ варианта у(х0)=у0 [a, b]
y0(1, 8)=2, 6 [1, 8; 2, 8]
y0(0, 6)=0, 8 [0, 6; 1, 6]
y0(2, 1)=2, 5 [2, 1; 3, 1]
y0(0, 5)=0, 6 [0, 5; 1, 5]
y0(1, 4)=2, 2 [1, 4; 2, 4]
y0(1, 7)=5, 3 [1, 7; 2, 7]
y0(1, 4)=2, 5 [1, 4; 2, 4]
y0(1, 6)=4, 6 [1, 6; 2, 6]
y0(1, 8)=2, 6 [1, 8; 2, 8]
y0(1, 7)=5, 3 [1, 7; 2, 7]
y0(0, 4)=0, 8 [0, 4; 1, 4]
y0(1, 2)=1, 4 [1, 2; 2, 2]

 


РАБОТА № 14


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 574; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.031 с.)
Главная | Случайная страница | Обратная связь