Визуализация численных методов. Решение обыкновенных дифференциальных уравнений

Автор: Пользователь скрыл имя, 22 Ноября 2011 в 19:17, курсовая работа

Краткое описание

В ходе выполнения курсовой работы предполагается решение дифференциального уравнения с помощью численных методов:
метода Эйлера или метода Рунге-Кутта 1 порядка точности;
метода Рунге-Кутта 4 порядка точности.
Если искомая функция зависит от одной переменной, то дифференциальное уравнение называют обыкновенным; в противном случае – дифференциальное уравнение в частных производных. В данной курсовой работе рассматриваются методы решения обыкновенных дифференциальных уравнений.

Оглавление

Введение 3
1. Постановка задачи и математическая модель 4
2. Описание численных методов (применительно к конкретной задаче) 5
2.1 Численные методы решения задачи Коши 6
2.2 Метод Эйлера 7
2.3 Метод Рунге – Кутта 4-го порядка 9
3. Решение поставленной задачи методами Эйлера и Рунге-Кутта 4 порядка 12
3.1 Решение методом Эйлера 12
3.2 Решение методом Рунге-Кутта 13
4. Блок-схемы программы и основных подпрограмм 14
4.1 Алгоритм функции 14
4.2 Подпрограмма метода Эйлера 14
4.3 Подпрограмма метода Рунге-Кутта 4 порядка 15
4.4 Подпрограмма общего решения 16
4.5 Блок-схема программы 17
5. Листинг программы на языке VisualBasic 21
6. Формы проекта 25
7. Решение задачи в Mahtcad 27
Заключение 28

Файлы: 1 файл

Умнова М.А. new version №2.docx

— 209.40 Кб (Скачать)

    

  1. Через точку  А проведем прямую, параллельную последней  прямой.
  2. Найдем точку В(xi+1, yi+1). Будем считать В(xi+1, yi+1) решением дифференциального уравнения при x=xi+1.
  3. После проведения вычислений, аналогичных вычислениям, описанным в методе Эйлера, получим формулу для определения значения yi+1:

     .

    Модифицированный  метод Эйлера дает меньшую погрешность. На рисунке 4 это хорошо видно. Так  величина ε1 характеризует погрешность  метода Эйлера, а ε – погрешность  метода Эйлера модифицированного.

    Блок-схема  процедуры решения дифференциального  уравнения методом Эйлера модифицированным приведена на рисунке 5. 
 
 
 
 
 

 
 
 
 
 
 
 

Рисунок 5 - Блок-схема процедуры решения  дифференциального уравнения методом  Эйлера модифицированным. 

    F(x, y) – заданная функция – должна быть описана отдельно.

    Входные параметры:

    X0, XK – начальное и конечное значения независимой переменной;

    Y0 – значение y0 из начального условия y(x0) = y0;

    N – количество отрезков разбиения;

    Выходные  параметры:

    Y – массив значений искомого решения в узлах сетки.

2.3 Метод Рунге – Кутта 4-го порядка

 
 

    Пусть дано дифференциальное уравнение первого  порядка

    

    с начальным условием

    y(x0) = y0.

    Выберем шаг h и введём обозначения:

      xi = x0 + i.h   и   yi = y(xi) ,   где   i = 0, 1, 2, … .

    Аналогично  описанным выше методам производится решение дифференциального уравнения. Отличие состоит в делении шага на 4 части.

    Согласно  методу Рунге – Кутта четвёртого порядка, последовательные значения yi искомой функции y определяются по формуле:

    

    где

     ,         i = 0, 1, 2, …

    а числа  k1(i),  k2(i),  k3(i),  k4(i)  на каждом шаге вычисляются по формулам:

    

    Это явный четырёхэтапный метод четвёртого порядка точности.

    Методы  Рунге – Кутта легко программируются  и обладают значительной точностью  и устойчивостью для широкого круга задач.

    На  рисунке 6 приведена блок-схема процедуры  RUNGE(X0, XK, Y0, N, Y) для решения задачи Коши описанным выше методом Рунге – Кутта.

    

          RUNGE4(X0, XK, Y0, N, Y)

          h = (XK – X0) / N

          i = 0, … , N-1

        x = X0 + i * h

        K1 = h * F(x, Yi)

        K2 = h * F(x + h/2, Yi + K1 / 2)

        K3 = h * F(x + h/2, Yi + K2 / 2)

        K4 = h * F(x + h, Yi + K3)

        K = (K1 + 2*K2 + 2*K3 + K4) / 6

        Yi+1 = Yi + K

               End 

Рисунок 6 - Блок-схема процедуры RUNGE 

    F(x, y) – заданная функция – должна быть описана отдельно.

    Входные параметры:

    X0, XK – начальное и конечное значения независимой переменной;

    Y0 – значение y0 из начального условия y(x0) = y0;

    N – количество отрезков разбиения;

    Выходные  параметры:

    Y – массив значений искомого решения в узлах сетки;

      На  рисунке 7 приведена блок-схема алгоритма  основной программы для решения  задачи Коши и получения результатов  с фиксированным количеством  отрезков разбиения N. В основной программе происходит обращение к процедуре RUNGE(X0, XK, Y0, N, Y), вычисляющей значения искомой функции yj в точках xj методом Рунге – Кутта.

     Исходными данными в данной задаче являются:

    X0, XK – начальное и конечное значения независимой переменной;

    Y0 – значение y0 из начального условия y(x0) = y0;

    N – количество отрезков разбиения.

     Результаты  работы программы выводятся в виде двух столбцов:

X – массив значений узлов сетки;

    Y – массив значений искомого решения в соответствующих узлах сетки

Ввод X0, XK, Y0, N

RUNGE(X0, XK, Y0, N, Y)

h = (XK –  X0) / N

i = 0 … N

X = X0 + i * h

Вывод X, Yi

End 

Рисунок 7 - Блок-схема алгоритма основной программы для решения задачи Коши с фиксированным количеством  отрезков разбиения N 
 
 
 
 

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

3.1 Решение методом Эйлера

 
       
  1. Строим  оси координат;
  2. Отмечаем точку A(1; 1) – первую точку интегральной кривой;
  3. Ищем угол наклона касательной к графику в точке A:

 
 

       
  1. Строим  касательную AB в точке А под углом α0;
  2. Находим х1 по формуле: xi = х0 + ih, где h – шаг интегрирования

x1 = 1 + 1 · 0,1 = 1,1;

  1. Проводим прямую x = x1 = 1,1 до пересечения с прямой AB, отмечаем точку B(x1; y1);
  2. Ищем y1

       Из  прямоугольного треугольника ABC , 
 
 

       
  1. Следовательно, точка B имеет координаты (1,1;1).
  2. Следующую точку будем искать аналогичным способом по формуле расчета очередной точки интегральной функции
 
 

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

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

          

    Рисунок 8 - График решения методом Эйлера

3.2 Решение методом Рунге-Кутта

 
       
  1. Строим  оси координат
  2. Отмечаем А(1; 1) – первую точку интегральной кривой
  3. Ищем угол наклона касательной к графику в точке А

 

       
  1. Строим  касательную AB в точке А под углом α0;
  2. Находим х1 по формуле: xi = х0 + ih, где h – шаг интегрирования

x1 = 1 + 1 · 0,1 = 1,1;

  1. Находим по формулам
 
 
 
 
 
 

       Следовательно, точка B имеет координаты (1.1; 0.998).

4. Блок-схемы программы и основных подпрограмм

4.1 Алгоритм функции

 
 
 
 
 

Рисунок 9 - Алгоритм функции

4.2 Подпрограмма метода Эйлера

 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рисунок 10 - Подпрограмма метода Эйлера 
 

4.3 Подпрограмма метода Рунге-Кутта 4 порядка

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рисунок 11 - Подпрограмма метода Рунге-Кутта 4 порядка 
 
 

 

4.4 Подпрограмма общего решения

 
 
 
 
 
 
 
 
 
 
 

Рисунок 12 - Общее решение

4.5 Блок-схема программы

 

 
 
 
 
 

 
 
 

 

 

 

 

 
 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 

       

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Информация о работе Визуализация численных методов. Решение обыкновенных дифференциальных уравнений