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

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

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

ФЭА / АИТ / Лабораторная работа №4 Вариант №4 Задание: y=e^-x+y

(автор - student, добавлено - 25-01-2014, 17:12)

 

СКАЧАТЬ:  laba-4.zip [117,52 Kb] (cкачиваний: 17)

 

 

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

Вариант №4

 

Задание:

 y=e^-x+y

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

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

Шаг: h=0.1.

 

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

            Исходный код:

Program Eilera4;

Uses CRT;

Var

  a,b,x,y,h:real;

Begin clrscr;

  Write('(a;b):');

  Readln(a,b);

  Write('(x0;y0):');

  Readln(x,y);

  Write('h=');

  Readln(h);

  Writeln;

  Repeat

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

    y:=y+h*(exp(-x)+y);

    x:=x+h;

  Until x>b;

Readln;

End.


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

 

2) Ломаная Эйлера имеет следующий вид:

 

3) Решаем уравнение методом Рунге-Кутта.

Исходный код:

program Runge4;

{$APPTYPE CONSOLE}

uses

  SysUtils;

 

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

  { TODO -oUser -cConsole Main : Insert code here }

  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 2016. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!