Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИДЗ_19.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
273.92 Кб
Скачать

Содержание

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

2. Краткое описание метода и графическая энтерпритация………………………..…………………………………………………………4 3. Текст программы…………………………………………………………………………….6

4. Вывод результатов в табличном и графическом видах……………………………..8

5. Анализ результатов……………………………………………………………………… .10

6. Список используемой литературы…………………………………………………..…11

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

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

2. Краткое описание метода и графическая энтерпритация

- Метод Эйлера:

;

;

Используется постоянное значение h на каждой операции.

n

;

;

;

Где h- шаг,

- начальные значения

  • Метод Рунге-Кутты:

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

Yi+1=yi+h/6(k0+2k1+2k2+k3) i=0.1…n

где h — величина шага сетки по x и вычисление нового значения проходит в четыре этапа:

k0=f(xi,yi);

k1=f(xi+h/2,yi+hk0/2);

k2=f(xi+h/2,yi+hk1/2);

k3=f(xi+h/2,yi+hk2).

Этот метод имеет четвёртый порядок точности, т.е. суммарная ошибка на конечном интервале интегрирования имеет порядок O(h4) (ошибка на каждом шаге порядка O(h5))

3. Текст программы (метод Эйлера)

Program Muha;

uses crt;

var x, y, xi, yi, L, h, xip1, yip1,y_tochn, error :real;

i, k :integer;

f: text;

key:char;

str:string;

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

begin

f_user:=y;

end;

function f_tochn (x:real):real;

begin

f_tochn:=exp(x;

end;

begin

clrscr;

assign (f,'EYLERDasha.txt');

rewrite (f);

writeln (' xi=');

readln(xi);

writeln (' yi=');

readln(yi);

xi:=0;

yi:=1;

L:=1;

h:=0.1;

k:=round(L/h);

for i:=1 to k do

begin

xip1:=xi+h;

yip1:=yi+h*f_user(xi,yi);

y_tochn:=f_tochn(xi);

xi:=xip1;

yi:=yip1;

y_tochn:=f_tochn(xip1);

error:=abs((y_tochn-yip1)/y_tochn*100);

writeln (' x=',xi:8:3,' y=',yi:8:3, 'y_tochn=',y_tochn:8:3,'error=',error:10:10);

writeln (f,' x=',xi:8:3,' y=',yi:8:3, 'y_tochn=',y_tochn:8:3,'error=',error:10:10);

end;

close(f);

end.

Текст программы (метод Рунге-Кутта)

Program Muha;

uses crt;

var x,y,xi,yi,L,h, xip1, yip1,y_tochn,k0,k1,k2,k3, error :real;

i,k:integer;

f: text;

key:char;

str:string;

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

begin

f_user:=y;

end;

function f_tochn (x:real):real;

begin

f_tochn:=exp(x;

end;

begin

clrscr;

assign (f,'rongicut_muha.txt');

rewrite (f);

xi:=0;

yi:=1;

writeln (f,' xi=');

readln(xi);

writeln (' yi=');

readln(yi);

L:=1;

h:=0.1;

k:=round(L/h);

for i:=1 to k do

begin

xip1:=xi+h;

k0:=f_user(xi,yi);

k1:=f_user (xi+h/2,yi+h*k0/2);

k2:=f_user (xi+h/2,yi+h*k1/2);

k3:=f_user (xi+h,yi+h*k2);

yip1:=yi+h/6*(k0+2*k1+2*k2+k3);

xi:=xip1;

yi:=yip1;

y_tochn:=f_tochn(xi);

error:=abs((y_tochn-yip1)/y_tochn*100);

writeln (' x=',xi:8:3,' y=',yi:8:3, ' y_tochn=',y_tochn:8:3,'error=',error:10:10);

writeln (f,' x=',xi:8:3,' y=',yi:8:3, ' y_tochn=',y_tochn:8:3,'error=',error:10:10);

end;

close(f);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]