О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / АИТ / Лабораторная работа «Численное решение дифференциальных уравнений. Метод Рунге-Кутта» по дисциплине «Оптимизация и оптимальные управления» Вариант №4

(автор - student, добавлено - 29-09-2017, 17:32)

 

Скачать: runge-kutt.zip [57,7 Kb] (cкачиваний: 68)  

Кафедра АиТ

 

  

 

Лабораторная работа

«Численное решение дифференциальных уравнений.

Метод Рунге-Кутта»

по дисциплине «Оптимизация и оптимальные управления»

Вариант №4

 

 

 

 

Численное решение

дифференциальных уравнений

Метод численного решения дифференциального уравнения первого порядка - это нахождение корней уравнения при известных начальных условиях х0; у(х0).

 

метод рунге-кутта

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

Пусть необходимо решить уравнение при известных начальных условиях х0; у(х0).

В методе Рунге-Кутта функцию раскладывают в ряд Тейлора:

В методе Рунге-Кутта при вычислении ограничиваются только первыми пятью членами ряда. При этом у(х) переносят в левую часть: .

И используя для правой части новую переменную k, получим

.

Здесь k-усреднённая производная, которая имеет вид:

,

где k1=hf(x,y);

; ; k4=hf(x+h,y+k3).

Тогда окончательно получим формулу:

.

В общем виде данная формула примет вид:

,

где

;;


 

блок-схема метода Рунге-Кутта


 

Алгоритм метода Рунге-Кутта 

 

Шаг 1. Задаются начальные данные а=х0; у0; b; h.

Шаг 2. Вычисляется новое значение функции по формуле: ,

Где ;;

Шаг 3. Вычисляется новое значение аргумента по формуле: хi+1=xi+h.

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

Шаг 5. Если аргумент функции меньше b, то необходимо перейти к шагу 2, в противном случае управление переходит к шагу 6.

Шаг 6. Конец.


 

Расчетная часть

Задание. Написать программу решения дифференциального уравнения методом Рунге-Кутта, если известны следующие данные:

Отрезок [2;3],

Начальные значения x0,y0:[2;0.9],

Шаг:h=0.1.

 

Решение.

1) Решим дифференциальное уравнение методом Рунге-Кутта:

program Runge;

var

a,b,x,y,k1,k2,k3,k4,h:real;

function f(x,y:real):real;

begin

f:=exp((1/3)*ln(4*x-2))+y

end;

begin

Write('Vvedite a:');ReadLN(a);

Write('Vvedite b:');ReadLN(b);

Write('Vvedite h:');ReadLN(h);

x:=a;

y:=1;

While x<=b

do begin

WriteLn('x=',x:2:1,' ','y=',y:2:2);

k1:=h*f(x,y);

k2:=h*f(x+h/2,y+k1/2);

k3:=h*f(x+h/2,y+k2/2);

k4:=h*f(x+h,y+k3);

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

x:=x+h

end;

ReadLN

end.

 

В результате решения уравнения методом Рунге-Кутта получили ряд следующих значений:


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ Яндекс.Метрика
Copyright 2021. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!