Программно-прикладные системы
Содержание
1 Практическая часть 3
1.1 Задание на выполнение курсовой работы по дисциплине «Программно-прикладные системы» 3
1.2 Текст программы с комментариями 4
1.2.1. Текст основной программы 4
1.2.2. Задание самой функции 5
1.3. Вывод результатов вычислений в графическом окне 6
2 Необходимые теоретические сведения 7
2.1. Задача Коши. Общие замечания. Постановка задачи. 7
2.2. Метод Эйлера. 9
2.3.Модифицированный метод Эйлера 11
2.4.Метод Рунге-Кутта 13
3. Вывод 16
1 Практическая часть
1.1 Задание на выполнение курсовой работы по дисциплине «Программно-прикладные системы»
1 Решить
систему дифференциальных
2 Результаты
представить графическим
3 Дать описание метода Эйлера
4 Сделать
вывод по работе
Система дифференциальных уравнений:
1.2 Текст программы с комментариями
1.2.1. Текст основной программы
%-------------Ввод начальных значений и условий--------------------
clc; %очистка командного окна
clear; %очистка графического окна
t0=0;
tf=5;
x0=[1 0 0]; %ввод
начальных условий
%-------------Метод
Рунге-Кутта-------------------
[t,X]=ode23('DiffUr',t0,tf,x0)
subplot(221); %определение графика в 1 окне
plot(t,X); %вывод графика
grid;
%----------Метод
Эйлера------------------------
n=length(X(:,1)); %находим количество значений x
h=(tf-t0)/n %определение шага
y0=x0'; %берем столбец
начальных условий
for i=1:n %организуем цикл для прибавления шага
k1=feval('DiffUr',t0,y0);
%нахождение решения в
k2=feval('DiffUr',t0+h/2,y0+
y1(:,i)=y0+k2*h %заносим в y1
y0=y1(:,i)
t0=t0+h
end
y=y1';
%---------------Вывод графика методом Эйлера во 2 окне--------------------
subplot(222);
plot(t,y),grid;
title('Метод Эйлера')
%-------Вывод графиков методом Эйлера и Рунге-кутты в 3 окне--------------
subplot(223);
plot(t,X)
plot(t,y),grid;
%-------Вывод фазового портрета в 4 окне (отношение x1 k x2)--------------
subplot(224);
plot(X(:,1),X(:,2)),grid;
1.2.2. Задание самой функции
function dx=DiffUr(t,x)
a=7
b=11
dx1=x(2);
dx2=-(a^2+b*cos(x(3)))*x(1);
dx3=1;
dx=[dx1; dx2; dx3]
1.3. Вывод результатов вычислений в графическом окне
2 Необходимые теоретические сведения
2.1. Задача Коши. Общие замечания. Постановка задачи.
Для дифференциального уравнения порядка
задача Коши заключается в отыскании решения уравнения (1), удовлетворяющего начальным условиям
(2)
где заданные числа. Если функция ) непрерывна, а ее частные производные ограничены в области, содержащей точку , то существует единственное решение задачи Коши (1), (2).
Задача Коши для нормальной системы дифференциальных уравнений
заключается в отыскании решения системы (3), удовлетворяющего начальным условиям
(4)
где - заданные числа. Если функции
непрерывны и имеют ограниченные частные производные в некоторой области, содержащей точку , то существует единственное решение задачи Коши (3), (4).
Известно, что систему дифференциальных уравнений, содержащую производные высших порядков и разрешенную относительно старших производных искомых функций, можно привести к системе вида (3) путем введения новых неизвестных функций. В частности, дифференциальное уравнение го порядка (1) приводится к системе вида (3) с помощью замены
которая приводит к следующей системе
то есть к системе дифференциальных уравнений первого порядка, правая часть которых не зависит от производных искомых функций. Поэтому численные методы решения дифференциальных уравнений традиционно изучают для уравнений первого порядка
а затем, как правило, без труда распространяют на нормальные системы дифференциальных уравнений вида (3). Так мы и поступим.
Итак, дано дифференциальное
и начальное условие
Требуется численно решить задачу Коши (6), (7) на отрезке []. Это решение будет состоять в построении таблицы приближенных значений искомого решения в точках , где . Для этого отрезок [] делят на равных частей длины , так что . Величина называется шагом интегрирования.
2.2. Метод Эйлера.
Будем считать, что шаг интегрирования настолько мал, что для всех значение искомой функции мало отличается от . Тогда для можно написать
Иными словами, на этом участке интегрирования кривая заменяется отрезком касательной к ней в точке .
Для получим
Аналогично для получим
Продолжая строить дальнейшие значения приближенного решения по тому же закону, получим
Используя известные обозначения, схему метода Эйлера можно представить формулами:
. (8)
Геометрический смысл метода Эйлера заключается в том, что искомая интегральная кривая заменяется ломаной, соединяющей точки (рис.1). Причем первое звено ломаной касается истинной интегральной кривой в точке . Эта ломаная называется ломаной Эйлера. При последовательность ломаных Эйлера на отрезке [x0,]мится к искомй интегральной кривой.
Оценку точности метода Эйлера, если неизвестно точное решение , проводят с помощью двойного пересчета - с шагом и с шагом . Совпадение десятичных знаков в полученных двумя способами результатах дает основание считать их верными.
Метод Эйлера легко распространяется на системы дифференциальных уравнений (3) и на дифференциальные уравнения высших порядков (1), которые должны быть предварительно приведены к нормальной системе (переход от (1) к (5)).
Рассмотрим систему двух дифференциальных уравнений первого порядка:
с начальными условиями . Приближенные значения вычисляются последовательно по формулам:
(10)
2.3.Модифицированный метод Эйлера
является более точным методом по сравнению с предыдущим. Модификация метода направлена на то, чтобы более точно определить направление перехода из точки () в точку (). Для чего производятся дополнительные промежуточные вычисления, в результате которых определяются координаты промежуточной точки
с помощью которых и определяется следующее приближенное значение искомого решения по формуле
. (12)
Геометрический смысл модифицированного метода Эйлера показан на рисунке 2. Исходя из точки , получаем по методу Эйлера для точку . Для метод Эйлера дал бы точку , находящуюся на касательной к интегральной кривой в точке . Модифицированный метод состоит в том, что из точки проводится отрезок , параллельный отрезку , направленному в соответствии со значением углового коэффициента в точке . Точка , которая получена по модифицированному методу Эйлера, находится ближе к истинной кривой, чем точка . Следовательно, модифицированный метод Эйлера будет обеспечивать большую точность, чем метод Эйлера при одном и том же числе разбиения отрезка интегрирования.
Модифицированный метод Эйлера можно легко распространить на нормальную систему дифференциальных уравнений (3). Рассмотрим систему двух уравнений первого порядка:
с начальными условиями . Приближенные значения вычисляются последовательно по формулам:
где
,
2.4.Метод Рунге-Кутта
наиболее известный и широко используемый метод численного интегрирования обыкновенных дифференциальных уравнений. Метод Эйлера и модифицированный метод Эйлера можно рассматривать в качестве простейших представителей метода Рунге-Кутта или как упрощенные его варианты.
Согласно метода Рунге-Кутта, приближенные значения искомого решения определяются по формулам:
(15)
Значение
приближенного решения
( ), ,
что значительно повышает точность метода Рунге-Кутта.
Для сравнения: в методе Эйлера вычисляется в направлении, определяемом углом , для которого (рис.1); в модифицированном методе Эйлера вычисляется в уже подправленном с помощью средней точки текущего отрезка [] направлении, определяемом углом , для которого (рис.2).
Метод
Рунге-Кутта имеет порядок
где - значение точного решения уравнения (1) в точке , а - приближенные значения, полученные с шагом и .
Для определения правильности выбора шага на практике применяют двойной просчет с шагом и шагом . Если расхождение полученных значений не превышает допустимой погрешности, то шаг для следующей точки удваивается, в противном случае берут половинный шаг.
Метод Рунге-Кутта обладает значительной точностью и, несмотря на свою трудоемкость, очень широко используется при численных решениях дифференциальных уравнений на ЭВМ. Важным преимуществом этого метода является возможность на любом этапе вычисления изменить шаг интегрирования, при условии выполнения заданной точности.
Распространим метод Рунге-Кутта на нормальную систему дифференциальных уравнений (3). Рассмотрим систему двух дифференциальных уравнений первого порядка:
с начальными условиями . Приближенные значения вычисляются последовательно по формулам:
где
,
,
,
3. Вывод
Уравнение называется обыкновенным дифференциальным n-го порядка, если F определена и непрерывна в некоторой области и, во всяком случае, зависит от х Его решением является любая функция u(x), которая этому уравнению удовлетворяет при всех x в определённом конечном или бесконечном интервале. Дифференциальное уравнение, разрешенное относительно старшей производной имеет вид
Решением этого уравнения на интервале I=[a,b] называется функция u(x)
Решить дифференциальное уравнение у/=f(x,y) численным методом – это значит для заданной последовательности аргументов х0, х1…, хn и числа у0, не определяя функцию у=F(x), найти такие значения у1, у2,…, уn, что уi=F(xi)(i=1,2,…, n) и F(x0)=y0.
Таким образом, численные методы позволяют вместо нахождения функции y=F(x) (3) получить таблицу значений этой функции для заданной последовательности аргументов. Величина h=xk-xk-1 называется шагом интегрирования.
Метод Эйлера относиться к численным методам, дающим решение в виде таблицы приближенных значений искомой функции у(х). Он является сравнительно грубым и применяется в основном для ориентировочных расчетов.
Однако идеи, положенные в основу метода Эйлера, являются исходными для ряда других методов.
Метод
Эйлера для обыкновенных дифференциальных
уравнений используется для решений
многих задач естествознания в качестве
математической модели. Например задачи
электродинамики системы