Приветствую Вас, Гость! Регистрация RSS
Пятница, 29.03.2024


Главная » Файлы » Лабораторные работы » Лабораторные работы

Методи наближеного розв’язання звичайних диференціальних рівнянь та їх систем
[ Скачать с сервера (151.5 Kb) ] 23.05.2017, 00:45
Постановка задачі.
Знайти наближений (числовий) розв’язок:
1) скалярного диференціального рівняння першого порядку




2) системи звичайних диференціальних рівнянь




3) диференціального рівняння другого порядку




Всі завнання виконати двома методами:
a) методом Ейлера;
b) методом Рунге-Кутта
та побудувати графіки одержаних розв’язків.
До всіх методів розробити схеми алгоритмів та програми.
Результати перевірити за допомогою математичного пакету MathCad.
До звіту включити короткі теоретичні відомості по кожному методу, відповідні схеми алгоритмів та програми, результати обчислень, графіки одержаних розв’язків.

Короткі теоретичні відомості
Для наближеного розв’язання задачі Коші ( ) відрізок ділиться на частин з кроком . Проінтегрувавши рівняння 1 на інтервалі , отримаємо основну формулу для одержання наближених методів розв’язання задачі .

Метод Ейлера
Для розв’язання диференційних рівнянь першого порядку за методом Ейлера використовується наступне співвідношення: .
Метод Ейлера для розв’язання систем звичайних диференційних рівнянь набуває вигляду:

де , ,
Метод Рунге-Кутта
Для розв’язання диференційних рівнянь першого порядку за методом Ейлера використовується наступне співвідношення: , . В яких , де , x, , .
Метод Рунге-Кутта для розв’язання системи набуває виду:









1.1
Program laba1.1;
uses crt;
const a=0; b=1;
var
x,y:array[0..100] of real;
n,i:integer;
h:real;
function f(x,y:real):real;
begin
f:=1-sin(2*x+y)+((0.3*y)/(2+x));
end;
begin
clrscr;
x[0]:=a;
y[0]:=1.5;
n:=10;
h:=(b-a)/n;
for i:=0 to n do
begin
x[i+1]:=x[i]+h;
y[i+1]:=y[i]+h*f(x[i],y[i]);
end;
for i:=0 to n do
writeln('x[',i,']=',x[i]:5:2,' ','y[',i,']=', y[i]:7:4);
readln;
end.


1.2
Program laba2;
uses crt;
const a=0; b=1;
var
x,y,dy:array[0..100] of real;
n,i:integer;
h,k1,k2,k3,k4:real;
function f(x,y:real):real;
begin
f:=1-sin(2*x+y)+((0.3*y)/(2+x));
end;
begin
clrscr;
x[0]:=a;
y[0]:=1.5;
n:=10;
h:=(b-a)/n;
for i:=0 to n do
begin
x[i+1]:=x[i]+h;
k1:=h*f(x[i],y[i]);
k2:=h*f(x[i]+0.5*h,y[i]+0.5*k1);
k3:=h*f(x[i]+0.5*h,y[i]+0.5*k2);
k4:=h*f(x[i]+h,y[i]+k3);
dy[i]:=(k1+2*k2+2*k3+k4)/6;
y[i+1]:=y[i]+dy[i];
end;
for i:=0 to n do
writeln('x[',i,']=',x[i]:5:2,' ','y[',i,']=', y[i]:7:4);
readln;
end.
Категория: Лабораторные работы | Добавил: opteuropa | Теги: ІС, Методи наближеного розв’язання звич, ІТ, комп'ютерні системи
Просмотров: 455 | Загрузок: 18 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Украина онлайн

Рейтинг@Mail.ru

подать объявление бесплатно