Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
СУМСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ
КАФЕДРА ІНФОРМАТИКИ
Звіт з лабораторної роботи №8
на тему:
“Чисельні методи розв’язання звичайних диференціальних рівнянь ”
з дисципліни:
Карчов Валерій
Використовуючи метод прогнозу і корекції, розв’язати крайову задачу для звичайного диференціального рівняння з точністю
Нехай та . Тоді задана система прийме вигляд:
Щоб звести отриману систему до системи з крайовими умовами, виразимо v0:
Знайдемо v0, розклавши та в ряд Тейлора:
Виразимо і через v0 та розв’яжемо рівняння:
Отримаємо систему з крайовими умовами:
Визначимо прогноз та корекцію:
Програмна реалізація
Для реалізації програми була обрана мова програмування Delphi.
В результаті роботи програми, ми отримуємо послідовність наближень та різницю між ними, а також кінцевий результат чисельного інтегрування .
Лістинг програми
program l8;
{$APPTYPE CONSOLE}
uses SysUtils,math;
const eps=0.0001;
function vp1(v:double):double;
begin
result:=v/2-6.38;
end;
function vp2(v:double):double;
begin
result:=vp1(v)/2-3*v-5.2;
end;
function vp3(v:double):double;
begin
result:=vp2(v)/2+3*vp1(v)-4;
end;
function vp4(v:double):double;
begin
result:=vp3(v)/2+3*vp2(v);
end;
function vp5(v:double):double;
begin
result:=vp4(v)/2+3*vp3(v);
end;
function ut(u,v,h:double):double;
begin
result:=u+h*v+sqr(h)/2*vp1(v)+power(h,3)/6*vp2(v)+power(h,4)/24*vp3(v)+
power(h,5)/120*vp4(v);
end;
function vt(v,h:double):double;
begin
result:=v+h*vp1(v)+sqr(h)/2*vp2(v)+power(h,3)/6*vp3(v)+power(h,4)/24*vp4(v)
+power(h,5)/120*vp5(v);
end;
var h,v0,v1,v2,u0,u1,u2,pu,cu,pv,cv,x,z1,z2:double; i,k:word;
mas:array[0..$ffff] of double;
begin
h:=-0.1;
x:=1.3;
while true do begin
i:=1;
u1:=1;
v1:=-0.79159;
u2:=ut(u1,v1,h);
v2:=vt(v1,h);
mas[0]:=u2;
repeat begin
u0 := u1;
v0 := v1;
v1 := v2;
u1 := u2;
if x<1 then break;
x:=1.3+i*h;
z1:=v1/2-3*u1-2*sqr(x-h);
pu:= u0 + 2*h*v1;
pv:= v0 + 2*h*z1;
z2:=pv/2-3*pu-2*sqr(x);
cv:=v1+h/2*(z1+z2);
v2:=cv+(pv-cv)/5;
cu:=u1+h/2*(v1+v2);
u2:=cu+(pu-cu)/5;
mas[i]:=u2;
inc(i);
end;
until abs(pu-cu)>eps;
if not(x<1) then begin
h:=h/2;
continue;
end;
break;
end;
for k:=0 to i-2 do write(1.3+k*h:4:6,' ',mas[k]:4:6);
readln;
end.
Результат роботи програми
Приклад пакетної реалізації поставленої задачі
Для пакетної реалізації поставленої задачі було використано математичний пакет Maple. Результати роботи математичного пакету:
> sys1 := [diff(y(x),x,x)-diff(y(x),x)/2+3*y(x)=2*x*x,y(1.3)=1,y(1)-2*D(y)(1)=0.6];
> sol1 := dsolve(sys1,numeric);
>with (plots):
> array_:=[[1.300000,1],[1.275000,0.9973],[1.250000,0.9948],[1.225000,0.9924],[1.200000,0.9901],[1.175000,0.9878],[1.150000,0.9853],[1.125000,0.9827],[1.100000,0.9799],[1.075000,0.9767],[1.050000,0.9733],[1.025000,0.9694],[1.000000,0.9651]];
display(odeplot(sol1,color=blue),plot(array_,color=red));
Висновок з отриманих розв’язків
У даній лабораторній роботі розглянуто метод метод прогнозу і корекції. Алгоритм реалізований на мові програмування Delphi Також наведені результати пакетного вирішення завдання за допомогою математичного пакету Maple.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.