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

Автор: Пользователь скрыл имя, 15 Сентября 2011 в 21:33, курсовая работа

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

Целью данной курсовой работы является решение дифференциального уравнения двумя численными методами: методом Эйлера и методом Рунге-Кутта 4 порядка точности.

Для достижения цели я поставил перед собой следующие задачи:

Написать программу для решения данного дифференциального уравнения двумя численными методами в программе Visual Basic.
Проверить решение с помощью приложения MathCad.
Сравнить полученные разными методами результаты с общим решением.

Оглавление

Введение………………………………………………………………….3

1. Постановка задачи…………………………………………………….4

2. Описание методов решения…………………………………………..5

2. 1. Суть задачи………………………………………………………….5
2. 2. Геометрический смысл задачи…………………………………….5

2. 3. Численные методы решения задачи Коши……………………….6

2. 4. Метод Эйлера……………………………………………………….9
2. 5. Метод Эйлера модифицированный……………………………….9
2. 6. Метод Рунге-Кутта 4-го порядка………………………………….10
2. 7. Решение поставленной задачи методами Эйлера и Рунге-Кутта…………………………………………………………….12

2. 7. 1. Метод Эйлера……………………………………………………12

2. 7. 2. Метод Рунге-Кутта……………………………13

3. Алгоритм решения задачи…………………………………………...16

3. 1. Алгоритмы подпрограмм.………………………………………....16

3. 1. 1. Подпрограмма метода Эйлера………………………………….16

3. 1. 2 Подпрограмма метода Эйлера модифицированного…………..16

3. 1. 3. Подпрограмма общего решения и поиска максимальных значений x и y……………………………………………………………………17

3. 2. Алгоритм функции…………………………………………………17

3. 3. Алгоритм программы………………………………………………19

4. Форма программы…………………………………………………….20

5. Листинг программы…………………………………………………..21

6. Решение задачи в MathCad…………………………………………..23

Заключение………………………………………………………………25

Файлы: 1 файл

Курсовая (2).doc

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

      xi = х0 + ih  и yi = y(xi),   где   i = 0, 1, 2, ...,

      xi - узлы сетки,

      yi - значение интегральной функции в узлах.

      Иллюстрации к решению приведены на рисунке 2.

      Проведем  прямую АВ через точку (xi, yi) под углом α. При этом tg α = f(xi, yi)

      В соответствий с геометрическим смыслом  задачи, прямая АВ является касательной  к интегральной функции. Произведем замену точки интегральной функции точкой, лежащей на касательной АВ.

      Тогда yi+1 = yi + Δy

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

      Приравняем  правые части tg α = f(xi, yi) и . Получим

      Отсюда  Δу = h ∙ f(xi, yi).

      Подставим в это выражение формулу yi+1 = yi + Δy, а затем преобразуем его. В результате получаем формулу расчета очередной точки интегральной функции:

       . 
 
 
 
 
 
 
 
 
 
 

        
 
 
 

      Рисунок 2. Метод Эйлера.

 

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

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

      

F(x, у) - заданная функция – должна

быть описана  отдельно.

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

Х0, XK—начальное и конечное

значения независимой переменной;

Y0 – значение y0 из начального условия

y(x0) = y0;

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

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

У - массив значений искомого решения

в узлах сетки. 
 

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

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

      2. 5. Метод Эйлера модифицированный

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

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

      

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

      

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

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

      x - узлы сетки,

      yi - значение интегральной функции в узлах.

      При использовании модифицированного  метода Эйлера шаг h делится на два отрезка.

      Иллюстрации к решению приведены на рисунке 4. 

        
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      Рисунок 4. Метод Эйлера модифицированный 

      Проведем  решение в несколько этапов:

  1. Обозначим точки: А(хi, yi,), C(xi + h/2, yi + h/2 ∙ f(xi, yi)) и B(xi+1, yi+1);
  2. Через точку А проведем прямую под углом α, где tg α = f(xi, yi);
  3. На этой прямой найдем точку С(хi + h/2, yi + h/2 ∙ f(xi, yi));
  4. Через точку С проведем прямую под углом α1, где tg α1 = f(xi + h/2,yi + h/2 ∙ f(xi, yi));
  5. Через точку А проведем прямую, параллельную последней прямой;
  6. Найдем  точку B(xi+1, yi+1).   Будем считать   B(xi+1, yi+1)  решением дифференциального уравнения при х = xi+1;
  7. После проведения вычислений, аналогичных вычислениям, описанным в методе Эйлера, получим формулу для определения значения уi+1:

      yi+1 = yi + h ∙ f(xi + h/2, yi + h/2 ∙ f(xi, yi)).

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

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

F(x, у) - заданная функция - должна

быть описана отдельно.

Входные параметры: 
Х0, XК - начальное и конечное

значения независимой

переменной;

Y0 – значение y0 из начального условия

y(x0)=y0;

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

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

Y - массив значений искомого решения

в узлах сетки. 
 

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

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

      Пусть дано дифференциальное уравнение первого  порядка    с начальным условием y(x0)=y0.   Выберем шаг h и введем обозначения:

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

     Аналогично  описанному выше методу производится решение

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

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

      yi+1 = yi +∆yi                 где i = 0, 1, 2 ...

              ∆y=(k1+2*k2+2*k3+k4)/6                          

                    

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

      k1  = h*f(xi, yi )

      k2  = f (xi +h/2, yi +k1 /2)*h

      k3  = F(xi +h/2, yi +k2 /2)*h

      k4  = F(xi +h, yi +k3 )*h

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

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

F(x, у) - заданная функция - должна

быть описана отдельно.

Входные параметры: 
Х0, XК - начальное и конечное

значения независимой

переменной;

Y0 – значение y0 из начального условия

y(x0)=y0;

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

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

Y - массив значений искомого решения

в узлах сетки.

        

      

      

      

        

        

      

        
 
 
 
 

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

      2. 7. 1. Метод Эйлера

      1. Строим оси координат;

      2. Отмечаем A(0; 0) – первую точку интегральной кривой;

      3. Ищем угол наклона касательной к графику в точке A:

      

      

      

        

      4. Строим касательную l0 в точке А под углом α0;

      5. Находим х1 по формуле: xi = х0 + ih, где h – шаг интегрирования

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

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

      7. Ищем y точки B:

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

      Δy = y1 – y0,

      Δx = x1 – x0 = h,

      f(x0; y0) = (y1 – y0)/h =>

      y1 = y0 + h · (f(x0; y0)) = 0 + 0,1 · f(0;0) = 0 + 0,1 · 2 = 0,2

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

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

      1. Строим оси координат;

      2. Отмечаем А(0; 0) – первую точку интегральной кривой;

      3. Ищем угол наклона касательной  к графику в точке A:

        
 

        

      

      4. Строим касательную l0 в точке А под углом α0;

      5. Находим х1 по формуле: xi = х0 + ih

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

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

     k1=0,1·f(0,0)=0,1·2=0,2

     k2=0,1· f(0,1+0,1/2;0+0,2/2)= 0,2

     k3=0,1· f(0,1+0,1/2;0+0,2/2)= 0,2

       k4=0,1· f(0,1+0,1;0+0,2)= 0,2

       ∆y1=(0,2+2·0,2+2·0,2+0,2)/6=0,2

       ∆y2=0+0,2=0,2

     Следовательно, следующая точка графика решения  имеет координаты (0,1; 0,2)  
 

      . Алгоритм решения  задачи

      3. 1. Алгоритмы подпрограмм

      3. 1. 1. Подпрограмма  метода Эйлера 
 

        
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

        
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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