Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЕРВОГО ПОРЯДКА
ЦЕЛЬ РАБОТЫ Сформировать у студентов представления о применении дифференциальных уравнений в различных областях; привить умения решать задачу Коши для дифференциальных уравнений у¢ =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. Сравнить результаты и сделать вывод.
Варианты заданий.
РАБОТА № 14 |
Последнее изменение этой страницы: 2017-03-14; Просмотров: 603; Нарушение авторского права страницы